0Pricing
Kotlin Multiplatform Academy · Lekcja

Obserwowanie tabel jako Flow

Otrzymywanie reaktywnych aktualizacji po zmianie bazy danych

Obserwowanie tabel jako Flow to bezpłatna lekcja Kotlin Multiplatform Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Kotlin Multiplatform Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Kotlin Multiplatform Academy zawiera 4 lekcji w sumie.

Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.

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. ✅

Często zadawane pytania

Czy lekcja „Obserwowanie tabel jako Flow” jest bezpłatna?

Tak — pełny tekst „Obserwowanie tabel jako Flow” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Kotlin Multiplatform Academy, przejdź na CoddyKit PRO. Kurs Kotlin Multiplatform Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Obserwowanie tabel jako Flow”?

Otrzymywanie reaktywnych aktualizacji po zmianie bazy danych Ćwiczysz Kotlin Multiplatform Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Kotlin Multiplatform Academy?

Nie wymagamy żadnego doświadczenia. Kotlin Multiplatform Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Obserwowanie tabel jako Flow”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Kotlin Multiplatform Academy?

Tak. Każda lekcja Kotlin Multiplatform Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Dodawanie SQLDelight i pisanie schematów .sq
  2. Konfigurowanie platformowego SqlDriver
  3. Wstawianie, odpytywanie i aktualizowanie wierszy
  4. Obserwowanie tabel jako Flow
← Powrót do Kotlin Multiplatform Academy