Какие популярные паттерны использования Flow внутри корутин ты знаешь?
Ответ от нейросети
sobes.tech AI
Flow в Kotlin Coroutines часто используется для асинхронной обработки потоков данных. Популярные паттерны использования включают:
-
Cold Stream: Flow создаётся и начинает эмитить значения только при подписке. Это удобно для ленивой загрузки данных.
-
StateFlow: специализированный Flow для хранения и распространения состояния. Используется для реактивного UI, где состояние обновляется и подписчики получают последние данные.
-
SharedFlow: похож на StateFlow, но позволяет транслировать события без сохранения состояния, полезно для одноразовых событий (например, навигация, сообщения).
-
Flow Operators: map, filter, debounce, combine и другие операторы для трансформации и комбинирования потоков.
-
Collect в корутинах: для получения значений из Flow используется оператор collect внутри корутины.
Пример использования StateFlow:
class ViewModel {
private val _state = MutableStateFlow(0)
val state: StateFlow<Int> = _state
fun increment() {
_state.value += 1
}
}
// В UI
lifecycleScope.launch {
viewModel.state.collect { value ->
textView.text = value.toString()
}
}