La navegación se refiere a las interacciones que permiten a los usuarios navegar a través de las diferentes piezas de contenido de tu app, y dentro y fuera ellas.
El componente Navigation de Android Jetpack incluye la biblioteca de Navigation, el complemento Safe Args de Gradle y las herramientas para ayudarte a implementar la navegación en apps. El componente Navigation controla diversos casos de uso de navegación, desde clics simples en botones hasta patrones más complejos, como las barras de la aplicación y el panel lateral de navegación.
Conceptos clave
En la siguiente tabla, se proporciona una descripción general de los conceptos clave de la navegación y los tipos principales que usas para implementarlos.
Concepto |
Propósito |
Tipo |
---|---|---|
Host |
Un elemento de la IU que contiene el destino de navegación actual. Es decir, cuando un usuario navega por una app, esta esencialmente intercambia destinos dentro y fuera del host de navegación. |
|
Gráfico |
Es una estructura de datos que define todos los destinos de navegación dentro de la app y cómo se conectan entre sí. |
|
Controlador |
Es el coordinador central para administrar la navegación entre destinos. El controlador ofrece métodos para navegar entre destinos, controlar vínculos directos, administrar la pila de actividades y mucho más. |
|
Destino |
Un nodo en el gráfico de navegación. Cuando el usuario navega a este nodo, el host muestra su contenido. |
Por lo general, se crea cuando se construye el gráfico de navegación. |
Ruta |
Identifica de forma exclusiva un destino y los datos que este requiere. Puedes navegar con rutas. Las rutas te llevan a los destinos. |
Cualquier tipo de datos serializable |
Beneficios y funciones
El componente Navigation ofrece algunos otros beneficios y funciones, entre los que se incluyen los siguientes:
- Animaciones y transiciones: Proporciona recursos estandarizados para animaciones y transiciones
- Vínculos directos: Implementa y controla vínculos directos que llevan al usuario directamente a un destino
- Patrones de la IU: Admite patrones como los paneles laterales de navegación y la navegación inferior con un mínimo trabajo adicional
- Seguridad de tipos: Incluye compatibilidad para pasar datos entre destinos con seguridad de tipos.
- Compatibilidad con ViewModel: Permite definir el alcance de un elemento
ViewModel
en relación con un gráfico de navegación para compartir datos relacionados con la IU entre los destinos del gráfico - Transacciones de fragmentos: Admite y controla por completo transacciones de fragmentos
- Acciones hacia atrás y arriba: Controla correctamente las acciones hacia atrás y arriba de forma predeterminada
Cómo configurar tu entorno
Para incluir compatibilidad con Navigation en tu proyecto, agrega las siguientes dependencias al archivo build.gradle
de tu app:
plugins { // Kotlin serialization plugin for type safe routes and navigation arguments id 'org.jetbrains.kotlin.plugin.serialization' version '2.0.21' } dependencies { def nav_version = "2.8.8" // Jetpack Compose Integration implementation "androidx.navigation:navigation-compose:$nav_version" // Views/Fragments Integration implementation "androidx.navigation:navigation-fragment:$nav_version" implementation "androidx.navigation:navigation-ui:$nav_version" // Feature module support for Fragments implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version" // Testing Navigation androidTestImplementation "androidx.navigation:navigation-testing:$nav_version" // JSON serialization library, works with the Kotlin serialization plugin. implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3" }
plugins { // Kotlin serialization plugin for type safe routes and navigation arguments kotlin("plugin.serialization") version "2.0.21" } dependencies { val nav_version = "2.8.8" // Jetpack Compose integration implementation("androidx.navigation:navigation-compose:$nav_version") // Views/Fragments integration implementation("androidx.navigation:navigation-fragment:$nav_version") implementation("androidx.navigation:navigation-ui:$nav_version") // Feature module support for Fragments implementation("androidx.navigation:navigation-dynamic-features-fragment:$nav_version") // Testing Navigation androidTestImplementation("androidx.navigation:navigation-testing:$nav_version") // JSON serialization library, works with the Kotlin serialization plugin implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3") }
Si quieres obtener información sobre cómo agregar otros componentes de la arquitectura a tu proyecto, consulta Cómo agregar componentes a tu proyecto.
Próximos pasos
Para consultar más documentación y recursos relacionados con el componente Navigation, accede a los siguientes recursos.
Guías detalladas
Para obtener más información sobre cómo implementar un host de navegación y NavController
, además de detalles sobre cómo interactúan con Compose y otros frameworks de IU, consulta las siguientes guías:
- Cómo crear un controlador de navegación: describe cómo crear un
NavController
- Cómo crear tu gráfico de navegación: detalla cómo crear un host de navegación y un gráfico de navegación
- Cómo navegar a un destino: muestra cómo usar un
NavController
para desplazarte entre los destinos del gráfico
Codelabs
- Componente Navigation de Jetpack
- Los fragmentos y el componente de Navigation
- Cómo compilar una app adaptable con navegación dinámica
Videos
- Cómo navegar con Navigation
- 10 prácticas recomendadas para pasar a una sola actividad
- Actividad única: Por qué, cuándo y cómo (Android Dev Summit 2018)
- Android Jetpack: cómo administrar la navegación de la IU con el controlador de Navigation (Google I/O 2018)
Ejemplos
Mir 2: Return of the King es un juego para dispositivos móviles de alta calidad con la IP de Legend autorizado por Actoz Soft y desarrollado por HK ZHILI YAOAN LIMITED con el motor de juego Unity. Este juego no solo recrea a la perfección los Wuthering Waves es un juego de rol de acción de alta fidelidad desarrollado por Kuro Games.
Optimizar el consumo de energía es muy importante para ofrecer de forma sostenible una experiencia del usuario premium en sesiones de juego largas. Android Godot Engine es un popular motor de juego multiplataforma de código abierto con una compatibilidad sólida con Android. Godot se puede usar para crear juegos de prácticamente cualquier género y es capaz de renderizar gráficos en 2D y 3D. La versión 4 El framework de rendimiento dinámico (ADPF) de Android es una herramienta potente de Google para desarrolladores que desean optimizar el rendimiento de sus aplicaciones. A través de sus APIs térmicas, ADPF proporciona información en tiempo real sobre NCSoft Lineage W es un juego de rol multijugador masivo en línea (MMORPG) desarrollado por NCSoft. Este juego hereda el legado del juego original de Lineage W y ofrece un entorno en el que los jugadores de todo el mundo pueden cooperar y competir a La mejora del rendimiento y la administración térmica es fundamental para desarrollar juegos exitosos en Android. Tradicionalmente, los desarrolladores tenían que manejar estos problemas disminuyendo la fidelidad del juego o optimizando aún más el Call of Duty: Warzone Mobile es un juego de acción en primera persona de la popular franquicia Call of Duty. La materialización móvil del juego de consola y de PC, que es muy popular, aprovecha las APIs de bajo nivel para dispositivos móviles con el Summoners War: Chronicles es un MMORPG para dispositivos móviles del desarrollador de juegos surcoreano Com2uS que se lanzó a nivel mundial en marzo de 2023. Hasta la fecha, Summoners War ha ganado más de USD 2,700 millones con más de 180 millones de Summoners War: Chronicles US(WW) y KR de Com2uS usan exclusivamente Vulkan para la renderización en Android, con mejoras de rendimiento de hasta un 30%. Vulkan es una API multiplataforma moderna de gráficos 3D diseñada para minimizar la abstracción Ares: Rise of Guardians es un MMORPG de ciencia ficción de dispositivo móvil a PC desarrollado por Second Dive, un estudio de juegos con sede en Corea, conocido por su experiencia en el desarrollo de series de RPG de acción. Kakao Games publicó el Cat Daddy Games es un estudio de propiedad plena de 2K con sede en Kirkland, Washington y el desarrollador de NBA 2K Mobile.
El equipo quería mejorar la calidad y estabilidad generales de sus juegos, en particular, reduciendo los errores de Devsisters es un desarrollador y publicador de juegos para dispositivos móviles a nivel mundial que produce juegos casuales basados en la IP de Cookie Run. Sus juegos más populares incluyen Cookie Run: OvenBreak (salada de videojuegos para correr) y NEW STATE Mobile es un juego de batalla masiva de Krafton que se lanzó en noviembre de 2021 en todo el mundo y alcanzó más de 45 millones de descargas en el primer mes de su lanzamiento. KRAFTON, Inc. es un colectivo de estudios independientes de Con sede en Polonia, Spokko es un grupo de creadores ambiciosos que trabajan con IP muy exigentes. Aunque forma parte de la familia CD PROJEKT, Spokko es una empresa independiente que trasladó el gran mundo de The Witcher: Monster Slayer a los Cat Daddy Games es un estudio de propiedad plena 2K con sede en Kirkland, Washington. Los equipos detrás de las series NBA 2K Mobile, NBA SuperCard y WWE SuperCard buscaban una solución con el fin de mejorar la calidad general de sus juegos para los Unreal Engine es un motor de juego desarrollado por Epic Games, que brinda a los creadores de todas las industrias libertad y control para ofrecer entretenimiento de vanguardia, visualizaciones atractivas y mundos virtuales envolventes. Algunos Electronic Arts (EA) es una empresa de juegos con sede en California, EE.UU. Produce una gran variedad de juegos de diferentes géneros, como deportes, acción, carreras y simulación. El estudio de desarrollo de EA, Firemonkeys, es más conocido como el Con sede en Varsovia, Polonia, la empresa desarrolladora de juegos CD Projekt RED (CDPR) rediseñó su minijuego de The Witcher 3, GWENT: The Witcher Card Game, para lanzarlo como título independiente y gratuito en Google Play en marzo de 2020.
Debido La empresa desarrolladora RV AppStudios, cuya sede está en EE.UU., cuenta con más de 200 millones de descargas hasta la fecha de los juegos casuales, las apps educativas para niños y las apps de utilidad que conforman su cartera. Siendo uno de los En el año 2000, Gameloft se creó gracias a la pasión por los juegos y un deseo de llevarlos a los jugadores de todo el mundo. Fue pionera en el desarrollo de apps para dispositivos móviles y ahora tiene una cartera de más de 190 juegos. Muchos de los Durante más de 20 años, Gameloft ha creado experiencias de juego innovadoras para plataformas digitales, desde juegos para dispositivos móviles hasta títulos multiplataforma de PC y consola. Además de sus propias franquicias establecidas, Gameloft El equipo de desarrolladores de videojuegos con sede en Moscú, Pixonic, se enorgullece de aprovechar todas las oportunidades para actualizar las apps para dispositivos móviles y llegar a un público más amplio de gamers. Uno de los títulos más Gameloft siempre se esfuerza por ser uno de los primeros desarrolladores en publicar juegos en el hardware portátil más reciente para brindarles a los gamers experiencias emocionantes dondequiera que estén. Por eso, Gameloft sabía que ChromeOS era elMir 2 mejora el rendimiento de renderización con la biblioteca de Frame Pacing.
Kuro Games reduce el consumo de energía en un 9.68% con el generador de perfiles de energía de Android Studio y ODPM para Wuthering Waves
Optimización de Vulkan de Godot Engine para Android
Cómo comenzar a usar el Framework de rendimiento dinámico de Android (ADPF) en Unreal Engine
NCSoft Lineage W mejora el rendimiento sostenido y previene los límites térmicos mediante el uso de ADPF
MediaTek mejora el rendimiento dinámico de los SoCs de Android
Call of Duty Warzone Mobile usa Vulkan para mejorar los gráficos
Com2uS - Google Play Juegos para PC
Com2uS usa Vulkan para obtener mejores gráficos
Kakao Games aumentó la estabilidad de FPS en un 96% gracias a la adaptabilidad para Android
2K reduce la tasa de ANR en un 35% con Android Game Development Kit
Cookie Run: OvenBreak ahorra más de USD 200,000 en costos de CDN con Play Asset Delivery
NEW STATE para dispositivos móviles reduce el uso de GPU en un 22% con el Inspector de GPU de Android
The Witcher: Monster Slayer mejora su alcance con Android Performance Tuner
2K entrega gráficos de mayor calidad con Play Asset Delivery
"AGDE es increíble" para el desarrollo de Android con Unreal Engine
Firemonkeys redujo el tiempo de desarrollo y depuración con AGDE
CD Projekt RED: Reduce el tamaño de las actualizaciones en un 90% y aumenta las tasas de actualización en un 10% con Play Asset Delivery
RV AppStudios mejora la retención de usuarios con Google Play Asset Delivery
Gameloft adquiere un 10% más de usuarios nuevos con Google Play Asset Delivery
Gameloft reduce el consumo de energía de los dispositivos en un 70%, lo que aumenta el tiempo de juego en un 35% con la API de Game Mode
Pixonic aumentó la participación en un 25% en ChromeOS mediante la optimización para pantallas grandes
Gameloft obtiene 9 veces más ingresos gracias a la optimización para ChromeOS