Какой размер буфера у стратегии Latest

«Какой размер буфера у стратегии Latest» — вопрос из категории Coroutines и Flow, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В стратегии Latest буфер имеет фиксированный размер 1 элемент. Это означает, что при переполнении будет сохраняться только последнее значение, а предыдущие — отбрасываться.

Пример с SharedFlow:

val latestFlow = MutableSharedFlow<Int>(
    replay = 0,
    extraBufferCapacity = 0, // буфер только для последнего элемента
    onBufferOverflow = BufferOverflow.DROP_OLDEST // стратегия Latest
)

Аналогично работает ConflatedBroadcastChannel (устаревший) и StateFlow (по умолчанию хранит только последнее значение).