A simple demo project for The Dogbreeds DB based on MVVM clean architecture.
- Users can view list Dog Breeds.
- Users can search for Dog Breeds
- Users can click on any Dog Breeds to see the images
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
- data.local - contains
- remote - contains the api classes to make api calls to server, using Retrofit.
- db - contains the db classes to cache network data.
- di - contains dependency injection classes, using Dagger2.
- viewmodel - contains classes needed to display Activity and Fragment.
- ui - contains classes needed to display Activity and Fragment.
- repository - contains the repositiry classes to cache network data adn db operation.
- Minimum SDK 24
- Java based (Kotlin version coming soon!)
- MVVM Architecture
- Android Architecture Components (LiveData, Lifecycle, ViewModel, Room Persistence Library, ConstraintLayout)
- AndroidX androidx support libraries
- RxJava2 for implementing Observable pattern.
- Dagger 2 for dependency injection.
- Retrofit 2 for API integration.
- Okhhtp3 for implementing interceptor, logging and mocking web server.
- Mockito for implementing unit test cases
- Picasso for image loading.
- Lottie lottie for animation
- CircleImageView Thanks hdodenhof for CircleImageView