Deep links от ссылки до экрана
Вопрос
Опишите путь диплинка от нажатия на ссылку до открытого экрана во Flutter-приложении и что может сломаться.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Типы ссылок: своя схема и проверенные https-ссылки (App Links, Universal Links)
Проверка домена: `assetlinks.json` и `apple-app-site-association`, отпечаток ключа, Team ID
Холодный и тёплый старт: ссылка при запуске и при работающем приложении
Роутер разбирает адрес и строит стек; авторизация через редирект с возвратом на исходный адрес
Тестирование: `adb shell am start`, `xcrun simctl openurl`
Аналитика и отложенные диплинки, если приложение не установлено
Что могут спросить следом
- Что делать, если ссылка ведёт на экран, требующий входа?
- Почему App Links могут перестать работать после смены ключа подписи?
Разбор
Образцовый ответ: «Пользователь нажимает https-ссылку. Система смотрит, есть ли приложение, которое подтвердило этот домен: на Android через assetlinks.json с отпечатком ключа, на iOS через apple-app-site-association с Team ID и bundle id. Если проверка прошла, приложение открывается сразу. Дальше два случая: холодный старт, когда адрес приходит как начальный маршрут, и тёплый, когда приложение уже работает и получает новый адрес. С go_router оба превращаются в навигацию по адресу. Если экран требует входа, редирект ведёт на логин и сохраняет исходный адрес, чтобы вернуться после входа. Ломается чаще всего проверка домена: например, при Play App Signing в assetlinks.json нужен отпечаток ключа Google, а не ключа загрузки. Проверяю через adb shell am start и xcrun simctl openurl»
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.