viewmodel грузить данные один раз и передавать их через sharedflow во фрагмент?
С одной стороны проблем нет.
Но если данные/ошибка пришли без задержки,то они не смогут попасть во фрагмент,т.к. обзервится sharedflow после started.Даже если выставить delay(1),данные возвращаются после started,без задержки до started и до viewcreated.
Делать replay=1,не вариант.
Вторая проблема возникает при тестировании. Инициализируешь viewmodel и результат тоже пропал(в unit test без задержки же выполнить нужно).
Как решение во фрагменте вызывать метод загрузки данных,а во viewmodel, проверить грузились они или нет.Но похоже это костыль какой-то.
Можешь посмотреть в сторону Channel с receiveAsFlow()
Смысл?Если channels полностью заменяются flow.Сам Гугл рекомендует вместо channels использовать flow.
В том и дело, что есть замена только для BroadcastChannel)
Обсуждают сегодня