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
Alternatives To Android Clean Architecture Mvvm Hilt Rx
Select To Compare

Alternative Project Comparisons
Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Kotlin (49,101
Mvvm (5,186
Rxjava (4,224
Retrofit2 (1,890
Livedata (1,593
Mvvm Architecture (1,403
Rxandroid (818
Picasso (796
Hilt (287
Anko (251
Kotlin Extensions (229
Hilt Android (187
Mvvm Pattern (169
Hilt Dependency Injection (98