Android -MVVM-Jetpack Compose-Kotlin Flows-Dagger Hilt-Retrofilt2-Coil

A sample project that presents a modern approach to Android app development using MVVM architecture which is sclable and maintainable.

Screenshot Screenshot

Jetpack Compose

Jetpack Compose is Android’s modern toolkit for building native UI. It simplifies and accelerates UI development on Android. Quickly bring your app to life with less code, powerful tools, and intuitive Kotlin APIs.

kotlin flows

Flows are built on top of coroutines and can provide multiple values. A flow is conceptually a stream of data that can be computed asynchronously.


Hilt is a dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project,
Hilt is built on top of the popular DI library Dagger to benefit from the compile-time correctness.


A coroutine is a concurrency design pattern that you can use on Android to simplify code that executes asynchronously.


An image loading library for Android backed by Kotlin Coroutines. Coil is:

  • Fast:
    Coil performs a number of optimizations including memory and disk caching, downsampling the image in memory, re-using bitmaps, automatically pausing/cancelling requests, and more.

  • Lightweight:
    Coil adds ~2000 methods to your APK (for apps that already use OkHttp and Coroutines), which is comparable to Picasso and significantly less than Glide and Fresco.

  • Easy to use:
    Coil’s API leverages Kotlin’s language features for simplicity and minimal boilerplate.

  • Modern:
    Coil is Kotlin-first and uses modern libraries including Coroutines, OkHttp, Okio, and AndroidX Lifecycles.


View Github