Skip to content

Latest commit

 

History

History
32 lines (27 loc) · 1.88 KB

README.md

File metadata and controls

32 lines (27 loc) · 1.88 KB

MyAlbum

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.

Android Architecture Blueprint

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.

Tech stack & Open-source libraries

  • 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.

Architecture

Architecture

Hilt & Alpha version

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.