Kotlin Multiplatform Academy · Lección

Observe tablas como Flow

Obtenga actualizaciones reactivas cuando cambie la base de datos

Lección 4 de 413 pasos

Observe tablas como Flow 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.

Por qué observar en lugar de consultar periódicamente

Volver a ejecutar una consulta manualmente puede no detectar cambios. SQLDelight puede enviarle resultados actualizados cada vez que cambia la tabla.

Añada la extensión de coroutines

Las consultas reactivas necesitan el artefacto coroutines-extensions, que añade compatibilidad con Flow sobre las consultas generadas.

implementation("app.cash.sqldelight:coroutines-extensions:2.0.2")

Convierta una consulta en un Flow

Llame a asFlow en cualquier consulta select para obtener un Flow que vuelva a emitir cada vez que se escriba en la tabla subyacente.

val flow = queries.selectAll().asFlow()

Asigne los resultados

asFlow proporciona un contenedor de consulta, así que encadene mapToList para emitir una lista de Kotlin lista para usar cada vez que cambien los datos.

val players = queries.selectAll()
    .asFlow()
    .mapToList(Dispatchers.IO)

Streams de una sola fila

Para una sola fila, use mapToOneOrNull, que emite la fila o null y se actualiza automáticamente cuando cambia esa fila.

queries.selectById(1)
    .asFlow()
    .mapToOneOrNull(Dispatchers.IO)

Recopile en el código compartido

Consuma el stream recopilándolo. Cada inserción, actualización o eliminación en esa tabla activa una nueva emisión.

players.collect { list -> render(list) }

Expóngalo como StateFlow

Envuelva el Flow en un StateFlow para que su ViewModel compartido mantenga la lista más reciente como única fuente de verdad.

val state = players.stateIn(scope, SharingStarted.Eagerly, emptyList())

Android recopila con Compose

En Android, collectAsState convierte el StateFlow en estado de Compose, de modo que la lista se recompone automáticamente con cada cambio.

val list by viewModel.state.collectAsState()

iOS recopila desde Swift

En iOS observa el mismo StateFlow desde Swift y actualiza SwiftUI, de modo que ambas apps permanecen sincronizadas con la base de datos.

Una escritura actualiza ambas interfaces

Inserte una fila desde cualquier lugar y todos los Flows activos volverán a emitir. La base de datos se convierte en la fuente activa que impulsa ambas plataformas.

Elija el dispatcher adecuado

Ejecute la asignación fuera del hilo principal pasando un dispatcher en segundo plano, para mantener la interfaz fluida mientras se ejecutan las consultas.

Comprobación rápida

Recopila selectAll().asFlow().mapToList(...). ¿Cuándo vuelve a emitir?

Repaso: datos en tiempo real

Ha convertido las consultas en Flows, los ha asignado a resultados, ha expuesto un StateFlow y ha permitido que ambas interfaces se actualicen con cada escritura. Su base de datos compartida ahora es reactiva. ✅

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 «Observe tablas como Flow» es gratis?

Sí — el texto completo de «Observe tablas como Flow» 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 «Observe tablas como Flow»?

Obtenga actualizaciones reactivas cuando cambie la base de datos 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 «Observe tablas como Flow»?

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. Añada SQLDelight y escriba esquemas .sq
  2. Configuración de SqlDriver por plataforma
  3. Inserte, consulte y actualice filas
  4. Observe tablas como Flow
← Volver a Kotlin Multiplatform Academy