0Pricing
Android Academy · Aula

Fundamentos do Kotlin Flow

Emita e colete fluxos de dados.

Fundamentos do Kotlin Flow é uma aula grátis de Android Academy no CoddyKit. Esta é a aula 3 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 Android Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Android Academy inclui 4 aulas no total.

O que é um Fluxo?

Um Fluxo é um fluxo assíncrono que emite vários valores ao longo do tempo. Pense nele como uma sequência suspensível que você pode transformar e coletar.

Construindo um Fluxo

O construtor flow { } permite emit valores, suspendendo opcionalmente entre eles.

fun numbers(): Flow<Int> = flow {
    for (i in 1..3) {
        delay(100)
        emit(i)
    }
}

Coletando um Fluxo

Um fluxo não faz nada até que você o cole||||

scope.launch {
    numbers().collect { value ->
        println(value)
    }
}

Fluxos frios

Os Fluxos são frios: o bloco construtor é executado novamente para cada coletor. Dois coletores recebem, cada um, sua própria sequência independente desde o início.

Transformando com map e filter

Os operadores transformam as emissões de forma preguiçosa, executando somente quando são coletadas.

numbers()
    .map { it * 10 }
    .filter { it > 10 }
    .collect { println(it) }

Mais operadores

  • take(n) — somente os primeiros n valores.
  • onEach — efeito colateral por valor.
  • distinctUntilChanged — ignora repetições.

Tratando erros

Capture exceções do fluxo upstream com o operador catch.

numbers()
    .map { riskyTransform(it) }
    .catch { e -> emit(-1) }
    .collect { println(it) }

Reagindo à conclusão

Use onCompletion para executar código quando o fluxo terminar ou for cancelado.

numbers()
    .onCompletion { println("done") }
    .collect { println(it) }

Alterando a thread do produtor

Use flowOn para executar o fluxo upstream em um distribuidor específico sem afetar o coletor.

fun load(): Flow<Data> = flow {
    emit(readFromDisk())
}.flowOn(Dispatchers.IO)

Operadores terminais

Alguns operadores encerram o fluxo e retornam um valor, como toList, first ou reduce. Eles são funções suspensas.

val all: List<Int> = numbers().toList()

Onde os Fluxos se destacam no Android

Os Fluxos representam qualquer coisa que emita valores ao longo do tempo: alterações no banco de dados (Room), atualizações de localização, pesquisa enquanto você digita e combinação de várias fontes de dados.

Verificação rápida

Teste sua compreensão dos conceitos básicos de Fluxo.

Recapitulação

Você aprendeu:

  • flow { emit(...) } constrói um fluxo assíncrono.
  • Os Fluxos são frios e só são executados quando coletados.
  • Transforme-os com map/filter e trate erros com catch.
  • flowOn define o distribuidor do produtor.

Perguntas Frequentes

A aula “Fundamentos do Kotlin Flow” é grátis?

Sim — o texto completo de “Fundamentos do Kotlin 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 Android Academy, atualize para CoddyKit PRO. O curso de Android Academy inclui 4 aulas no total.

O que vou aprender em “Fundamentos do Kotlin Flow”?

Emita e colete fluxos de dados. Você pratica Android 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 Android Academy?

Nenhuma experiência prévia é necessária. Android 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 3 de 4.

Quanto tempo leva a aula “Fundamentos do Kotlin 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 Android Academy?

Sim. Cada aula de Android 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. Fundamentos e escopos de corrotinas
  2. viewModelScope e Dispatchers
  3. Fundamentos do Kotlin Flow
  4. StateFlow e SharedFlow
← Voltar para Android Academy