Kotlin Multiplatform Academy · Lección

Recopile Flows en Android e iOS

Conecte Flow con Compose y Swift de forma segura

Lección 4 de 413 pasos

Recopile Flows en Android e iOS es una lección gratuita de Kotlin Multiplatform Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Kotlin Multiplatform Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Kotlin Multiplatform Academy incluye 4 lecciones en total.

Dos aplicaciones, un flujo

Su código compartido expone un Flow, pero cada plataforma lo consume de forma diferente. El truco consiste en collect ese mismo flujo de forma nativa en Android y en iOS.

Compose adora Flow

En Android, Jetpack Compose convierte un Flow en estado con collectAsState. Su composable se vuelve a dibujar automáticamente cada vez que llega un valor nuevo.

val state by viewModel.uiState
    .collectAsState()

Respetar el ciclo de vida

Prefiera collectAsStateWithLifecycle para que la recopilación se pause cuando la pantalla pase a segundo plano. Así ahorra batería y evita trabajo innecesario.

val state by viewModel.uiState
    .collectAsStateWithLifecycle()

Swift no puede ver suspend

Un Flow normal no se integra con Swift porque collect es una llamada suspend. Swift necesita, en su lugar, un wrapper compatible con callbacks.

Envolver Flow para iOS

Una solución habitual es un pequeño wrapper que se suscribe y devuelve un identificador de cancelación. iOS llama a un closure con cada valor y se detiene cuando termina.

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

Usar un CoroutineScope

El wrapper inicia la recopilación dentro de un CoroutineScope que posee. Al cerrar el identificador se cancela ese scope, para que no haya filtraciones cuando la pantalla desaparezca.

SwiftUI se suscribe

Desde SwiftUI, llame al wrapper en onAppear, introduzca cada valor en un ObservableObject y cancele en onDisappear.

SKIE facilita la integración

Herramientas como SKIE generan API de Flow compatibles con Swift, de modo que los desarrolladores de iOS recopilan con secuencias asíncronas nativas y evitan escribir wrappers manualmente.

Cancele siempre

Sea cual sea el método de integración, asegúrese de que la recopilación se cancele cuando desaparezca la pantalla. Un collector huérfano continúa ejecutándose y consume recursos silenciosamente.

La lógica permanece compartida

Observe el patrón: solo la fina capa de collect es específica de cada plataforma. Los datos, los operators y el estado permanecen en el código compartido, donde deben estar. 🤝

Los mismos datos, una experiencia nativa

Ahora ambas aplicaciones reaccionan al mismo flujo, pero cada una utiliza su toolkit de interfaz nativo. Ese equilibrio es precisamente para lo que se ha creado KMP.

Comprobación rápida

Reflexione sobre por qué iOS necesita ayuda adicional.

Repaso

Ha recopilado un flujo compartido de dos formas: en Compose con collectAsStateWithLifecycle y en SwiftUI mediante un wrapper o SKIE. Lógica compartida e interfaz nativa. 🤝

Gratis para empezar

Aprende Kotlin con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
30
Lecciones
120

Preguntas frecuentes

¿La lección «Recopile Flows en Android e iOS» es gratis?

Sí — el texto completo de «Recopile Flows en Android e iOS» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Kotlin Multiplatform Academy, actualiza a CoddyKit PRO. El curso de Kotlin Multiplatform Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Recopile Flows en Android e iOS»?

Conecte Flow con Compose y Swift de forma segura Practicas Kotlin Multiplatform Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Kotlin Multiplatform Academy?

No se requiere experiencia previa. Kotlin Multiplatform Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Recopile Flows en Android e iOS»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Kotlin Multiplatform Academy?

Sí. Cada lección de Kotlin Multiplatform Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Fundamentos de Flow en código compartido
  2. StateFlow para el estado compartido de la interfaz
  3. Operadores: map, filter y combine
  4. Recopile Flows en Android e iOS
← Volver a Kotlin Multiplatform Academy