В чём разница между StateFlow, SharedFlow и обычным Flow?

Обычный flow-билдер создаёт холодный поток: работа запускается для каждого коллектора. SharedFlow — горячая рассылка, StateFlow — горячее состояние с текущим значением и начальным значением.

Короткий ответ

Что ответить на собеседовании

Обычный flow-билдер создаёт холодный поток: работа запускается для каждого коллектора. SharedFlow — горячая рассылка, StateFlow — горячее состояние с текущим значением и начальным значением.

Подробный разбор

Ответ с пояснениями

Обычный flow-билдер создаёт холодный поток: работа запускается для каждого коллектора. SharedFlow — горячая рассылка, StateFlow — горячее состояние с текущим значением и начальным значением.

StateFlow хранит последнее значение и объединяет обновления по равенству, поэтому не предназначен для гарантированной доставки каждого события. SharedFlow настраивает replay и буфер; при отсутствии подписчиков поведение зависит от конфигурации, и само слово «горячий» не означает надёжную очередь. Интерфейс Flow общий: не любой объект типа Flow обязательно холодный.

Источник: kotlinlang.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее