Novedades de productos

Jetpack Navigation 3 es estable

Lectura de 3 min
Ver el perfil de Don Turner
Don Turner Ingeniero de relaciones con desarrolladores

La versión 1.0 de Jetpack Navigation 3 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 Jetpack Navigation (ahora Nav2) se diseñó hace 7 años y, si bien cumple con sus objetivos originales y se mejoró de forma iterativa, la forma en que se compilan las apps cambió de manera fundamental. 

La programación reactiva con una IU declarativa ahora es la norma. Nav3 adopta este enfoque. Por ejemplo, NavDisplay (el componente de la 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 fuente única de información para el estado de navegación, ya que tiene su propio estado interno. Con Nav3, proporcionas tu propio estado, lo que te brinda un control total.

Por último, nos pediste 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 "componentes básicos") que se pueden combinar para crear funciones complejas. Nav3 usa estos componentes básicos 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 migrar a Nav3. Para ayudarte con este proceso, consulta la 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. No es necesario que tus rutas implementen 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 guardan tus pilas de actividades.
  4. Reemplaza NavController por estas clases.
  5. Mueve tus destinos del NavGraph de NavHost a un entryProvider.
  6. Reemplaza NavHost por NavDisplay.

Experimenta con la migración de agentes de IA

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

  • Guarda esta versión de Markdown de la guía en tu proyecto.
  • Pega esta instrucción 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 que realice el agente de IA, ya que puede cometer errores. 

Nos encantaría saber cómo te fue a ti o a tu agente. Envía tus comentarios aquí.

Recetas de navegación útiles para situaciones comunes

Para casos de uso comunes, pero con matices, tenemos un repositorio de recetas. En esta guía, 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 ser popular, consideraremos "graduar" las partes no matizadas de ella en la biblioteca principal de Nav3 o en las 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 multiplataforma de Compose 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, presta atención a toda una semana de contenido técnico, que incluye lo siguiente: 

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

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


Como siempre, si encuentras algún problema, infórmalo aquí. 

Escrito por:
Continuar leyendo