Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/zahraheydari/android-clean-architecture-mvvm-hilt-rx

Implemented by Clean Architecture, Hilt, MVVM, LiveData, RX, Retrofit2, Room, Anko
https://github.com/zahraheydari/android-clean-architecture-mvvm-hilt-rx

android clean-architecture clean-code coil coil-image-loader example-project hilt hilt-android hilt-dependency-injection kotlin kotlin-extensions livedata mvvm mvvm-architecture mvvm-pattern retrofit2 room rxandroid rxjava sample-app

Last synced: 4 days ago
JSON representation

Implemented by Clean Architecture, Hilt, MVVM, LiveData, RX, Retrofit2, Room, Anko

Awesome Lists containing this project

README

        

# ArtGallery
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.

### Scenario
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