MyAlbum is a small demo application based on MVVM architecture pattern and using common Android Application tech-stach. Application uses the library Dagger-Hilt for dependency injection. Fetched data from the network are persisted into a database via repository pattern.
Architecture is strongly inspired from android architecture blueprint based on Hilt for dependency Injection. I advice you to take a look to architectures described in the github repository.
- Minimum SDK level 19
- Kotlin based, Coroutines
- Hilt (alpha) for dependency injection.
- JetPack
- LiveData - notify domain layer data to views.
- Lifecycle - dispose of observing data when lifecycle state changes.
- ViewModel - UI related data holder, lifecycle aware.
- Room Persistence - construct a database using the abstract layer.
- Architecture
- MVVM Architecture (View - DataBinding - ViewModel - Model)
- Repository pattern
- Retrofit2 & OkHttp3 - construct the REST APIs and paging network data.
- Jackson - JSON library
- Timber - logging.
- Material-Components - Material design components like cardView.
Hilt is maybe cool however but it's still in alpha version. So it should not be bring in production before it enters in stable release.