ли у пользователя покупка.
Как в Flows обработать состояния, чтобы всё не подгружалось налету, а можно было получить промежуточную и конечную стадию?
Никогда особо не работал с Kotlin Flows, поэтому буду рад хотя бы за какую-нибудь наводку.
Информацию о покупке следует через биллинг получать, а не из локальных настроек, которые могут быть в любой момент удалены юзером.
Нет, я перед каждым запуском приложения проверяю. Не буду же я на каждом экране вызывать запрос к биллингу.
Ну да, одного раза при запуске достаточно и потом можно просто хранить этот флаг на время работы приложения.
Да это понятно. Вопрос-то в другом. Как лучше во ВМ обрабатывать Flow из DataStore?)
Можно запустить корутину (через viewModelScope.launch) и в ней вызвать collect у этого flow.
А состояние как отслеживать? Loading/Success. Как это в коде лучше всего обозначить.
Именно такие состояния обычно используют, чтобы просигналить в UI о том, как идут дела. Но, если нужно состояние хранить, то можно завести для этого поле в ВМ. Состояния обычно определяют с помощью sealed class. Хотя можно обойтись enum.
Загрузка данных из датастора/префов занимает несколько миллисекунд, там точно нужно разбираться получены ли данные или еще в процессе?
Ну так мне это критически. А то эти миллисекунды у пользователя отображаются как смена положения Switch и текста.
Обсуждают сегодня