NavHost + NavController описывают граф маршрутов; аргументы типизируют через routes/nav arguments, back stack ведёт controller.
Разбор
- Каждый destination — composable в графе.
- Type-safe navigation (Compose Navigation 2.8+) через serializable routes.
- Nested graphs и bottom bar — отдельные back stacks.
- Передавайте id, а не тяжёлые объекты в arguments.
Пример
NavHost(navController, startDestination = "home") {
composable("home") { HomeScreen(onOpen = { id ->
navController.navigate("detail/$id")
}) }
composable("detail/{id}") { }
}
Итог
navigation-compose — декларативный граф поверх back stack Android.