Android Jetpack Compose with Retrofit Room Hilt in Kotlin

Build an Android app that displays Mars photos in Kotlin with ViewModel and Repositories. Writes unit and UI tests.

During this course, we will create an Android application that will display photos taken by the rovers on Mars.

What you’ll learn

  • Create an modern Android application with Jetpack Compose in Kotlin.
  • Organize the code with separate layers.
  • Use Room and Retrofit.
  • Understand the basic of Flow and Kotlin coroutine.

Course Content

  • Introduction –> 5 lectures • 16min.
  • Basic Compose –> 3 lectures • 26min.
  • Compose Navigation –> 2 lectures • 19min.
  • Display a compose list based on a network request –> 4 lectures • 1hr 14min.
  • Create a list with image –> 5 lectures • 1hr 2min.
  • Create a bottom navigation –> 2 lectures • 24min.
  • Save data in the application –> 3 lectures • 1hr.
  • Material3 : Update colors and fonts –> 4 lectures • 55min.
  • Unit test –> 5 lectures • 1hr 47min.
  • UI test –> 3 lectures • 21min.

Auto Draft


During this course, we will create an Android application that will display photos taken by the rovers on Mars.


This app will use all the latest Jetpack technologies :

  • Compose (no more XML)
  • Hilt (Dependency injection library)
  • Room (Jetpack component to create a lite database)
  • Retrofit (Simple libraries to make network request)
  • Coroutines and Flow (To create asynchronous tasks and request our database)


You also use ViewModels with Jetpack.


With this example, you should be able to create an Android App to the industry standard.


Navigation with Jetpack Compose could be challenging, so we will create a simple example with 4 screens and a BottomNav to understand it. A Scaffold will be use to create the BottomNav.


Your productivity will be improve as Jetpack Compose is easier to write and reuse.


You will improve your knowledge of Kotlin. If you still use Java, this course is an opportunity to learn.


Compose is a new way to create a UI on Android. It is more concise and reusable. Therefore, it helps to develop faster Android applications.


In this app we will use Jetpack Compose Components from Materal3:

  • Card
  • LazyColumn
  • Column
  • Row
  • AsyncIamge (from the Coil lib to display an image from a server)
  • Text
  • Image
  • NavHost (to use navigation)
  • NavigationBar
  • NavigationBarItem
  • Box

We will also see how we can use a modifier to define padding.


Get Tutorial