Udostępnianie wyników jako Flow
Reaktywne strumieniowanie danych repozytorium do obu interfejsów
Udostępnianie wyników 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.
Beyond One-Shot Calls
A suspend function returns once, but real screens want updates over time. That is exactly what Flow gives you.
Return a Flow
Change the repository to return a Flow of your domain type, so callers can react to a stream of results.
fun observeUsers(): Flow<List<User>>Emit With flow Builder
Build a stream using the flow builder and call emit to push each new value to whoever is collecting.
fun observeUsers() = flow { emit(getUsers()) }Suspend Inside Flow
Inside the builder you can freely call suspend functions, so your network fetch fits right in.
Combine With Local Data
A Flow can emit cached data first, then a fresh network result, giving the UI an instant view that updates.
flow {
emit(loadCached())
emit(fetchFresh())
}Map the Stream
Use the map operator on the Flow to transform each emission before the UI ever sees it.
observeUsers().map { it.sortedBy(User::name) }Catch Errors in the Flow
Wrap the stream with catch so a network failure becomes a graceful emission instead of a crash.
observeUsers().catch { emit(emptyList()) }Collect on Each Platform
Both apps collect the Flow: Compose with collectAsState, and SwiftUI through a small bridge.
scope.launch { repo.observeUsers().collect { render(it) } }Still Shared, Still Clean
The Flow logic lives in commonMain, so both platforms share one reactive data source with no copies.
A Single Source of Truth
Exposing data as a Flow gives the whole app one source of truth that everyone observes and trusts.
The Reactive Repository
Here is the repository as a stream: it emits fresh data and never lets a failure break the collector.
fun observeUsers(): Flow<List<User>> = flow {
emit(api.getUsers().toDomain())
}.catch { emit(emptyList()) }Quick Check
Why expose repository data as a Flow instead of a single suspend return?
Recap
Returning a Flow turns the repository into a reactive source: it emits updates over time, both apps collect it, and errors stay contained.
Często zadawane pytania
Czy lekcja „Udostępnianie wyników jako Flow” jest bezpłatna?
Tak — pełny tekst „Udostępnianie wyników 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 „Udostępnianie wyników jako Flow”?
Reaktywne strumieniowanie danych repozytorium do obu interfejsów Ć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 „Udostępnianie wyników 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
- Definiowanie interfejsu repozytorium
- Ukrywanie API za repozytorium
- Mapowanie DTO na modele domenowe
- Udostępnianie wyników jako Flow