Nouveautés sur les produits

Jetpack Navigation 3 est stable

Temps de lecture : 3 min
Don Turner
Ingénieur en relations avec les développeurs

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 adopter 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 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 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.

nav-display.png

Nav2 peut également rendre difficile la création 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 :

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 étapes clés :

  1. Ajoutez les dépendances de navigation 3.
  2. 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.
  3. Créez des classes pour contenir et modifier votre état de navigation. C'est là que vos piles "Retour" sont conservées.
  4. Remplacez NavController par ces classes.
  5. Déplacez vos destinations du NavGraph de NavHost vers un entryProvider.
  6. 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 à l'agent (mais n'appuyez pas sur Entrée) : "Migrate this project to Navigation 3 using ".
  • Saisissez @migration-guide.md. Le guide sera fourni à l'agent en tant que contexte.

Comme toujours, veillez à 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 passer" ses parties non nuancées dans la bibliothèque Nav3 principale ou dans des bibliothèques complémentaires. 

code-recipes.png

Il existe actuellement 19 recettes, y compris pour les éléments suivants :

Nous travaillons actuellement sur une recette de liens profonds, ainsi que sur une intégration Koin, et nous en avons prévu beaucoup d'autres. 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 voir une recette, veuillez envoyer une demande de recette

Résumé

Pour commencer à utiliser Nav3, consultez la documentation et les recettes. De plus, restez à l'affût d'une semaine complète de contenu technique, y compris :

  • Une 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 créé Nav3.

La semaine de présentation de Nav3 commence le 1er décembre 2025. 


Comme toujours, si vous rencontrez des problèmes, veuillez les signaler ici

Écrit par :

Lire la suite