La version 1.0 de Jetpack Navigation 3 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 entièrement conçue pour adopter l'état Jetpack Compose. Il vous permet de contrôler entièrement votre pile "Retour", de conserver l'état de navigation et de créer facilement des mises en page adaptatives (comme les mises en page liste/détails). Il existe même une version multiplate-forme 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 remplisse bien 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 conçues a fondamentalement changé.
La programmation réactive avec une UI déclarative est désormais la norme. Nav3 adopte cette approche. Par exemple, NavDisplay (le composant d'UI 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 UI lorsque cette liste change.
Nav2 peut également rendre difficile l'obtention 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. Au lieu 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 utilise lui-même ces blocs de construction pour fournir des valeurs par défaut pertinentes 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 de manière globale et individuelle
- Affichez plusieurs volets en même temps et créez des mises en page flexibles à l'aide de l'API Scenes.
- Remplacez 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, et plus précisément Navigation Compose, vous devriez envisager de migrer vers Nav3. Pour vous aider, nous avons créé un guide de migration. Voici les principales étapes :
- Ajoutez les dépendances de navigation 3.
- Mettez à jour vos itinéraires 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 de retour persistante.
- Créez des classes pour contenir et modifier votre état de navigation. C'est là que vos piles de retour sont conservées.
- Remplacez NavController par ces classes.
- Déplacez vos destinations du NavGraph de NavHost vers un entryProvider.
- Remplacez NavHost par NavDisplay.
Tester la migration des agents d'IA
Vous pouvez essayer d'utiliser un agent IA pour lire le guide de migration et effectuer les étapes sur votre projet. Pour essayer cette fonctionnalité avec le mode Agent de Gemini dans Android Studio :
- Enregistrez cette version Markdown du guide dans votre projet.
- Collez cette requête 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 ce que vous avez pensé de votre expérience avec nous ou avec votre agent. N'hésitez pas à nous faire part de vos commentaires.
Recettes de navigation savoureuses pour les scénarios courants
Pour les cas d'utilisation courants, mais nuancés, nous avons un dépôt de recettes. Il montre 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 passer" les parties non nuancées dans la bibliothèque Nav3 principale ou dans les bibliothèques de modules complémentaires.
Il existe actuellement 19 recettes, dont les suivantes :
- Plusieurs piles "Retour"
- Modularisation et injection de dépendances
- Transmettre des arguments de navigation à des 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 de Koin, et nous en avons beaucoup d'autres en prévision. Un ingénieur JetBrains a également publié une version Compose Multiplatform des recettes.
Si vous avez un cas d'utilisation courant pour lequel vous souhaitez obtenir 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 entière de contenus techniques, y compris :
- Vidéo 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 conçu Nav3.
La semaine spéciale Nav3 commence le 1er décembre 2025.
Comme toujours, si vous rencontrez des problèmes, veuillez les signaler ici.
Lire la suite
-
Actualités des produits
En 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 appareils pliables, des tablettes, des appareils XR, des Chromebooks et des voitures compatibles.
Fahd Imtiaz • Temps de lecture : 2 min
-
Actualités des produits
Chaque développeur a son propre workflow et ses propres besoins en matière d'IA. Il est donc important de pouvoir choisir comment l'IA vous aide dans votre développement. En janvier, nous avons introduit la possibilité de choisir n'importe quel modèle d'IA local ou distant pour alimenter les fonctionnalités d'IA dans Android Studio.
Matthew Warner • Temps de lecture : 2 min
-
Actualités des produits
Android Studio Panda 3 est désormais stable et prêt à être utilisé en production. Cette version vous offre encore plus de contrôle et de personnalisation sur vos workflows basés sur l'IA, ce qui vous permet de créer plus facilement que jamais des applications Android de haute qualité.
Matt Dyor • Temps de lecture : 3 min
Restez informé
Recevez chaque semaine les dernières informations sur le développement Android directement dans votre boîte de réception.