0Pricing
Android Academy · Lección

Conceptos básicos de Kotlin Flow

Emita y recopile flujos de datos

Conceptos básicos de Kotlin Flow es una lección gratuita de Android Academy en CoddyKit. Esta es la lección 3 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 Android Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Android Academy incluye 4 lecciones en total.

¿Qué es un Flow?

Un Flow es un flujo asíncrono que emite varios valores a lo largo del tiempo. Piense en él como una secuencia suspendible que puede transformar y recopilar.

Construir un Flow

El generador flow { } permite emitir valores con emit y suspenderse entre ellos si es necesario.

fun numbers(): Flow<Int> = flow {
    for (i in 1..3) {
        delay(100)
        emit(i)
    }
}

Recopilar un Flow

Un flow no hace nada hasta que lo recopila. La recopilación es una operación suspend, por lo que se ejecuta en una corrutina.

scope.launch {
    numbers().collect { value ->
        println(value)
    }
}

Flujos fríos

Los flows son fríos: el bloque generador se ejecuta desde cero para cada recopilador. Dos recopiladores reciben cada uno su propia secuencia independiente desde el principio.

Transformar con map y filter

Los operadores transforman las emisiones de forma diferida y solo se ejecutan cuando se recopilan.

numbers()
    .map { it * 10 }
    .filter { it > 10 }
    .collect { println(it) }

Más operadores

  • take(n) — solo los primeros n valores.
  • onEach — un efecto secundario por valor.
  • distinctUntilChanged — omite las repeticiones.

Gestionar errores

Capture las excepciones del flujo ascendente con el operador catch.

numbers()
    .map { riskyTransform(it) }
    .catch { e -> emit(-1) }
    .collect { println(it) }

Reaccionar a la finalización

Use onCompletion para ejecutar código cuando el flow termina o se cancela.

numbers()
    .onCompletion { println("done") }
    .collect { println(it) }

Cambiar el hilo del productor

Use flowOn para ejecutar el flujo ascendente en un dispatcher específico sin afectar al recopilador.

fun load(): Flow<Data> = flow {
    emit(readFromDisk())
}.flowOn(Dispatchers.IO)

Operadores terminales

Algunos operadores finalizan el flow y devuelven un valor, como toList, first o reduce. Son funciones suspend.

val all: List<Int> = numbers().toList()

Dónde destacan los Flows en Android

Los flows representan cualquier elemento que emita datos a lo largo del tiempo: cambios en la base de datos (Room), actualizaciones de ubicación, búsquedas mientras se escribe y la combinación de varias fuentes de datos.

Comprobación rápida

Compruebe cuánto entiende los conceptos básicos de Flow.

Repaso

Ha aprendido lo siguiente:

  • flow { emit(...) } construye un flujo asíncrono.
  • Los flows son fríos y solo se ejecutan cuando se recopilan.
  • Transforme con map/filter y gestione los errores con catch.
  • flowOn establece el dispatcher del productor.

Preguntas frecuentes

¿La lección «Conceptos básicos de Kotlin Flow» es gratis?

Sí — el texto completo de «Conceptos básicos de Kotlin 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 Android Academy, actualiza a CoddyKit PRO. El curso de Android Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Conceptos básicos de Kotlin Flow»?

Emita y recopile flujos de datos Practicas Android 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 Android Academy?

No se requiere experiencia previa. Android 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 3 de 4.

¿Cuánto tiempo toma la lección «Conceptos básicos de Kotlin 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 Android Academy?

Sí. Cada lección de Android 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. Conceptos básicos y ámbitos de las corrutinas
  2. viewModelScope y Dispatchers
  3. Conceptos básicos de Kotlin Flow
  4. StateFlow y SharedFlow
← Volver a Android Academy