Module 06 of 10

Navigation & State

Lessons

About This Module

Real apps have more than one screen, and every screen has data that changes. This module covers both halves: navigation, which moves the user between screens, and state, which decides what each screen shows.

For navigation, start with NavController and NavHost: define your destinations, navigate between them, and pass arguments using type-safe routes. For state, learn remember and mutableStateOf, then rememberSaveable for surviving rotation, state hoisting for reusable composables, and ViewModel state for screen data.

The lessons below are video tutorials. Start with the navigation video, then work through the state and side-effects videos. Once you are comfortable, continue on to Local Data & Storage.

Lessons

3 videos
01

Jetpack Compose Navigation for Beginners

Philipp Lackner explains how to create multiple screens in Compose and move between them with the navigation-compose library. A good first stop.

02

A Compose State of Mind: Using Jetpack Compose’s Automatic State Observation

An Android Developers talk on how Compose tracks state reads and updates the UI automatically when state changes.

03

Full Guide to Jetpack Compose Effect Handlers

Philipp Lackner covers LaunchedEffect, rememberCoroutineScope, DisposableEffect, derivedStateOf and more: how to run side effects safely alongside state.