Nouveautés sur les produits

Jetpack Navigation 3 est stable

Lecture : 3 minutes
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 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 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 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 gestion d'une source unique d'informations fiables pour votre état de navigation, car elle 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 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 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 fourni à l'agent en tant que contexte. 

Comme toujours, assurez-vous d'examiner attentivement les modifications apportées par l'agent IA, car il peut faire des erreurs.

N'hésitez pas à nous envoyer vos commentaires sur vos performances ou celles de votre agent, 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 de modules 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 avons prévu de nombreuses autres recettes. Un ingénieur de JetBrains a également publié une version multiplate-forme 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 de toute une semaine 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