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.
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:
- Bildschirmanimationen sowohl global als auch individuell anpassen
- Mehrere Bereiche gleichzeitig anzeigen und flexible Layouts mit der Scenes API erstellen
- Nav3-Komponenten können einfach durch eigene Implementierungen ersetzt werden, wenn Sie ein benutzerdefiniertes Verhalten wünschen.
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:
- Fügen Sie die Navigation 3-Abhängigkeiten hinzu.
- 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.
- Erstellen Sie Klassen, um den Navigationsstatus zu speichern und zu ändern. Hier werden Ihre Back Stacks gespeichert.
- Ersetzen Sie „NavController“ durch diese Klassen.
- Verschieben Sie Ihre Ziele aus dem NavGraph von NavHost in einen entryProvider.
- 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.
Derzeit gibt es 19 Rezepte, darunter für:
- Mehrere Back Stacks
- Modularisierung und Dependency Injection
- Navigationsargumente an ViewModels übergeben (einschließlich der Verwendung von Koin)
- Ergebnisse von Bildschirmen nach Ereignissen und nach gemeinsamem Status zurückgeben
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.
-
ProduktneuigkeitenIm Jahr 2025 ist das Android-Ökosystem weit über Smartphones hinausgewachsen. Heute haben Entwickler die Möglichkeit, mehr als 500 Millionen aktive Geräte zu erreichen, darunter faltbare Geräte, Tablets, XR-Geräte, Chromebooks und kompatible Fahrzeuge.
Fahd Imtiaz • Lesezeit: 2 Minuten -
ProduktneuigkeitenApps, die auf die kommende Android-Version ausgerichtet sind, können mit der Berechtigung WRITE_CONTACTS nicht mehr direkt in Kontakte schreiben.
Roxanna Aliabadi Walker • Lesezeit: 6 Minuten -
ProduktneuigkeitenDie Entwicklung von KI-Agenten schreitet rasant voran und die Android-Entwicklung erreicht einen spannenden neuen Meilenstein: von der unterstützenden Codevervollständigung hin zu KI-Agenten, die unter Ihrer Anleitung End-to-End-Aufgaben ausführen. Sie haben die volle Auswahl und Flexibilität bei den Modellen und Agents, die Sie verwenden.
Jason Buchel • Lesezeit: 3 Minuten
Lassen Sie sich Woche für Woche die neuesten Informationen zur Android-Entwicklung zusenden.