0Pricing
Android Academy · Lezione

Nozioni di base su Kotlin Flow

Emetta e raccolga stream di dati.

Nozioni di base su Kotlin Flow è una lezione Android Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Android Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Android Academy include 4 lezioni in totale.

Che cos'è un Flow

Un Flow è un flusso asincrono che emette più valori nel tempo. Lo si può considerare una sequenza sospendibile da trasformare e raccogliere.

Creare un Flow

Il costruttore flow { } consente di usare emit per emettere valori, sospendendo facoltativamente l'esecuzione tra un valore e l'altro.

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

Raccogliere un Flow

Un flow non fa nulla finché non lo raccoglie. La raccolta è un'operazione suspend, quindi viene eseguita in una coroutine.

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

Flussi freddi

I Flow sono freddi: il blocco del costruttore viene eseguito da capo per ogni collector. Due collector ricevono ciascuno una sequenza indipendente, partendo dall'inizio.

Trasformare con map e filter

Gli operatori trasformano le emissioni in modo lazy, eseguendosi solo quando il flusso viene raccolto.

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

Altri operatori

  • take(n) — solo i primi n valori.
  • onEach — un effetto collaterale per ogni valore.
  • distinctUntilChanged — ignora le ripetizioni.

Gestire gli errori

Intercetti le eccezioni upstream con l'operatore catch.

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

Reagire al completamento

Usi onCompletion per eseguire del codice quando il flow termina o viene annullato.

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

Cambiare il thread del producer

Usi flowOn per eseguire l'upstream su un dispatcher specifico senza influire sul collector.

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

Operatori terminali

Alcuni operatori terminano il flow e restituiscono un valore, come toList, first o reduce. Sono funzioni suspend.

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

Dove i Flow danno il meglio in Android

I Flow modellano tutto ciò che emette dati nel tempo: modifiche al database (Room), aggiornamenti della posizione, ricerca durante la digitazione e combinazione di più fonti di dati.

Verifica rapida

Verifichi la Sua comprensione dei concetti di base dei Flow.

Riepilogo

Ha imparato a:

  • Usare flow { emit(...) } per creare un flusso asincrono.
  • Considerare i Flow freddi, eseguiti solo quando vengono raccolti.
  • Trasformare i Flow con map/filter e gestire gli errori con catch.
  • Usare flowOn per impostare il dispatcher del producer.

Domande Frequenti

La lezione «Nozioni di base su Kotlin Flow» è gratuita?

Sì — il testo completo di «Nozioni di base su Kotlin Flow» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Android Academy, passa a CoddyKit PRO. Il corso Android Academy include 4 lezioni in totale.

Cosa imparerò in «Nozioni di base su Kotlin Flow»?

Emetta e raccolga stream di dati. Eserciti Android Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Android Academy?

Non è richiesta alcuna esperienza precedente. Android Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Nozioni di base su Kotlin Flow»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Android Academy?

Sì. Ogni lezione Android Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Nozioni di base e scope delle coroutine
  2. viewModelScope e Dispatchers
  3. Nozioni di base su Kotlin Flow
  4. StateFlow e SharedFlow
← Torna a Android Academy