Collecter des Flows sur Android et iOS
Reliez Flow à Compose et à Swift en toute sécurité.
Collecter des Flows sur Android et iOS 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.
Two Apps, One Stream
Your shared code exposes a Flow, but each platform consumes it differently. The trick is collecting that one stream natively on Android and on iOS.
Compose Loves Flow
On Android, Jetpack Compose turns a Flow into state with collectAsState. Your composable redraws automatically whenever a new value arrives.
val state by viewModel.uiState
.collectAsState()Respect the Lifecycle
Prefer collectAsStateWithLifecycle so collection pauses when the screen is in the background. It saves battery and avoids needless work.
val state by viewModel.uiState
.collectAsStateWithLifecycle()Swift Cannot See suspend
Plain Flow does not bridge to Swift, because collect is a suspend call. Swift needs a callback-friendly wrapper instead.
Wrap Flow for iOS
A common fix is a small wrapper that subscribes and returns a cancel handle. iOS calls a closure on each value and stops when done.
fun watch(
onEach: (UiState) -> Unit
): CloseableUse a CoroutineScope
The wrapper launches collection inside a CoroutineScope it owns. Closing the handle cancels that scope so nothing leaks after the screen is gone.
SwiftUI Subscribes
From SwiftUI you call the wrapper in onAppear, push each value into an ObservableObject, and cancel in onDisappear.
SKIE Smooths the Bridge
Tools like SKIE generate Swift-friendly Flow APIs for you, so iOS devs collect with native async sequences and skip hand-written wrappers.
Always Cancel
However you bridge, make sure collection cancels when the screen disappears. An orphaned collector keeps running and quietly wastes resources.
Logic Stays Shared
Notice the pattern: only the thin collection layer is per platform. The data, operators, and state all stay in shared code where they belong. 🤝
Same Data, Native Feel
Both apps now react to the identical stream, yet each uses its native UI toolkit. That balance is exactly what KMP is built for.
Quick Check
Think about why iOS needs extra help.
Recap
You collected one shared stream two ways: Compose with collectAsStateWithLifecycle, and SwiftUI through a wrapper or SKIE. Shared logic, native UI. 🤝
Questions Fréquemment Posées
La leçon « Collecter des Flows sur Android et iOS » est-elle gratuite ?
Oui — le texte complet de « Collecter des Flows sur Android et iOS » 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 « Collecter des Flows sur Android et iOS » ?
Reliez Flow à Compose et à Swift en toute sécurité. 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 « Collecter des Flows sur Android et iOS » ?
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
- Bases de Flow dans le code partagé
- StateFlow pour l’état de l’interface partagée
- Opérateurs : map, filter, combine
- Collecter des Flows sur Android et iOS