Actualités sur les produits

Jetpack Navigation 3 est stable

Temps de lecture : 3 min
Voir le profil de Don Turner
Don Turner Ingénieur Developer Relations

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.

nav-display.png

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 : 

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 : 

  1. Ajoutez les trois dépendances de navigation.
  2. 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.
  3. Créez des classes pour stocker et modifier l'état de navigation. C'est là que sont stockées vos piles « Retour ».
  4. Remplacez NavController par ces classes.
  5. Déplacez vos destinations du NavGraph de NavHost vers un entryProvider.
  6. 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. 

code-recipes.png

Il existe actuellement 19 recettes, y compris pour : 

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. 

Written by:
Continuer la lecture