it's a simple Showcase project that presents a modern, 2021 approach to Android application development.
Kotlin
Kotlin Coroutines
Hilt for dependency injection
data binding
-Jetpack-
Navigation Components
LiveData
Lifecycle
ViewModel (with state so it considers as MVI)
usecase (Powered up with coroutines)
Room database
Each view has it's own module to keep everything seperate and clean.
I used usecase for every request to keep everyrequest clear and seperated.
View (fragment or activity) - ViewModel - Usecase (kotin coroutines) - Repository -> (request data form local database or server).
Everything is optimized and every class has a generic parent.