Выбор ответа Middle Навигация, координаторы и deep links обновлено
Навигация как состояние
Вопрос
Что даёт подход «навигация как состояние» (NavigationStack с path в SwiftUI, Navigation Compose с типобезопасными маршрутами, go_router во Flutter)?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Стек экранов описан данными: его можно восстановить, сериализовать, построить из deep link. Если путь навигации это массив значений, deep link превращается в «построй массив», восстановление после смерти процесса в «сохрани массив», а тест в «проверь массив после действия».
Варианты ответа
- Экраны создаются заранее для всех маршрутов и живут в памяти, поэтому переходы мгновенные
- Анимации переходов становятся не нужны: стек меняется атомарно, и система просто перерисовывает экран
- Пропадает необходимость в аргументах экранов: данные берутся из общего состояния навигатора
- Стек экранов описан данными: его можно восстановить, сериализовать, построить из deep linkправильный ответ
Разбор
Если путь навигации это массив значений, deep link превращается в «построй массив», восстановление после смерти процесса в «сохрани массив», а тест в «проверь массив после действия». Экраны создаются лениво по значениям. Анимации и аргументы остаются, просто аргументы становятся частью маршрута.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Система deep links в мобильном приложении
Следующий вопрос
Universal Links и схемы URL