Saltar a contenido

Ejecución de peticiones con Retrofit y corrutinas

1. Corrutinas y red en Android

Las peticiones de red no pueden ejecutarse en el hilo principal.
Retrofit se integra con corrutinas usando funciones suspend.

Esto permite: - Código secuencial y legible - Gestión automática de hilos - Cancelación ligada al ciclo de vida

2. Structured concurrency

En Android, las corrutinas deben lanzarse desde un scope controlado: - viewModelScope - lifecycleScope

Esto evita: - Fugas de memoria - Peticiones activas cuando la pantalla ya no existe

3. Flujo típico de ejecución

  1. El usuario realiza una acción (buscar, pulsar botón)
  2. La UI llama al ViewModel
  3. El ViewModel lanza una corrutina
  4. El Repository llama a Retrofit
  5. Retrofit devuelve el resultado
  6. La UI se actualiza

Este flujo garantiza separación de responsabilidades.

4. Repository como intermediario

El Repository: - Centraliza el acceso a datos - Decide si los datos vienen de red, cache o BD - Simplifica el ViewModel

Ejemplo conceptual:

class Repository {
    suspend fun loadData(): List<String> {
        // llamada Retrofit
    }
}

5. Estados de UI

Una buena práctica es representar el estado de la pantalla: - Cargando - Éxito - Error

Esto permite: - Mostrar feedback al usuario - Evitar pantallas “congeladas” - Mejor experiencia de uso

6. Errores habituales en prácticas

  • Llamar a Retrofit desde la Activity
  • No controlar excepciones
  • Mezclar lógica de red y UI
  • Bloquear el hilo principal

Todos estos puntos son muy penalizables en evaluación.