EloyGM
  • Apps
  • Artículos
  • Sobre mí
  • Contacto

Navegación en Jetpack Compose: Retos, soluciones y buenas prácticas

Navegar entre pantallas usando composables sin quebraderos de cabeza

22 de enero de 2026

1. El fin del FragmentManager

En el antiguo framework, dependíamos trágicamente del inestable `FragmentManager` para realizar transacciones de pantallas. Los 'IllegalStateException' tras rotar el teléfono o restaurar el estado desde background eran el pan de cada día en los foros de StackOverflow. Jetpack Compose propuso una revolución minimalista: la pantalla completa es solamente otra gran función `@Composable` intercambiada dentro de un simple `NavHost`.

2. Navegación basada en URLs (Strings) vs Type-Safe

El estándar inicial de la librería `navigation-compose` basaba sus argumentos de traslación en rudimentarias rutas tipo URL web: `navController.navigate("details_screen/user123")`. Esto propiciaba enormes bugs ortográficos si te olvidabas el slash o casteabas un String como Entero a mitad por error. Hoy, la buena práctica es la **Navegación Type-Safe** mediante Kotlin Serialization: declarar la ruta destino como una `data class UserDetail(val id: Int)` fuerte asegurada por compliación, previniendo para siempre crasheadas de malformado.

3. Controladores y Múltiples Backstacks

Integrar de forma robusta la barra inferior (Bottom Navigation) presenta su propia amargura. Emplear un diseño en Compose requiere conservar cuidadosamente la pila "atrás" subyacente de la tab A mientras navegas a la Tab B, para que al regresar a la A, sigas en el preciso fragmento Scrolleado y no pierdas el estado. Usa implacablemente `saveState = true` y `restoreState = true` en cada invocación manual de tu bottom bar nav.

EloyGM

Desarrollador Android indie

Apps

Artículos

Privacidad

Legal

© 2026 EloyGM