На чем основано решение библиотеки Navigation

«На чем основано решение библиотеки Navigation» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Navigation основана на концепции графа навигации, где экраны (destinations) связаны между собой действиями (actions).

Ключевые компоненты:

  • NavGraph - XML/DSL описание структуры приложения
  • NavController - управляет навигацией между точками
  • NavHost - контейнер для отображения destinations

Пример с Compose:

NavHost(navController, startDestination = "home") {
    composable("home") { HomeScreen(onNavigate = { navController.navigate("details") }) }
    composable("details") { DetailsScreen() }
}

Преимущества:

  • Централизованное управление навигацией
  • Поддержка глубоких ссылок
  • Анимации переходов
  • Безопасность типов через Safe Args
  • Интеграция с ViewModel и DI