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.
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:
- Personalizar las animaciones de pantalla a nivel global y de forma individual
- Muestra varios paneles al mismo tiempo y crea diseños flexibles con la API de Scenes.
- Reemplaza fácilmente los componentes de Nav3 por tus propias implementaciones si quieres un comportamiento personalizado
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:
- Agrega las dependencias de Navigation 3.
- 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.
- Crea clases para contener y modificar tu estado de navegación. Aquí es donde se guardan tus pilas de actividades.
- Reemplaza NavController por estas clases.
- Mueve tus destinos del NavGraph de NavHost a un entryProvider.
- 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.
Actualmente, hay 19 recetas, incluidas las siguientes:
- Varias pilas de actividades
- Modularización e inserción de dependencias
- Cómo pasar argumentos de navegación a ViewModels (incluido el uso de Koin)
- Cómo devolver resultados de pantallas por eventos y por estado compartido
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í.
-
Novedades de productosEn 2025, el ecosistema Android creció mucho más allá del teléfono. Hoy en día, los desarrolladores tienen la oportunidad de llegar a más de 500 millones de dispositivos activos, incluidos plegables, tablets, XR, Chromebooks y vehículos compatibles.
Fahd Imtiaz • Lectura de 2 min -
Novedades de productosLas apps que se orienten a la próxima versión de Android ya no podrán escribir directamente en los contactos con el permiso WRITE_CONTACTS.
Roxanna Aliabadi Walker • Lectura de 6 min -
Novedades de productosA medida que se acelera el desarrollo basado en agentes, la ingeniería de Android alcanza una nueva y emocionante frontera: pasar de la finalización de código asistida a agentes que ejecutan tareas de extremo a extremo bajo tu dirección. Tienes total libertad y flexibilidad para elegir los modelos y agentes que usas.
Jason Buchel • Lectura de 3 min
Recibe la información más reciente sobre el desarrollo de Android en tu bandeja de entrada todas las semanas.