0Pricing
Android Academy · Lección

Conceptos básicos y ámbitos de las corrutinas

Inicie corrutinas en el ámbito adecuado

Conceptos básicos y ámbitos de las corrutinas es una lección gratuita de Android Academy en CoddyKit. Esta es la lección 1 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é son las corrutinas?

Las corrutinas permiten escribir código asíncrono y no bloqueante con un estilo secuencial. Son la respuesta de Kotlin a los callbacks y los hilos para tareas como las operaciones de red y de E/S de la base de datos.

Funciones suspend

Una función marcada como suspend puede pausarse sin bloquear el hilo y reanudarse más tarde. Solo se puede llamar desde una corrutina u otra función suspend.

suspend fun fetchUser(): User {
    delay(1000) // non-blocking pause
    return User(1, "Ada", "ada@x.com")
}

Suspender frente a bloquear

delay suspende la corrutina, pero libera el hilo para otras tareas. Thread.sleep bloquea todo el hilo. Las corrutinas favorecen la suspensión para mantener la eficiencia.

Iniciar una corrutina

Inicie una corrutina con launch en un CoroutineScope. Se ejecuta simultáneamente y no devuelve ningún resultado.

scope.launch {
    val user = fetchUser()
    println(user.name)
}

Obtener un resultado con async

Use async cuando necesite obtener un valor. Devuelve un Deferred al que aplica await.

val deferred = scope.async { fetchUser() }
val user = deferred.await()

¿Qué es un CoroutineScope?

Un scope define la duración de las corrutinas que se inician en él. Si cancela el scope, se cancelan todas sus corrutinas. Esto se denomina concurrencia estructurada.

Concurrencia estructurada

Como las corrutinas viven dentro de un scope, no pueden sobrevivir accidentalmente a este. Esto evita fugas: cuando la pantalla desaparece, su scope se cancela y su trabajo se detiene.

Cancelación

Al cancelar un scope o un job, se lanza una CancellationException en el siguiente punto de suspensión, lo que detiene la corrutina correctamente.

val job = scope.launch { /* work */ }
job.cancel() // stops it cooperatively

Cancelación cooperativa

Las corrutinas deben cooperar: los bucles largos que consumen CPU deben comprobar isActive o llamar a una función suspend para que la cancelación pueda surtir efecto.

while (isActive) {
    // do a chunk of work
}

Excepciones en corrutinas

Una excepción no capturada en un launch se propaga al scope y cancela sus corrutinas hermanas (salvo que se use un SupervisorJob). Gestione los errores con try/catch o un CoroutineExceptionHandler.

Por qué son importantes los scopes en Android

Android proporciona scopes listos para usar vinculados a los ciclos de vida de los componentes, como viewModelScope y lifecycleScope, para que las corrutinas se cancelen automáticamente en el momento adecuado. Esa es la siguiente lección.

Comprobación rápida

Compruebe cuánto entiende los scopes de las corrutinas.

Repaso

Ha aprendido lo siguiente:

  • Las funciones suspend se pausan sin bloquear.
  • launch inicia un trabajo sin esperar su resultado; async devuelve un resultado.
  • Un CoroutineScope delimita la duración de las corrutinas (concurrencia estructurada).
  • La cancelación es cooperativa.

Preguntas frecuentes

¿La lección «Conceptos básicos y ámbitos de las corrutinas» es gratis?

Sí — el texto completo de «Conceptos básicos y ámbitos de las corrutinas» 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 y ámbitos de las corrutinas»?

Inicie corrutinas en el ámbito adecuado 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 1 de 4.

¿Cuánto tiempo toma la lección «Conceptos básicos y ámbitos de las corrutinas»?

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