Sobes.tech
Middle+

O que é SharedFlow e como difere do StateFlow?

sobes.tech IA

Resposta da IA

SharedFlow é um fluxo de dados de coroutines que envia valores a múltiplos assinantes (flux "quente").

StateFlow é uma variação do SharedFlow que representa um fluxo de estados. Sempre tem um valor inicial e envia o último valor conhecido para novos assinantes.

Principais diferenças:

Característica SharedFlow StateFlow
Valor inicial Não possui por padrão, pode definir replay Sempre possui um valor inicial obrigatório
Repetir valores para novos assinantes Gerenciado pelo parâmetro replay Sempre repete o último valor
Buffer de valores O tamanho do buffer é definido pelo parâmetro extraBufferCapacity O tamanho do buffer é 0 (exceto pelo último valor)
Emissão de valores iguais Emite todos os valores, mesmo que sejam iguais Não emite valores sequenciais iguais (se forem iguais por .equals())
Caso de uso Eventos, fluxos de dados Estados de UI ou outros estados atuais