Proyecto Android didáctico para comprender y aplicar correctamente
LaunchedEffect, DisposableEffect y rememberUpdatedState en Jetpack Compose.
Los ejemplos son ficticios, autocontenidos y no incluyen código ni datos
propietarios.
La dinámica es predecir, ejecutar, observar y explicar. Cada laboratorio muestra una línea temporal para hacer visible cuándo comienza un efecto, cuándo se reinicia, cuándo se cancela y cuándo libera un recurso.
| Hito | Evidencia |
|---|---|
Comprender LaunchedEffect |
Demo con clave, salida de composición y cancelación |
Comprender DisposableEffect |
Registro y liberación de listeners simulados |
| Elegir claves correctas | Cambio interactivo de identidad y línea temporal |
| Evitar reinicios innecesarios | Demo con rememberUpdatedState |
| Aplicar efectos a casos prácticos | Analítica temporizada y LifecycleObserver |
| Demostrar el comportamiento | Tests unitarios e instrumentados de Compose |
- Abrir
ComposeEffectLabcon Android Studio. - Esperar a que finalice la sincronización de Gradle.
- Seleccionar un emulador o dispositivo con Android 8 / API 26 o superior.
- Ejecutar la configuración
app.
Validación por terminal:
./gradlew testDebugUnitTest assembleDebug
./gradlew connectedDebugAndroidTestEl segundo comando requiere un dispositivo o emulador conectado.
- Leer
docs/01_GUIA_DIDACTICA.md. - Insertar
LaunchedEffect, cambiar su clave y retirarlo de composición. - Probar
rememberUpdatedStatecambiando el mensaje durante la espera. - Registrar un listener con
DisposableEffect, cambiar su clave y liberarlo. - Revisar la tabla de
docs/02_COMPARATIVA.md. - Ejecutar los dos casos reales y resolver
docs/03_EJERCICIOS.md.
Compose UI ──claves/presencia──> Effects
│ │
├── línea temporal <────────────┤
│ ├── coroutine suspendible
│ └── recurso registrable
└── clases puras testeables: recorder + fake registry