У вас есть 3 экрана под скоупом AuthGraph. нужно чтобы при попадании в AuthGraph (не важно, в какой экран) у вас отработал метод fetch() при старте. Можете, пожалуйста, написать небольшой пример, как вы сделаете вызов? Важно, чтобы вызов был один раз за все время жизни AuthGraph.
Например, создаю AuthFeatureViewModel
Скрытый текст
class AuthFeatureViewModel : ViewModel() {
init {
// do something
}
}
Помещаю ее в скоуп фичи
Скрытый текст
val authModule = module {
scope<Screen.AuthGraph> {
viewModelOf(::AuthFeatureViewModel)
}
}
Подскажите, пожалуйста, думали ли в сторону того, чтобы создавать скоупы, не привязывая их к вьюмоделям?
Да, изначально пробовал делать без них. Уперся в то, что без ViewModel не получалось понять, в какой момент закрыть скоуп фичи.
И второй вопрос касательно вашего подхода: как выполнять операции, которые должны совершаться единожды при создании родительского скоупа?
Для такого я создаю ViewModel, в скоупе фичи и выполняю действие внутри нее
Мы у нас на проекте сделали немного вычурно – создаем composable с navHost`ом, где описываем дочерние экраны –порождает огромное кол-во контроллеров, но зато есть возможность описать родительский контекст в одном месте, а не в каждой функции
А вы уже обрабатывали кейс, когда нужно передавать параметры в объект, который живет в рамках скоупа фичи? Это отдельное приключение
Например, создаю AuthFeatureViewModel
Скрытый текст
Помещаю ее в скоуп фичи
Скрытый текст
Инициализирую AuthFeatureViewModel
Скрытый текст
AuthFeatureViewModel создается в скоупе фичи. Но есть минус с дублированием кода, потому что этот код
Скрытый текст
Должен находиться в декларации каждого экрана, на который может быть совершен самый первый переход в рамках AuthGraph
Да, изначально пробовал делать без них. Уперся в то, что без ViewModel не получалось понять, в какой момент закрыть скоуп фичи.
Для такого я создаю ViewModel, в скоупе фичи и выполняю действие внутри нее
А вы уже обрабатывали кейс, когда нужно передавать параметры в объект, который живет в рамках скоупа фичи? Это отдельное приключение
Замечание справедливое, поэтому я доработал компонент и обновил статью. Спасибо!
Не, я успел их застать. Дома стоял один из таких телефонов, правда потом заменили на кнопочный, а потом на беспроводной
спасибо!
Насчет более сложный лейаутов пока что не знаю т.к. на данный момент нет идей как и о чем именно можно было бы рассказать