Sobes.tech
Back to questions
Junior — Middle
70

Какие популярные паттерны использования Flow внутри корутин ты знаешь?

Companies where asked
Astra
Магнит Тех
IRLIX
Radium Finance
Lime X
СБЕР ЗвукСБЕР Звук

Answer from AI

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()
    }
}