0Pricing
Kotlin Multiplatform Academy · Lektion

Flows auf Android und iOS sammeln

Flow sicher an Compose und Swift anbinden

Flows auf Android und iOS sammeln ist eine kostenlose Kotlin Multiplatform Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Kotlin Multiplatform Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Kotlin Multiplatform Academy-Kurs umfasst insgesamt 4 Lektionen.

Two Apps, One Stream

Ihr gemeinsam genutzter Code stellt einen Flow bereit, aber jede Plattform verarbeitet ihn unterschiedlich. Der Trick besteht darin, diesen einen Datenstrom sowohl unter Android als auch unter iOS nativ zu konsumieren.

Compose Loves Flow

Unter Android wandelt Jetpack Compose einen Flow mit collectAsState in einen Status um. Ihr Composable wird automatisch neu gezeichnet, sobald ein neuer Wert eintrifft.

val state by viewModel.uiState
    .collectAsState()

Respect the Lifecycle

Verwende vorzugsweise collectAsStateWithLifecycle, damit die Sammlung pausiert, wenn sich der Bildschirm im Hintergrund befindet. Das schont den Akku und vermeidet unnötige Arbeit.

val state by viewModel.uiState
    .collectAsStateWithLifecycle()

Swift Cannot See suspend

Plain Flow lässt sich nicht nach Swift übertragen, da collect ein suspend-Aufruf ist. Swift benötigt stattdessen einen Callback-freundlichen Wrapper.

Wrap Flow for iOS

Ein üblicher Lösungsansatz ist ein kleiner Wrapper, der abonniert und ein Abbruchhandle zurückgibt. iOS ruft für jeden Wert einen Closure auf und stoppt, wenn der Vorgang abgeschlossen ist.

fun watch(
    onEach: (UiState) -> Unit
): Closeable

Use a CoroutineScope

Der Wrapper startet die Sammlung innerhalb eines von ihm verwalteten CoroutineScope. Das Schließen des Handles bricht diesen Scope ab, sodass nach dem Verschwinden des Bildschirms nichts zurückbleibt.

SwiftUI Subscribes

Aus SwiftUI heraus rufen Sie den Wrapper in onAppear auf, fügen jeden Wert in ein ObservableObject ein und brechen ihn in onDisappear ab.

SKIE Smooths the Bridge

Tools wie SKIE generieren Swift-freundliche Flow-APIs für Sie, sodass iOS-Entwickler mit nativen Async Sequences arbeiten können und keine handgeschriebenen Wrapper benötigen.

Always Cancel

Wie auch immer Sie brücken, stellen Sie sicher, dass die Sammlung abgebrochen wird, wenn der Bildschirm verschwindet. Ein verwaister Collector läuft weiter und verschwendet unbemerkt Ressourcen.

Logic Stays Shared

Achte auf das Muster: Nur die schlanke Collection-Schicht ist plattformabhängig. Die Daten, Operatoren und der Zustand verbleiben im geteilten Code, wo sie hingehören. 🤝

Same Data, Native Feel

Beide Apps reagieren nun auf denselben Datenstrom, nutzen jedoch jeweils ihr natives UI-Toolkit. Genau für diese Balance ist KMP gemacht.

Quick Check

Überlege dir, warum iOS zusätzliche Hilfe benötigt.

Recap

Du hast denselben Shared Stream auf zwei Arten konsumiert: Mit Compose über collectAsStateWithLifecycle und mit SwiftUI über einen Wrapper oder SKIE. Geteilte Logik, native UI. 🤝

Häufig gestellte Fragen

Ist die Lektion „Flows auf Android und iOS sammeln“ kostenlos?

Ja — der vollständige Text von „Flows auf Android und iOS sammeln“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Kotlin Multiplatform Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Kotlin Multiplatform Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Flows auf Android und iOS sammeln“?

Flow sicher an Compose und Swift anbinden Du übst Kotlin Multiplatform Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Kotlin Multiplatform Academy zu starten?

Keine Vorkenntnisse erforderlich. Kotlin Multiplatform Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Flows auf Android und iOS sammeln“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Kotlin Multiplatform Academy-Lektion Code schreiben und ausführen?

Ja. Jede Kotlin Multiplatform Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Flow-Grundlagen im gemeinsamen Code
  2. StateFlow für gemeinsamen UI-Zustand
  3. Operatoren: map, filter, combine
  4. Flows auf Android und iOS sammeln
← Zurück zu Kotlin Multiplatform Academy