TGViewer
Андроидѣ | Михаил Белый Андроидѣ | Михаил Белый @foundout · 328 subscribers
Post #313 503
Navigation3

Перетащил свою kmp-поделку на новую библиотеку навигации от гугла. Для приложения на 7 экранов процесс занял 1 час.

Начиналась навигация с переходов между активити с помощью интентов. Потом single-activity + фрагменты. Потом Cicerone. Потом Navigation Component с XML-графами. Потом Navigation Compose. Потом эта же навигация стала Type safe.

И вот теперь мы здесь.

Сегодня котируется подход practice-first, когда сначала код за тебя пишет агент, а уже потом ты разбираешь теорию, чтобы запомнить её через опыт, а не абстрактные определения.

В гугле это осознали и выкатили инструкцию для LLM, как мигрировать с 2 версии навигации на 3. Все что требуется – запустить агента и подождать несколько минут. Я попробовал Gemini 3 Pro в Android Studio и ChatGPT 5 в Codex. Обе справились почти на отлично. Нейросеть от гугла больше понимает за андроид-проекты, а не за kmp. Даже зависимости подключила android-only. В проект влил ветку, созданную в Codex.

Отдельное спасибо агенту, что сообразил обновить koin-модули вьюмоделей, так как в новой навигации больше нет удобного получения аргументов из SavedStateHandle.

Приложение запускается и тыкается. Что пришлось поменять:

• У метода NavDisplay три перегрузки и агент взял ту, где напрямую не используется back stack. Я хоть новостей и не читал, но перед глазами мелькали релизноуты как удобно там экраны добавлять через .add и удалять через .removeLastOrNull. Поэтому поменял перегрузку и управление стеком.

• Агент забыл привязать жизненный цикл ViewModel к entry, а не ко всему NavHost. Добавил rememberViewModelStoreNavEntryDecorator.

• В Nav2 при жесте назад по умолчанию использовалась fade-анимация. Вернул ее в Nav3, переопределив predictivePopTransitionSpec. Новая анимация по умолчанию пока слишком кривая.

Хороший пример kmp-проекта на Nav3 – официальное приложение kotlin-konf. Многим оттуда вдохновился.

Теперь, когда все сделано, можно начинать изучать, что нового в этой навигации. И потом мигрировать проект посложнее.
  • ❤ 1
More from @foundout
  1. Sep 28, 2026Post #463
  2. Sep 9, 2026Истории про айфон Первый айфончик у меня появился в 24 года. К этим годам одни успевают пе…
  3. Sep 2, 2026Как правильно жить в Республике Бангладеш Жить в прекрасной стране Бангладеш – что может б…
  4. Sep 1, 2026Новые открытия Помню, как зимой, лежа на диване, ругался на концепт зимней арки. Как на оч…
  5. Aug 13, 2026Турецкий скам Я третий раз в Турции. За 4 года моего отсутствия покупательная способность…
  6. Aug 9, 2026Что делать в Черногории Шароебиться по горам. Всё, чем известна Черногория – сюда 20 лет н…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →