Маршруты и пункты назначения Composable
Зарегистрируйте каждый экран как маршрут.
«Маршруты и пункты назначения Composable» — бесплатный урок Jetpack Compose Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Jetpack Compose Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Jetpack Compose Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Screens as Destinations
Every screen in your graph is a destination. You register one with the composable builder inside the NavHost, naming it with a route.
composable("home") { HomeScreen() }What a Route Really Is
A route is a unique string key for a destination. Compose matches the string you navigate to against the routes you declared.
Keep Routes in Constants
Typos in raw strings cause silent failures. Store each route as a constant so the compiler catches mistakes for you.
object Routes {
const val HOME = "home"
const val SETTINGS = "settings"
}A Sealed Class of Screens
For larger apps, a sealed class groups all routes in one place. It makes adding screens safe and easy to discover.
sealed class Screen(val route: String) {
object Home : Screen("home")
object Settings : Screen("settings")
}Register Each Destination
List every screen with its own composable block. The lambda body is the UI shown when that route becomes active.
NavHost(navController, startDestination = Screen.Home.route) {
composable(Screen.Home.route) { HomeScreen() }
composable(Screen.Settings.route) { SettingsScreen() }
}Navigate to a Route
Use the same route string to move there. The NavController finds the matching destination and the NavHost renders it.
navController.navigate(Screen.Settings.route)Routes Must Be Unique
Two destinations cannot share a route. Each route is an address, and duplicate addresses make navigation ambiguous and unreliable.
Pass the Controller Down
Screens often trigger navigation, so hand each destination a way to navigate. A common pattern passes lambdas instead of the whole controller.
composable("home") {
HomeScreen(onOpenSettings = { navController.navigate("settings") })
}Keep Screens Decoupled
Passing lambdas instead of the NavController keeps screens testable and reusable. The screen says what happened, not how to navigate.
Routes Look Like URLs
Treat routes like little URLs. This style pays off later when you add arguments and deep links that open routes from outside the app.
Group Related Flows
As graphs grow, you can split screens into nested graphs with their own routes. This keeps a feature's destinations tidy and self-contained.
Quick Check
Why prefer constants or a sealed class for routes?
Recap
You learned that each screen is a destination with a unique route, and that constants or a sealed class keep those routes safe and organized. 🗂️
Часто задаваемые вопросы
Урок «Маршруты и пункты назначения Composable» бесплатный?
Да — полный текст урока «Маршруты и пункты назначения Composable» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Jetpack Compose Academy, подпишись на CoddyKit PRO. Курс Jetpack Compose Academy содержит 4 уроков всего.
Чему я научусь в уроке «Маршруты и пункты назначения Composable»?
Зарегистрируйте каждый экран как маршрут. Ты практикуешь Jetpack Compose Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Jetpack Compose Academy?
Предыдущий опыт не требуется. Jetpack Compose Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Маршруты и пункты назначения Composable»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Jetpack Compose Academy?
Да. Каждый урок Jetpack Compose Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- NavController и NavHost
- Маршруты и пункты назначения Composable
- Передача аргументов между экранами
- Стек возврата и глубокие ссылки