Novedades de productos

Jetpack Navigation 3 es estable

Lectura de 3 minutos
Don Turner
Ingeniero de relaciones con desarrolladores

La versión 1.0 de Jetpack Navigation 3 es estable 🎉. Empieza a usarla en tus aplicaciones de producción hoy mismo. JetBrains ya lo está usando en su aplicación KotlinConf.

Navigation 3 es una nueva biblioteca de navegación creada desde cero para adoptar el estado de Jetpack Compose. Te ofrece un control total sobre tu pila de retroceso, te ayuda a conservar el estado de navegación y te permite crear fácilmente diseños adaptativos (como lista y detalle). JetBrains ofrece incluso una versión multiplataforma.

¿Por qué una biblioteca nueva?

La biblioteca de navegación Jetpack original (ahora Nav2) se diseñó hace 7 años y, aunque cumple bien sus objetivos originales y se ha mejorado de forma iterativa, la forma en que se crean las aplicaciones ha cambiado radicalmente. 

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

nav-display.png

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

Por último, nos habéis pedido 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 creación") que se pueden combinar para crear funciones complejas. Nav3 usa estos componentes para proporcionar valores predeterminados adecuados en casos prácticos de navegación bien definidos. 

De esta forma, puedes hacer lo siguiente: 

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

Migrar de Navegación 2

Si ya usas Nav2, concretamente Navigation Compose, te recomendamos que migres a Nav3. Para ayudarte con este proceso, hemos creado una guía de migración. Estos son los pasos clave: 

  1. Añade las dependencias de navegación 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 retroceso persistente.
  3. Crea clases para mantener y modificar el estado de navegación. Aquí es donde se almacenan tus pilas hacia atrás.
  4. Sustituye NavController por estas clases.
  5. Mueve tus destinos de NavGraph de NavHost a un entryProvider.
  6. Sustituye NavHost por NavDisplay.

Experimentar con la migración de agentes de IA

Puedes probar a usar un agente de IA para leer la guía de migración y seguir los pasos en tu proyecto. Para probar esta función con Gemini en el Modo Agente de Android Studio, sigue estos pasos:

  • Guarda esta versión en formato Markdown de la guía en tu proyecto.
  • Pega esta petición en el agente (pero no pulses Intro): "Migra este proyecto a Navegación 3 usando ".
  • Escribe @migration-guide.md para proporcionar la guía como contexto al agente. 

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

Nos encantaría saber cómo ha sido tu experiencia o la de tu agente. Envíanos tus comentarios aquí.

Recetas de navegación útiles para situaciones habituales

Para los casos prácticos habituales, pero con matices, tenemos un repositorio de recetas. En este ejemplo se muestra cómo combinar las APIs Nav3 de una forma concreta, lo que te permite elegir o modificar la receta según tus necesidades. Si una receta resulta popular, consideraremos la posibilidad de "graduar" las partes no matizadas a la biblioteca principal de Nav3 o a las bibliotecas de complementos. 

code-recipes.png

Actualmente hay 19 recetas, entre las que se incluyen las siguientes: 

Estamos trabajando en una receta de enlaces profundos y en una integración de Koin, y tenemos muchas más en mente. Un ingeniero de JetBrains también ha publicado una versión de las recetas para Compose Multiplatform.

Si tienes un caso práctico habitual para el que te gustaría ver una receta, envía una solicitud de receta

Resumen

Para empezar a usar Nav3, consulta la documentación y las recetas. Además, no te pierdas una semana entera de contenido técnico, que incluye lo siguiente: 

  • Vídeo detallado sobre la API que abarca la modularización, las animaciones y los diseños adaptativos.
  • Una sesión de preguntas en directo con los ingenieros que crearon Nav3.

La semana de Nav3 Spotlight empieza el 1 de diciembre del 2025. 


Como siempre, si detectas algún problema, infórmanos aquí

Escrito por:

Seguir leyendo