Tajawal Android
Summary
This application was implemented using MVP architecture. I also used the repository pattern to provide access to a cache of objects which are kept in sync with a local data storage and a remote data storage. The local data storage provides persistence when the app subsequently opens with out internet. I also added a refresh button in the options menu to be able to force the list to refresh and a book button to have a more balanced details view design.
Libraries/Dependencies
- Dagger2 and Dagger-Android for dependency injection to achieve a decoupled more testable logic
- Room for storing data locally creating redundancy on network failure
- Retrofit2 for retrieving remote data
- Retrofit2 converter-gson for converting json to java classes automatically
- Picasso for loading images efficiently into the views and some transformations
- Mockito for mocking classes for unit testing