La version 1.0 de Jetpack Navigation 3 est stable 🎉. Vous pouvez 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 intégrer l'état de Jetpack Compose. Il vous donne 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 liste-détail). 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 réponde parfaitement à ses objectifs d'origine 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 UI 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) sauvegardée par l'état Compose et met à jour son interface utilisateur lorsque cette liste change.
Nav2 peut également compliquer la mise en place d'une source unique de vérité pour l'é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 de proposer une seule API monolithique, Nav3 fournit des API plus petites et dissociées (ou "composants") qui peuvent être combinées pour créer des fonctionnalités complexes. Nav3 utilise lui-même ces composants de base pour fournir des valeurs par défaut adaptées à des cas d'utilisation de navigation bien définis.
Cette approche vous permet de :
- Personnalisez les animations d'écran au niveau global et individuel.
- 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, en particulier Navigation Compose, vous devriez envisager de migrer vers Nav3. Pour vous aider, nous avons mis à votre disposition un guide de migration. Voici les principales étapes :
- Ajoutez les trois dépendances de navigation.
- 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 utiliser la fonction rememberNavBackStack de Nav3 pour créer une pile d'activité persistante.
- Créez des classes pour stocker et modifier l'état de navigation. C'est là que sont stockées vos piles « Retour ».
- Remplacez NavController par ces classes.
- Déplacez vos destinations du NavGraph de NavHost vers un entryProvider.
- Remplacez NavHost par NavDisplay.
Tester la migration d'un agent 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 ce prompt dans l'agent (mais n'appuyez pas sur Entrée) : "Migrate this project to Navigation 3 using ".
- Saisissez @migration-guide.md. Cela fournira le guide comme contexte à l'agent.
Comme toujours, veillez à examiner attentivement les modifications apportées par l'agent IA, car il peut faire des erreurs.
Nous aimerions savoir comment vous ou votre agent avez procédé. Veuillez nous envoyer vos commentaires.
Recettes de navigation savoureuses pour les scénarios courants
Pour les cas d'utilisation courants, mais nuancés, nous disposons d'un dépôt de recettes. Cela 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 d'intégrer ses parties non nuancées dans la bibliothèque Nav3 principale ou dans les bibliothèques de modules complémentaires.
Il existe actuellement 19 recettes, y compris pour :
- Plusieurs piles "Retour"
- Modularisation et injection de dépendances
- Transmettre des arguments de navigation aux ViewModels (y compris à l'aide de Koin)
- Renvoyer les résultats des é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 prévoyons beaucoup d'autres. Un ingénieur de JetBrains a également publié une version Compose Multiplatform des recettes.
Si vous souhaitez obtenir une recette pour un cas d'utilisation courant, 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, dont :
- Une présentation détaillée en vidéo sur l'API, qui aborde la modularisation, les animations et les mises en page adaptatives.
- Une session AMA ("Ask Me Anything") en direct avec les ingénieurs qui ont conçu Nav3.
La semaine Spotlight Nav3 commence le 1er décembre 2025.
Comme toujours, si vous rencontrez des problèmes, veuillez les signaler ici.
-
Actualités sur 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 • Temps de lecture : 2 min -
Actualités sur les produitsÀ mesure que le développement agentique s'accélère, l'ingénierie Android atteint une nouvelle frontière passionnante : passer de la complétion de code assistée à des agents qui s'exécutent de bout en bout sous votre direction. Vous disposez d'un choix et d'une flexibilité totaux concernant les modèles et les agents que vous utilisez.
Jason Buchel • Temps de lecture : 3 min -
Actualités sur les produitsAujourd'hui, nous avons expliqué comment nous faisions évoluer notre vision "plus qu'un magasin". De l'onglet "Vous", qui sert désormais d'espace personnel à plus de 250 millions d'utilisateurs actifs par mois, à notre plate-forme de jeux unifiée qui connecte plus de 700 millions de profils de joueurs, Google Play répond aux besoins des utilisateurs où qu'ils se trouvent.
Paul Feng • Temps de lecture : 3 min
Recevez chaque semaine les dernières informations sur le développement Android dans votre boîte de réception.