0Pricing
Android Academy · Leçon

Bases de Kotlin Flow

Émettez et collectez des flux de données.

Bases de Kotlin Flow est une leçon Android Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Android Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Android Academy comprend 4 leçons au total.

Qu'est-ce qu'un flux ?

Un flux est un flux asynchrone qui émet plusieurs valeurs au fil du temps. Considérez-le comme une séquence suspendable que vous pouvez transformer et collecter.

Construire un flux

Le générateur flow { } vous permet d'émettre des valeurs avec emit, en suspendant éventuellement l'exécution entre deux valeurs.

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

Collecter un flux

Un flux ne fait rien tant que vous ne le collectez pas. La collecte est une opération suspendue : elle s'exécute donc dans une coroutine.

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

Flux froids

Les flux sont froids : le bloc générateur est exécuté depuis le début pour chaque collecteur. Deux collecteurs obtiennent chacun leur propre séquence indépendante.

Transformer avec map et filter

Les opérateurs transforment les émissions de manière différée et ne s'exécutent que lors de la collecte.

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

Autres opérateurs

  • take(n) — uniquement les n premières valeurs.
  • onEach — un effet secondaire pour chaque valeur.
  • distinctUntilChanged — ignore les répétitions.

Gérer les erreurs

Interceptez les exceptions en amont avec l'opérateur catch.

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

Réagir à la fin du flux

Utilisez onCompletion pour exécuter du code lorsque le flux se termine ou est annulé.

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

Modifier le thread du producteur

Utilisez flowOn pour exécuter la partie en amont avec un répartiteur précis, sans modifier le collecteur.

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

Opérateurs terminaux

Certains opérateurs terminent le flux et renvoient une valeur, comme toList, first ou reduce. Ce sont des fonctions suspendues.

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

Quand les flux sont utiles sous Android

Les flux modélisent tout ce qui émet des valeurs au fil du temps : les changements de la base de données (Room), les mises à jour de position, la recherche au fil de la saisie et la combinaison de plusieurs sources de données.

Vérification rapide

Testez votre compréhension des notions de base sur les flux.

Récapitulatif

Vous avez appris que :

  • flow { emit(...) } construit un flux asynchrone.
  • Les flux sont froids et ne s'exécutent que lorsqu'ils sont collectés.
  • Transformez-les avec map/filter et gérez les erreurs avec catch.
  • flowOn définit le répartiteur du producteur.

Questions Fréquemment Posées

La leçon « Bases de Kotlin Flow » est-elle gratuite ?

Oui — le texte complet de « Bases de Kotlin Flow » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Android Academy, passe à CoddyKit PRO. Le cours Android Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Bases de Kotlin Flow » ?

Émettez et collectez des flux de données. Tu pratiques Android Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Android Academy ?

Aucune expérience préalable n'est requise. Android Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Bases de Kotlin Flow » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Android Academy ?

Oui. Chaque leçon Android Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Bases des coroutines et des portées
  2. viewModelScope et Dispatchers
  3. Bases de Kotlin Flow
  4. StateFlow et SharedFlow
← Retour à Android Academy