На данный момент самое понятное изложение данной темы. Спасибо большое!
@Солнцеликий-б3ъ
Жыл бұрын
Спасибо!
@d.mertsalov
Жыл бұрын
🔥
@maximmaxim3262
Жыл бұрын
0:00 Intro 0:40 Add dependencies 1:18 NavController 2:20 NavHost 4:10 Steps for preparation to migration to new navigation 6:10 Hide destinations declaration inside extensions 8:45 Destination with arguments 19:22 Navigation with arguments 26:00 See result. Single responsibility + declarative navigation 29:45 Add deeplink to destination Theory path: kzitem.infofPMTjJzmIfs
@summerwise
Жыл бұрын
Почему в viewModel не получать аргументы сразу? Если передали id, и на старте экрана надо запрос сделать с ним, то как сделать запрос? Если внутри vm нет аргумента, а запрос только один раз надо сделать. Вдруг экран рекомпозитнится, запрос повторится? Надо делать через LaunchedEffect и лямбду onEvent, которая в vm будет обрабатывать ивенты с экрана?
@1mYse1LF
Жыл бұрын
Что будет по нажатию кнопки back при переходе через deeplink на детали экрана? Сработает выход из приложения и методы активити (onPause -> onStop) или мы перейдет на Main экран. И какой из этих вариантов более правильный?
@maximmaxim3262
Жыл бұрын
Спасибо за вопрос! В данном случае будет переход на экран со списком фильмов, тк он является startDestination и добавляется в backstack сразу (добавление виртуальное - композиции экрана не случится и VM экрана при этом создаваться не будет). Такая особенность библиотеки. Не уверен, что это правильное поведение, думаю, это вопрос к требованиям бизнес логики. Не знаю, как этого можно избежать, но... в большинстве прод.приложений нельзя без доп.проверок показать пользователю контент(пин-коды, авторизации, paywall-ы). В качестве решения можно в качестве startDestination сделать "технический" destination без видимого контента (или с loader-ом), у которого в нижних слоях происходит проверка всех условий и принятие решения, куда должна производиться навигация. Тогда такое поведение библиотеки не будет "мешать"
Пікірлер: 7