169 похожих чатов

Доброе утро! Загружаю из DataStore логическую переменную, которая показывает оформлена

ли у пользователя покупка.

Как в Flows обработать состояния, чтобы всё не подгружалось налету, а можно было получить промежуточную и конечную стадию?

Никогда особо не работал с Kotlin Flows, поэтому буду рад хотя бы за какую-нибудь наводку.

10 ответов

16 просмотров

Информацию о покупке следует через биллинг получать, а не из локальных настроек, которые могут быть в любой момент удалены юзером.

Михаил- Автор вопроса
Leonid B.
Информацию о покупке следует через биллинг получат...

Нет, я перед каждым запуском приложения проверяю. Не буду же я на каждом экране вызывать запрос к биллингу.

Михаил
Нет, я перед каждым запуском приложения проверяю. ...

Ну да, одного раза при запуске достаточно и потом можно просто хранить этот флаг на время работы приложения.

Михаил- Автор вопроса
Leonid B.
Ну да, одного раза при запуске достаточно и потом ...

Да это понятно. Вопрос-то в другом. Как лучше во ВМ обрабатывать Flow из DataStore?)

Михаил
Да это понятно. Вопрос-то в другом. Как лучше во В...

Можно запустить корутину (через viewModelScope.launch) и в ней вызвать collect у этого flow.

Михаил- Автор вопроса

А состояние как отслеживать? Loading/Success. Как это в коде лучше всего обозначить.

Михаил
А состояние как отслеживать? Loading/Success. Как ...

Именно такие состояния обычно используют, чтобы просигналить в UI о том, как идут дела. Но, если нужно состояние хранить, то можно завести для этого поле в ВМ. Состояния обычно определяют с помощью sealed class. Хотя можно обойтись enum.

Михаил
А состояние как отслеживать? Loading/Success. Как ...

Загрузка данных из датастора/префов занимает несколько миллисекунд, там точно нужно разбираться получены ли данные или еще в процессе?

Михаил- Автор вопроса
Сергей П.
Загрузка данных из датастора/префов занимает неско...

Ну так мне это критически. А то эти миллисекунды у пользователя отображаются как смена положения Switch и текста.

Похожие вопросы

Обсуждают сегодня

@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
открыть папку в проводнике: 1 - ShellExecute 2 - ExecuteProcess 3 - OpenDocument что лучше выбрать?
Alexey Kulakov
12
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Где в Астане можно купить мясо для шашлыков?
Dancing Іңұқәһүғө
21
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
Добрый день подскажите пожалуйста может кто то сталкивался с ошибками Sentry 22.10.0 развернутым из helm чарт в Kubernetes? Изначально 3 дня назад очень стало много событий ух...
Tire4 Finist Devops
1
Карта сайта