A sample android app that shows how to use ViewModels and Room together with RxJava & Dagger2, in Kotlin by Clean Architecture.
The following diagram shows the structure of this project with 3 layers:
- Presentation
- Domain
- Data
- UI calls method from ViewModel.
- ViewModel executes Use case.
- Use case combines data from Album and Photo Repositories.
- Each Repository returns data from a Data Source (Cached or Remote).
- Information flows back to the UI where we display the list of posts.
Used https://jsonplaceholder.typicode.com/ as a public api to generate fake data for testing
At a glance:
- Created a list of Album
- In the Item of each Album, showed Album name.
- When user taps on Album, new page will be shown which includes list of photos.
- when user taps on photo, show image bigger through transition.
- Were Written tests to completely cover Exceptions/Expectations
- And:
- Supported orientation change
- Supported offline mode