Kotlin Multiplatform Academy · Aula

Exponha resultados como Flow

Transmita dados do repositório reativamente para as duas interfaces

Aula 4 de 413 etapas

Exponha resultados como Flow é uma aula grátis de Kotlin Multiplatform Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Kotlin Multiplatform Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Kotlin Multiplatform Academy inclui 4 aulas no total.

Além das chamadas únicas

Uma função suspend retorna uma vez, mas telas reais querem atualizações ao longo do tempo. É exatamente isso que o Flow oferece.

Retornar um Flow

Altere o repositório para retornar um Flow do seu tipo de domínio, para que os chamadores possam reagir a um fluxo de resultados.

fun observeUsers(): Flow<List<User>>

Emitir com o construtor flow

Crie um fluxo usando o construtor flow e chame emit para enviar cada novo valor a quem estiver coletando os valores.

fun observeUsers() = flow { emit(getUsers()) }

Suspender dentro do Flow

Dentro do construtor, você pode chamar livremente funções suspend, para que a busca de rede se encaixe naturalmente.

Combinar com dados locais

Um Flow pode emitir primeiro os dados armazenados em cache e depois um resultado novo da rede, oferecendo à interface uma visão imediata que se atualiza.

flow {
    emit(loadCached())
    emit(fetchFresh())
}

Mapear o fluxo

Use o operador map no Flow para transformar cada emissão antes que a interface do usuário a veja.

observeUsers().map { it.sortedBy(User::name) }

Capturar erros no Flow

Envolva o fluxo com catch para que uma falha de rede se torne uma emissão controlada em vez de causar uma falha.

observeUsers().catch { emit(emptyList()) }

Colete em cada plataforma

Ambos os aplicativos coletam o Flow: o Compose com collectAsState e o SwiftUI por meio de uma pequena ponte.

scope.launch { repo.observeUsers().collect { render(it) } }

Ainda compartilhado, ainda organizado

A lógica do Flow fica em commonMain, portanto ambas as plataformas compartilham uma única fonte de dados reativa, sem cópias.

Uma única fonte de verdade

Expor os dados como um Flow fornece ao aplicativo inteiro uma única fonte de verdade que todos observam e em que confiam.

O repositório reativo

Aqui está o repositório como um fluxo: ele emite dados atualizados e nunca permite que uma falha interrompa o coletor.

fun observeUsers(): Flow<List<User>> = flow {
    emit(api.getUsers().toDomain())
}.catch { emit(emptyList()) }

Verificação rápida

Por que expor os dados do repositório como um Flow em vez de uma única resposta suspend?

Recapitulação

Retornar um Flow transforma o repositório em uma fonte reativa: ele emite atualizações ao longo do tempo, ambos os aplicativos o coletam e os erros permanecem contidos.

Grátis para começar

Aprenda Kotlin com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
30
Aulas
120

Perguntas Frequentes

A aula “Exponha resultados como Flow” é grátis?

Sim — o texto completo de “Exponha resultados como Flow” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Kotlin Multiplatform Academy, atualize para CoddyKit PRO. O curso de Kotlin Multiplatform Academy inclui 4 aulas no total.

O que vou aprender em “Exponha resultados como Flow”?

Transmita dados do repositório reativamente para as duas interfaces Você pratica Kotlin Multiplatform Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Kotlin Multiplatform Academy?

Nenhuma experiência prévia é necessária. Kotlin Multiplatform Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Exponha resultados como Flow”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Kotlin Multiplatform Academy?

Sim. Cada aula de Kotlin Multiplatform Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Defina uma interface de repositório
  2. Encapsule a API por trás do repositório
  3. Mapeie DTOs para modelos de domínio
  4. Exponha resultados como Flow
← Voltar para Kotlin Multiplatform Academy