Site icon AppTractor

Библиотека Jetpack Navigation 3 стала стабильной

Jetpack Navigation 3 стал стабильным в версии 1.0. Используйте библиотеку в своих приложениях уже сегодня. Например, JetBrains уже использует её в своём приложении KotlinConf.

Navigation 3 — это новая навигационная библиотека, полностью разработанная для поддержки состояний Jetpack Compose. Она предоставляет полный контроль над стеком переходов, помогает сохранять состояние навигации и позволяет легко создавать адаптивные макеты (например, list-detail). У JetBrains даже есть кроссплатформенная версия.

Почему новая библиотека?

Оригинальная библиотека Jetpack Navigation (теперь Nav2) была разработана 7 лет назад, и, хотя она хорошо справляется со своими первоначальными задачами и постоянно совершенствуется, подход к разработке приложений кардинально изменился.

Реактивное программирование с декларативным пользовательским интерфейсом теперь стало нормой. Nav3 поддерживает этот подход. Например, NavDisplay (компонент пользовательского интерфейса Nav3, отображающий ваши экраны) просто отслеживает список ключей (каждый из которых представляет экран), поддерживаемый состоянием Compose, и обновляет свой пользовательский интерфейс при изменении этого списка.

Nav2 также может затруднить создание единого источника данных о состоянии навигации, поскольку у него есть собственное внутреннее состояние. С Nav3 вы предоставляете собственное состояние, что обеспечивает полный контроль.

Наконец, разработчики просили большей гибкости и настраиваемости. Вместо единого монолитного API Nav3 предоставляет более компактные, разрозненные API (или «строительные блоки»), которые можно объединять для создания сложной функциональности. Сам Nav3 использует эти строительные блоки для предоставления разумных значений по умолчанию для четко определенных сценариев использования навигации.

Этот подход позволяет:

Подробнее о дизайне и функциях читайте в статье.

Миграция с Navigation 2

Если вы уже используете Nav2, в частности Navigation Compose, вам следует рассмотреть возможность миграции на Nav3. Для этого существует руководство по миграции. Основные шаги:

Вы можете поэкспериментировать с использованием ИИ-агента для чтения руководства по миграции и выполнения шагов в вашем проекте. Чтобы попробовать это в Gemini в режиме агента Android Studio:

Как всегда, внимательно изучите изменения, внесённые ИИ-агентом, — он может ошибаться!

Рецепты навигации для распространённых сценариев

Для распространённых, но сложных случаев использования есть репозиторий рецептов. Здесь показано, как комбинировать API Nav3 определённым образом, позволяя вам выбирать или изменять подход в соответствии с вашими конкретными потребностями. Если рецепт окажется популярным, Google рассмотрит возможность «перевода» его не детализированных частей в базовую библиотеку Nav3 или дополнительные библиотеки.

В настоящее время существует 19 рецептов, в том числе для:

В настоящее время в компании работают над рецептом для глубоких ссылок, а также над интеграцией с Koin и планируют множество других. Инженер JetBrains также опубликовал версию рецептов для Compose Multiplatform.

Если у вас есть распространённый вариант использования, для которого вы хотели бы получить рецепт, пожалуйста, отправьте запрос.

Дополнительно

Неделя Nav3 Spotlight Week начнётся 1 декабря 2025 года.

Exit mobile version