Использовал ли Jetpack Navigation

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

Ответ

Да, использовал. Jetpack Navigation упрощает навигацию между фрагментами, уменьшая boilerplate-код. Основные компоненты:

  • NavGraph - XML-файл с описанием маршрутов
  • NavController - управляет переходами
  • NavHost - контейнер для фрагментов

Пример:

<!-- nav_graph.xml -->
<navigation>
    <fragment android:id="@+id/firstFragment" ...>
        <action android:id="@+id/toSecond" app:destination="@id/secondFragment"/>
    </fragment>
    <fragment android:id="@+id/secondFragment" .../>
</navigation>

Код перехода:

findNavController().navigate(R.id.toSecond)

Плюсы:

  • Визуализация графа навигации
  • Поддержка deep links
  • Аргументы через Safe Args
  • Анимации переходов

Минусы:

  • Сложность с кастомными переходами
  • Ограниченная гибкость для динамических сценариев