Awesome Open Source
Awesome Open Source


A sample android app that shows how to use ViewModels and Room together with RxJava & Dagger2, in Kotlin by Clean Architecture.

Implemented by Clean Architecture

The following diagram shows the structure of this project with 3 layers:

  • Presentation
  • Domain
  • Data

Communication between layers

  1. UI calls method from ViewModel.
  2. ViewModel executes Use case.
  3. Use case combines data from Album and Photo Repositories.
  4. Each Repository returns data from a Data Source (Cached or Remote).
  5. Information flows back to the UI where we display the list of posts.


Used 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

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Kotlin (59,684
Android (40,895
Example (4,654
Mvvm (2,573
Sample (1,915
Retrofit2 (1,862
Clean Architecture (1,759
Rxjava (1,322
Dagger2 (1,230
Mvvm Architecture (1,167
Livedata (928
Room (861
Clean Code (712
Example Project (616
Sample App (362
Rxandroid (354
Picasso (222
Mvvm Pattern (208
Kotlin Extensions (168
Related Projects