Выбор ответа Middle Навигация, координаторы и deep links обновлено

Навигация как состояние

Вопрос

Что даёт подход «навигация как состояние» (NavigationStack с path в SwiftUI, Navigation Compose с типобезопасными маршрутами, go_router во Flutter)?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Стек экранов описан данными: его можно восстановить, сериализовать, построить из deep link. Если путь навигации это массив значений, deep link превращается в «построй массив», восстановление после смерти процесса в «сохрани массив», а тест в «проверь массив после действия».

Варианты ответа

  1. Экраны создаются заранее для всех маршрутов и живут в памяти, поэтому переходы мгновенные
  2. Анимации переходов становятся не нужны: стек меняется атомарно, и система просто перерисовывает экран
  3. Пропадает необходимость в аргументах экранов: данные берутся из общего состояния навигатора
  4. Стек экранов описан данными: его можно восстановить, сериализовать, построить из deep linkправильный ответ

Разбор

Если путь навигации это массив значений, deep link превращается в «построй массив», восстановление после смерти процесса в «сохрани массив», а тест в «проверь массив после действия». Экраны создаются лениво по значениям. Анимации и аргументы остаются, просто аргументы становятся частью маршрута.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме