0Pricing
Kotlin Multiplatform Academy · Leçon

Observer les tables comme un Flow

Obtenez des mises à jour réactives lorsque la base de données change.

Observer les tables comme un Flow est une leçon Kotlin Multiplatform Academy gratuite sur CoddyKit. Ceci est la leçon 4 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 Kotlin Multiplatform Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Kotlin Multiplatform Academy comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

Why Observe Instead of Poll

Re-running a query by hand misses changes. SQLDelight can push fresh results to you whenever the table changes.

Add the Coroutines Extension

Reactive queries need the coroutines-extensions artifact, which adds Flow support on top of your generated queries.

implementation("app.cash.sqldelight:coroutines-extensions:2.0.2")

Turn a Query into a Flow

Call asFlow on any select query to get a Flow that re-emits whenever the underlying table is written.

val flow = queries.selectAll().asFlow()

Map to Results

asFlow gives a query holder, so chain mapToList to emit a ready Kotlin list each time the data changes.

val players = queries.selectAll()
    .asFlow()
    .mapToList(Dispatchers.IO)

Single-Row Streams

For one row use mapToOneOrNull, which emits the row or null and updates automatically as that row changes.

queries.selectById(1)
    .asFlow()
    .mapToOneOrNull(Dispatchers.IO)

Collect in Shared Code

You consume the stream by collecting it. Every insert, update or delete to that table triggers a fresh emission.

players.collect { list -> render(list) }

Expose It as StateFlow

Wrap the Flow in a StateFlow so your shared ViewModel holds the latest list as a single source of truth.

val state = players.stateIn(scope, SharingStarted.Eagerly, emptyList())

Android Collects with Compose

On Android, collectAsState turns the StateFlow into Compose state, so the list recomposes automatically on every change.

val list by viewModel.state.collectAsState()

iOS Collects from Swift

On iOS you observe the same StateFlow from Swift and update SwiftUI, so both apps stay in sync with the database.

One Write, Both UIs Update

Insert a row anywhere and every active Flow re-emits. The database becomes the live source driving both platforms.

Pick the Right Dispatcher

Run mapping off the main thread by passing a background dispatcher, keeping the UI smooth while queries run.

Quick Check

You collect selectAll().asFlow().mapToList(...). When does it emit again?

Recap: Live Data

You turned queries into Flows, mapped them to results, exposed StateFlow, and let both UIs update on every write. Your shared database is now reactive. ✅

Questions Fréquemment Posées

La leçon « Observer les tables comme un Flow » est-elle gratuite ?

Oui — le texte complet de « Observer les tables comme un 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 Kotlin Multiplatform Academy, passe à CoddyKit PRO. Le cours Kotlin Multiplatform Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Observer les tables comme un Flow » ?

Obtenez des mises à jour réactives lorsque la base de données change. Tu pratiques Kotlin Multiplatform 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 Kotlin Multiplatform Academy ?

Aucune expérience préalable n'est requise. Kotlin Multiplatform 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 4 sur 4.

Combien de temps prend la leçon « Observer les tables comme un 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 Kotlin Multiplatform Academy ?

Oui. Chaque leçon Kotlin Multiplatform 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. Ajouter SQLDelight et écrire des schémas .sq
  2. Configurer SqlDriver selon la plateforme
  3. Insérer, interroger et mettre à jour des lignes
  4. Observer les tables comme un Flow
← Retour à Kotlin Multiplatform Academy