/tajawal

Primary LanguageJava

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