Novedades de productos

Navigation 3 de Jetpack es estable

Lectura de 3 min
Don Turner
Ingeniera de Relaciones con Desarrolladores

La versión 1.0 de Navigation 3 de Jetpack es estable 🎉. Úsala en tus apps de producción hoy mismo. JetBrains ya la usa en su app de KotlinConf.

Navigation 3 es una nueva biblioteca de navegación creada desde cero para adoptar el estado de Jetpack Compose. Te brinda control total sobre la pila de actividades, te ayuda a conservar el estado de navegación y te permite crear diseños adaptativos con facilidad (como el de lista-detalles). Incluso hay una versión multiplataforma de JetBrains.

¿Por qué una biblioteca nueva?

La biblioteca original de Navigation de Jetpack (ahora Nav2) se diseñó hace 7 años y, si bien cumple bien sus objetivos originales y se mejoró de forma iterativa, la forma en que se compilan las apps ahora cambió fundamentalmente. 

La programación reactiva con una IU declarativa ahora es la norma. Nav3 adopta este enfoque. Por ejemplo, NavDisplay (el componente de IU de Nav3 que muestra tus pantallas) simplemente observa una lista de claves (cada una representa una pantalla) respaldada por el estado de Compose y actualiza su IU cuando cambia esa lista.

nav-display.png

Nav2 también puede dificultar tener una única fuente de información para tu estado de navegación porque tiene su propio estado interno. Con Nav3, proporcionas tu propio estado, lo que te da control total.

Por último, solicitaste más flexibilidad y personalización. En lugar de tener una sola API monolítica, Nav3 proporciona APIs más pequeñas y desacopladas (o "bloques de compilación") que se pueden combinar para crear una funcionalidad compleja. Nav3 usa estos bloques de compilación para proporcionar valores predeterminados razonables para casos de uso de navegación bien definidos. 

Este enfoque te permite hacer lo siguiente: 

Obtén más información sobre su diseño y sus funciones en el blog de lanzamiento

Cómo migrar desde Navigation 2

Si ya usas Nav2, específicamente Navigation Compose, deberías considerar la posibilidad de migrar a Nav3. Para ayudarte con esto, hay una guía de migración. Los pasos clave son los siguientes: 

  1. Agrega las dependencias de Navigation 3.
  2. Actualiza tus rutas de navegación para implementar NavKey. Tus rutas no tienen que implementar esta interfaz para usar Nav3, pero, si lo hacen, puedes aprovechar la función rememberNavBackStack de Nav3 para crear una pila de actividades persistente.
  3. Crea clases para contener y modificar tu estado de navegación. Aquí es donde se almacenan tus pilas de actividades.
  4. Reemplaza NavController por estas clases.
  5. Mueve tus destinos de NavGraph de NavHost a un entryProvider.
  6. Reemplaza NavHost por NavDisplay.

Experimentación con la migración del agente de IA

Es posible que desees experimentar con el uso de un agente de IA para leer la guía de migración y realizar los pasos en tu proyecto. Para probar esto con Gemini en el modo agente de Android Studio, haz lo siguiente:

  • Guarda esta versión de Markdown de la guía en tu proyecto.
  • Pega este mensaje en el agente (pero no presiones Intro): "Migrate this project to Navigation 3 using ".
  • Escribe @migration-guide.md. Esto proporcionará la guía como contexto al agente.

Como siempre, asegúrate de revisar cuidadosamente los cambios realizados por el agente de IA, ya que puede cometer errores.

Nos encantaría saber cómo te fue a ti o a tu agente. Por favor, envía tus comentarios aquí.

Deliciosas recetas de navegación para situaciones comunes

Para casos de uso comunes, pero matizados, tenemos un repositorio de recetas. En él, se muestra cómo combinar las APIs de Nav3 de una manera particular, lo que te permite elegir o modificar la receta según tus necesidades específicas. Si una receta resulta popular, consideraremos "graduar" las partes no matizadas de ella en la biblioteca principal de Nav3 o en bibliotecas complementarias. 

code-recipes.png

Actualmente, hay 19 recetas, incluidas las siguientes: 

Actualmente, estamos trabajando en una receta de vínculos directos, además de una integración de Koin, y tenemos muchas otras planificadas. Un ingeniero de JetBrains también publicó una versión de Compose Multiplatform de las recetas.

Si tienes un caso de uso común para el que te gustaría ver una receta, envía una solicitud de receta

Resumen

Para comenzar a usar Nav3, consulta la documentación y las recetas. Además, estate atento a una semana completa de contenido técnico, que incluye lo siguiente: 

  • Un video detallado sobre la API que abarca la modularización, las animaciones y los diseños adaptativos
  • Una sesión de preguntas y respuestas en vivo con los ingenieros que crearon Nav3

La Semana de Nav3 Spotlight comienza el 1 de diciembre de 2025. 


Como siempre, si encuentras algún problema, por favor infórmanos aquí

Escrito por:

Seguir leyendo