Produktneuigkeiten

Jetpack Navigation 3 ist stabil

Lesezeit: 3 Minuten
Profil von Don Turner ansehen
Don Turner Developer Relations Engineer

Jetpack Navigation 3 Version 1.0 ist stabil 🎉. Sie können sie ab sofort in Ihren Produktions-Apps verwenden. JetBrains verwendet es bereits in seiner KotlinConf-App.

Navigation 3 ist eine neue Navigationsbibliothek, die von Grund auf für die Verwendung des Status von Jetpack Compose entwickelt wurde. Sie haben die volle Kontrolle über Ihren Back Stack, können den Navigationsstatus beibehalten und ganz einfach adaptive Layouts (wie Listen-Detailansichten) erstellen. Es gibt sogar eine plattformübergreifende Version von JetBrains.

Warum eine neue Bibliothek?

Die ursprüngliche Jetpack Navigation-Bibliothek (jetzt Nav2) wurde vor 7 Jahren entwickelt. Sie erfüllt ihre ursprünglichen Ziele gut und wurde iterativ verbessert, aber die Art und Weise, wie Apps heute erstellt werden, hat sich grundlegend geändert. 

Reaktive Programmierung mit einer deklarativen Benutzeroberfläche ist mittlerweile die Norm. Nav3 verfolgt diesen Ansatz. Beispiel: NavDisplay (die Nav3-UI-Komponente, die Ihre Bildschirme anzeigt) beobachtet einfach eine Liste von Schlüsseln (jeder Schlüssel steht für einen Bildschirm), die durch den Compose-Status unterstützt wird, und aktualisiert die UI, wenn sich diese Liste ändert.

nav-display.png

Nav2 kann es auch erschweren, eine einzige verlässliche Quelle für den Navigationsstatus zu haben, da es einen eigenen internen Status hat. Bei Nav3 geben Sie Ihren eigenen Status an, sodass Sie die vollständige Kontrolle haben.

Außerdem haben Sie sich mehr Flexibilität und Anpassungsmöglichkeiten gewünscht. Anstatt eine einzige, monolithische API zu verwenden, bietet Nav3 kleinere, entkoppelte APIs (oder „Bausteine“), die kombiniert werden können, um komplexe Funktionen zu erstellen. Nav3 selbst verwendet diese Bausteine, um sinnvolle Standardeinstellungen für klar definierte Navigationsanwendungsfälle bereitzustellen. 

Dieser Ansatz bietet folgende Vorteile: 

Weitere Informationen zum Design und zu den Funktionen findest du im Blogpost zur Markteinführung. 

Von Navigation 2 migrieren

Wenn Sie bereits Nav2 verwenden, insbesondere Navigation Compose, sollten Sie zu Nav3 migrieren. Dabei hilft Ihnen die Migrationsanleitung. Die wichtigsten Schritte sind: 

  1. Fügen Sie die Navigation 3-Abhängigkeiten hinzu.
  2. Aktualisieren Sie Ihre Navigationsrouten, um NavKey zu implementieren. Ihre Routen müssen diese Schnittstelle nicht implementieren, um Nav3 zu verwenden. Wenn sie es jedoch tun, können Sie die Funktion „rememberNavBackStack“ von Nav3 nutzen, um einen persistenten Back Stack zu erstellen.
  3. Erstellen Sie Klassen, um den Navigationsstatus zu speichern und zu ändern. Hier werden Ihre Back Stacks gespeichert.
  4. Ersetzen Sie „NavController“ durch diese Klassen.
  5. Verschieben Sie Ihre Ziele aus dem NavGraph von NavHost in einen entryProvider.
  6. Ersetzen Sie „NavHost“ durch „NavDisplay“.

Mit der Migration von KI-Agenten experimentieren

Sie können versuchen, einen KI-Agenten zu verwenden, um die Migrationsanleitung zu lesen und die Schritte für Ihr Projekt auszuführen. So probieren Sie das mit Gemini in Android Studio im Agentenmodus aus:

  • Speichern Sie diese Markdown-Version des Leitfadens in Ihrem Projekt.
  • Fügen Sie diesen Prompt für den KI-Agenten ein (aber drücken Sie nicht die Eingabetaste): „Migrate this project to Navigation 3 using “.
  • Geben Sie @migration-guide.md ein. Dadurch wird der Leitfaden als Kontext für den Agenten bereitgestellt. 

Wie immer sollten Sie die vom KI-Agenten vorgenommenen Änderungen sorgfältig prüfen, da Fehler auftreten können. 

Wir würden uns freuen, wenn Sie uns mitteilen, wie Sie oder Ihr Kundenservicemitarbeiter abgeschnitten haben. Hier können Sie uns Feedback geben.

Tasty-Navigationsrezepte für gängige Szenarien

Für gängige, aber differenzierte Anwendungsfälle haben wir ein Repository mit Rezepten. Hier wird gezeigt, wie Sie die Nav3 APIs auf eine bestimmte Weise kombinieren können. Sie können die Anleitung an Ihre speziellen Anforderungen anpassen. Wenn sich ein Rezept als beliebt erweist, werden wir die nicht nuancierten Teile davon in die Nav3-Kernbibliothek oder in Add-on-Bibliotheken aufnehmen. 

code-recipes.png

Derzeit gibt es 19 Rezepte, darunter für: 

Wir arbeiten derzeit an einem Rezept für Deeplinks und einer Koin-Integration. Viele weitere sind geplant. Ein Entwickler von JetBrains hat außerdem eine Compose Multiplatform-Version der Rezepte veröffentlicht.

Wenn Sie einen häufigen Anwendungsfall haben, für den Sie ein Rezept wünschen, reichen Sie bitte eine Rezeptanfrage ein. 

Zusammenfassung

Informationen zu den ersten Schritten mit Nav3 finden Sie in der Dokumentation und in den Anleitungen. Außerdem erwarten Sie eine ganze Woche lang technische Inhalte, darunter: 

  • Ein ausführliches Video zur API, in dem Modularisierung, Animationen und adaptive Layouts behandelt werden.
  • Eine Live-Fragerunde mit den Entwicklern von Nav3.

Die Nav3 Spotlight Week beginnt am 1. Dezember 2025. 


Wenn Sie Probleme feststellen, melden Sie sie bitte hier. 

Verfasst von:
Weiterlesen