Jetpack Navigation 3 версии 1.0 стал стабильным 🎉. Смело используйте его в своих приложениях уже сегодня. JetBrains уже используют его в своем приложении KotlinConf .
Navigation 3 — это новая библиотека навигации, разработанная с нуля для работы с состоянием Jetpack Compose. Она предоставляет полный контроль над стеком возврата, помогает сохранять состояние навигации и позволяет легко создавать адаптивные макеты (например, список-детализация). Существует даже кроссплатформенная версия от JetBrains .
Почему именно новая библиотека?
Оригинальная библиотека Jetpack Navigation (теперь Nav2) была разработана 7 лет назад, и хотя она хорошо выполняет свои первоначальные задачи и постоянно совершенствуется, подход к созданию приложений кардинально изменился.
Реактивное программирование с декларативным пользовательским интерфейсом сегодня стало нормой. Nav3 поддерживает этот подход. Например, NavDisplay (компонент пользовательского интерфейса Nav3, отображающий ваши экраны ) просто отслеживает список клавиш (каждая из которых представляет собой экран), поддерживаемый состоянием Compose, и обновляет свой пользовательский интерфейс при изменении этого списка.

В Nav2 также сложно обеспечить единый источник достоверной информации о состоянии навигации, поскольку у него собственное внутреннее состояние. В Nav3 вы предоставляете собственное состояние, что дает вам полный контроль.
Наконец, вы просили о большей гибкости и возможности настройки. Вместо единого монолитного API, Nav3 предоставляет более мелкие, независимые API (или «строительные блоки»), которые можно комбинировать для создания сложной функциональности. Сам Nav3 использует эти строительные блоки для предоставления разумных значений по умолчанию для четко определенных сценариев использования навигации.
Этот подход позволяет вам:
- Настраивайте анимацию экрана как на глобальном, так и на индивидуальном уровне.
- Отображайте несколько панелей одновременно и создавайте гибкие макеты с помощью API сцен.
- При желании вы можете легко заменить компоненты Nav3 своими собственными реализациями, если вам требуется нестандартное поведение.
Подробнее о дизайне и функциях можно прочитать в блоге, посвященном запуску продукта .
Переход с Navigation 2
Если вы уже используете Nav2, в частности Navigation Compose , вам следует рассмотреть возможность перехода на Nav3. Для этого существует руководство по миграции . Ключевые шаги следующие:
- Добавьте зависимости навигации 3 .
- Обновите свои навигационные маршруты, добавив поддержку NavKey. Ваши маршруты не обязательно должны реализовывать этот интерфейс для использования Nav3, но если это так, вы можете воспользоваться функцией rememberNavBackStack из Nav3 для создания постоянного стека возврата.
- Создайте классы для хранения и изменения состояния навигации — именно здесь хранятся ваши стеки возврата.
- Замените класс NavController на следующие классы.
- Переместите ваши пункты назначения из NavGraph от NavHost в entryProvider.
- Замените NavHost на NavDisplay.
Эксперименты с миграцией агентов ИИ
Возможно, вам захочется поэкспериментировать с использованием ИИ-агента для чтения руководства по миграции и выполнения необходимых шагов в вашем проекте. Чтобы попробовать это с Gemini в режиме агента Android Studio :
- Сохраните эту версию руководства в формате Markdown в свой проект.
- Вставьте этот запрос агенту (но не нажимайте Enter): "Перенесите этот проект в Navigation 3, используя ".
- Введите @migration-guide.md — это предоставит агенту контекст для доступа к руководству.
Как всегда, внимательно проверяйте изменения, внесенные агентом ИИ — он может ошибаться!
Мы будем рады узнать, как вы или ваш агент справились с работой, пожалуйста, отправьте свой отзыв сюда .
Вкусные рецепты навигации для распространенных сценариев
Для распространенных, но сложных сценариев использования у нас есть репозиторий рецептов . В нем показано, как определенным образом комбинировать API Nav3, позволяя вам выбрать или изменить рецепт в соответствии с вашими конкретными потребностями. Если рецепт окажется популярным, мы рассмотрим возможность «перехода» его несложных частей в основную библиотеку Nav3 или дополнительные библиотеки.

В настоящее время доступно 19 рецептов, в том числе:
- Множественные стеки возврата
- Модульность и внедрение зависимостей
- Передача аргументов навигации в ViewModel (включая использование Koin)
- Возвращение результатов с экранов по событиям и на основе общего состояния.
В настоящее время мы работаем над рецептом для работы с диплинками , а также над интеграцией Koin , и у нас запланировано множество других проектов. Инженер из JetBrains также опубликовал многоплатформенную версию рецептов для Compose .
Если у вас есть распространенный сценарий использования, для которого вы хотели бы увидеть рецепт, пожалуйста, отправьте запрос на создание рецепта .
Краткое содержание
Чтобы начать работу с Nav3, ознакомьтесь с документацией и примерами использования . Кроме того, следите за обновлениями — целая неделя будет посвящена техническому контенту, включая:
- Подробное видеообзор API, охватывающее модульность, анимацию и адаптивную компоновку.
- Задайте мне любой вопрос в прямом эфире (AMA) с инженерами, разработавшими Nav3.
Неделя, посвященная Nav3, начнется 1 декабря 2025 года.
Как всегда, если вы обнаружите какие-либо проблемы, пожалуйста, сообщите о них здесь .
Продолжить чтение

Новости о продуктах
К 2025 году экосистема Android значительно расширилась за пределы телефонов. Сегодня у разработчиков есть возможность охватить более 500 миллионов активных устройств, включая складные устройства, планшеты, устройства XR, Chromebook и совместимые автомобили.

Новости о продуктах
Рабочий процесс и потребности каждого разработчика в области ИИ уникальны, и важно иметь возможность выбирать, как именно ИИ поможет в разработке. В январе мы представили возможность выбора любой локальной или удаленной модели ИИ для обеспечения работы функций ИИ в Android Studio.
Matthew Warner • 2 мин чтения

Новости о продуктах
Android Studio Panda 3 теперь стабильна и готова к использованию в продакшене. Этот релиз предоставляет еще больше возможностей для управления и настройки рабочих процессов на основе ИИ, что делает создание высококачественных приложений для Android проще, чем когда-либо.
Matt Dyor • 3 мин чтения
Будьте в курсе событий
Получайте еженедельно самые свежие новости о разработке Android прямо на свою электронную почту.




