An Android App that lists the most trending repositories in Android from Github.
- Users can view the most trending repositories in Android from Github.
- Users can filter based on language.
- Users can share repositories they like.
Based on mvvm architecture and repository pattern.
- A local database that servers as a single source of truth for data presented to the user.
- A web api service.
- A repository that works with the database and the api service, providing a unified data interface.
- A ViewModel that provides data specific for the UI.
- The UI, which shows a visual representation of the data in the ViewModel.
- Unit Test cases for API service, Database, Repository and ViewModel.
- data - contains
- api - contains the api classes to make api calls to FreshlyPressed server, using Retrofit.
- db - contains the db classes to cache network data.
- repository - contains the repository classes, responsible for triggering api requests and saving the response in the database.
- di - contains dependency injection classes, using Dagger2.
- ui - contains classes needed to display Activity.
- util - contains classes needed for activity redirection, ui/ux animations.
- Minimum SDK 16
- Java8 (in master branch) & Kotlin (in kotlin_support branch)
- MVVM Architecture
- Android Architecture Components (LiveData, Lifecycle, ViewModel, Room Persistence Library, ConstraintLayout)
- RxJava2 for implementing Observable pattern.
- Dagger 2 for dependency injection.
- Retrofit 2 for API integration.
- Gson for serialisation.
- Okhhtp3 for implementing interceptor, logging and mocking web server.
- Mockito for implementing unit test cases
- Picasso for image loading.