Jetpack Navigation 3 version 1.0 est stable 🎉. N'hésitez pas à l'utiliser dès aujourd'hui dans vos applications de production. JetBrains l'utilise déjà dans son application KotlinConf.
Navigation 3 est une nouvelle bibliothèque de navigation conçue de A à Z pour intégrer l'état de Jetpack Compose state. Elle vous offre un contrôle total sur votre pile "Retour", vous aide à conserver l'état de navigation et vous permet de créer facilement des mises en page adaptatives (comme une liste de détails). Il existe même une version multiplateforme de JetBrains.
Pourquoi une nouvelle bibliothèque ?
La bibliothèque Jetpack Navigation d'origine (désormais Nav2) a été conçue il y a sept ans. Bien qu'elle atteigne ses objectifs initiaux et qu'elle ait été améliorée de manière itérative, la façon dont les applications sont désormais créées a fondamentalement changé.
La programmation réactive avec une interface utilisateur déclarative est désormais la norme. Nav3 adopte cette approche. Par exemple, NavDisplay (le composant d'interface utilisateur Nav3 qui affiche vos écrans) observe simplement une liste de clés (chacune représentant un écran) soutenue par l'état Compose et met à jour son interface utilisateur lorsque cette liste change.
Nav2 peut également rendre difficile la gestion d'une source unique de vérité pour votre état de navigation, car il possède son propre état interne. Avec Nav3, vous fournissez votre propre état, ce qui vous donne un contrôle total.
Enfin, vous avez demandé plus de flexibilité et de personnalisation. Plutôt que d'avoir une seule API monolithique, Nav3 fournit des API plus petites et découplées (ou "blocs de construction") qui peuvent être combinées pour créer des fonctionnalités complexes. Nav3 lui-même utilise ces blocs de construction pour fournir des valeurs par défaut raisonnables pour les cas d'utilisation de navigation bien définis.
Cette approche vous permet d'effectuer les opérations suivantes :
- Personnaliser les animations d'écran à la fois au niveau global et individuel
- Afficher plusieurs volets en même temps et créer des mises en page flexibles à l'aide de l'API Scenes
- Remplacer facilement les composants Nav3 par vos propres implémentations si vous souhaitez un comportement personnalisé
Pour en savoir plus sur sa conception et ses fonctionnalités, consultez l'article de blog sur le lancement.
Migrer depuis Navigation 2
Si vous utilisez déjà Nav2, en particulier Navigation Compose, vous devriez envisager de migrer vers Nav3. Pour vous aider, un guide de migration est disponible. Voici les principales étapes :
- Ajoutez les dépendances de navigation 3.
- Mettez à jour vos routes de navigation pour implémenter NavKey. Vos routes n'ont pas besoin d'implémenter cette interface pour utiliser Nav3, mais si elles le font, vous pouvez profiter de la fonction rememberNavBackStack de Nav3 pour créer une pile "Retour" persistante.
- Créez des classes pour contenir et modifier votre état de navigation. C'est là que vos piles "Retour" sont conservées.
- Remplacez NavController par ces classes.
- Déplacez vos destinations du NavGraph de NavHost vers un entryProvider.
- Remplacez NavHost par NavDisplay.
Expérimenter la migration d'un agent d'IA
Vous pouvez essayer d'utiliser un agent d'IA pour lire le guide de migration et effectuer les étapes de votre projet. Pour essayer cette fonctionnalité avec Gemini dans le mode Agent d'Android Studio :
- Enregistrez cette version Markdown du guide dans votre projet.
- Collez cette invite dans l'agent (mais n'appuyez pas sur Entrée) : "Migrate this project to Navigation 3 using ".
- Saisissez @migration-guide.md. Le guide sera alors fourni à l'agent en tant que contexte.
Comme toujours, assurez-vous d'examiner attentivement les modifications apportées par l'agent d'IA, car il peut faire des erreurs.
Nous aimerions savoir comment vous ou votre agent avez procédé. Veuillez nous envoyer vos commentaires ici.
Recettes de navigation utiles pour les scénarios courants
Pour les cas d'utilisation courants, mais nuancés, nous disposons d'un dépôt de recettes. Il explique comment combiner les API Nav3 d'une manière particulière, ce qui vous permet de choisir ou de modifier la recette en fonction de vos besoins spécifiques. Si une recette s'avère populaire, nous envisagerons de "faire évoluer" ses parties non nuancées vers la bibliothèque Nav3 de base ou des bibliothèques complémentaires.
Il existe actuellement 19 recettes, y compris pour les éléments suivants :
- Plusieurs piles "Retour"
- Modularisation et injection de dépendances
- Transmission d'arguments de navigation aux ViewModels (y compris à l'aide de Koin)
- Renvoi de résultats à partir d'écrans par événements et par état partagé
Nous travaillons actuellement sur une recette de liens profonds, ainsi que sur une intégration Koin, et nous avons prévu de nombreuses autres recettes. Un ingénieur de JetBrains a également publié une version multiplateforme Compose des recettes.
Si vous avez un cas d'utilisation courant pour lequel vous souhaitez une recette, veuillez envoyer une demande de recette.
Résumé
Pour commencer à utiliser Nav3, consultez la documentation et les recettes. De plus, ne manquez pas une semaine complète de contenu technique, y compris :
- Une vidéo de présentation détaillée sur l'API couvrant la modularisation, les animations et les mises en page adaptatives.
- Une session de questions/réponses en direct avec les ingénieurs qui ont créé Nav3.
La semaine spéciale Nav3 commence le 1er décembre 2025.
Comme toujours, si vous rencontrez des problèmes, veuillez les signaler ici.
-
Nouveautés concernant les produitsEn 2025, l'écosystème Android s'est étendu bien au-delà du téléphone. Aujourd'hui, les développeurs ont la possibilité de toucher plus de 500 millions d'appareils actifs, y compris des pliables, des tablettes, des appareils XR, des Chromebooks et des voitures compatibles.
Fahd Imtiaz • 2 minutes de lecture -
Nouveautés concernant les produitsAujourd'hui, nous avons expliqué comment nous faisons évoluer notre vision "plus qu'un magasin". De l'onglet "Pour vous", désormais la page d'accueil personnalisée de plus de 250 millions d'utilisateurs actifs par mois, à notre plate-forme de jeux unifiée connectant plus de 700 millions de profils de joueurs, Google Play répond aux besoins des utilisateurs où qu'ils soient.
Paul Feng • 3 minutes de lecture -
Nouveautés concernant les produitsEn tant que développeurs Android, vous avez de nombreuses options en ce qui concerne les agents, les LLM, les outils et les interfaces de ligne de commande (CLI) que vous utilisez pour le développement d'applications. Notre objectif est de vous aider à créer des applications Android de qualité, quelle que soit la méthode que vous choisissez.
Simona Milanovic • 4 minutes de lecture
Recevez chaque semaine dans votre boîte de réception les dernières informations sur le développement Android.