Android's modern, declarative UI toolkit. You describe the UI as functions of state and Compose re-renders when the state changes. Build composables and previews, lay them out with Column/Row/Box and modifiers, manage state with remember and state hoisting, use Material 3 components, render efficient lists and navigate between screens, and handle side effects safely.
Before you start
Compose is written entirely in Kotlin — take the Kotlin course first (especially lambdas and state). The Android Development course covers the project and Activity that host your Compose UI.
Your First Composable
Compose flips UI on its head: instead of mutating views, you write functions that describe the UI for the current state. Learn @Composable functions, previews, and the recomposition model.
Layout & Modifiers
Arrange UI with Column, Row, and Box, and shape every composable with modifiers — the chainable system that controls size, padding, background, and click behavior. Plus Scaffold for standard screen structure.
State & State Hoisting
State is what makes UI interactive. Learn remember and mutableStateOf to hold state across recompositions, why state hoisting makes composables reusable and testable, and rememberSaveable for surviving rotation.
Material 3 Components & Theming
Compose ships Material 3 components — buttons, text fields, cards, dialogs — that look right out of the box. Learn the common elements and how a MaterialTheme gives your whole app consistent color and typography.
Lists & Navigation
Render long, scrolling lists efficiently with LazyColumn, and move between screens with Navigation Compose — defining a NavHost of routes and passing arguments, the backbone of a multi-screen app.
Side Effects
Composables must be pure, but real apps need to do things — call an API on screen open, show a snackbar, react to state. The effect APIs (LaunchedEffect, rememberCoroutineScope, DisposableEffect) do this safely.