Yandex открыл yx_navigation - декларативную навигацию для Flutter — 28 июля 2026 г. в 06:30:02.193
Yandex открыл yx_navigation - декларативную навигацию для Flutter https://medium.com/yandex/open-sourcing-yx-navigation-declarative-navigation-for-flutter-2ffa8cbf87c4 Команда Yandex Pro выкатила в опенсорс собственный navigation-пакет — после того как go_router упёрся в ограничение: он не умеет обновлять стек неактивного таба. Критично, когда в фоне приходит заказ, а пользователь листает сообщения. ☝️Главная идея - навигация как дерево, а не стек. Состояние это дерево RouteNode, где children интерпретируются по-разному: как обычный стек экранов, как табы через IndexedStack, или как изолированная вложенная фича. Любая операция (push/pop) - это mutation дерева через RouteMutator, а не сайд-эффект где-то внутри навигатора. 📌 Что решает конкретно: • Business Logic First - навигацией можно управлять из интерактора без BuildContext. RouteNodeStateManager создаётся в DI-слое, а не в UI • Мутация неактивных веток - можно запушить экран в таб, на котором пользователь сейчас не находится, и он появится когда юзер туда переключится. У go_router и auto_route это либо невозможно, либо роняет ассерты • Полная изоляция фич - RouteDeclaration.scheme подключает фичу одной строкой, хост не видит её внутренние роуты. Работает на любой глубине вложенности • Guards - цепочка проверок перед каждой мутацией: авторизация, права, редиректы • Совместимость с Navigator 1.0 - легаси-код с Navigator.push()/showDialog() продолжает работать через compatibility layer, попадая в тот же unified state • Debug-панель с живым деревом состояния, историей мутаций и сериализованным URI Пакет - часть экосистемы yx_architecture вместе с yx_scope (DI) и yx_state. Без кодогенерации, чистый Dart-core без зависимости от Flutter. Обсуждаем тут -> https://t.me/famous_md_bot (Tier 3) —————— 💭 Редкий случай архитектурного опенсорса от российской команды с реальной продакшен-нагрузкой за плечами. Скинь тому, кто пишет на Flutter. Telegram | Селеба | Max | YouTube

