#Giphy Viewer
Giphy viewer is a gif viewer that uses the public GIPHY API.
It retrieves the different needed information via the GIPHY API. The implementation consist in an activity with a ViewPager holding two fragments.
The first fragment displays by default a list of the trending gifs in GIPHY website. A search bar is included in the top in order to search items given a word or phrase introduced by the user. The second fragment contains a grid of gifs that have been marked as favourite by the user. The corresponding RecyclerView is linked to an ORMLite to store the favorite gifs. All items displayed in both fragments contains a button to add/remove gifs to/from favourites.
Implementation details:
- Applies Dependency injection with Dagger2
- Otto is used to decouple Interactors from Presenters
- Server is attacked with Retrofit2
- ButterKnife is used to find the corresponding views
- Glide is used for image caching and animated gif displaying
- Two flavors were added: mock & prod (@see app/build.gradle) in order to be able to build an app which aims to a mock server (@see MockGiphyManager) and to a mock datastore (@see MockSQLiteGifDataStore)
MVP branch
Implements an MVP pattern using concepts of the Clean Architecture.
Master Branch
(Work in progress...) I am currently migrating the code to an MVVM pattern using the new Android Architecture Components: