Jetpack Navigation 3, Version 1.0, ist stabil 🎉. Sie können sie ab sofort in Ihren Produktions-Apps verwenden. JetBrains verwendet sie bereits in der KotlinConf-App.
Navigation 3 ist eine neue Navigationsbibliothek, die von Grund auf neu entwickelt wurde, um den Status von Jetpack Compose zu nutzen. Sie bietet Ihnen die volle Kontrolle über den Back-Stack, hilft Ihnen, den Navigationsstatus beizubehalten, und ermöglicht Ihnen, ganz einfach adaptive Layouts (z. B. Listen-Detailansicht) zu 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 zwar ihre ursprünglichen Ziele gut und wurde iterativ verbessert, aber die Art und Weise, wie Apps heute erstellt werden, hat sich grundlegend geändert.
Die reaktive Programmierung mit einer deklarativen Benutzeroberfläche ist heute die Norm. Nav3 folgt diesem Ansatz. NavDisplay (die Nav3-UI-Komponente, die Ihre Bildschirme anzeigt) beobachtet beispielsweise einfach eine Liste von Schlüsseln (jeder Schlüssel steht für einen Bildschirm), die durch den Compose-Zustand unterstützt werden, und aktualisiert die Benutzeroberfläche, wenn sich diese Liste ändert.
Nav2 kann es auch erschweren, eine einzige Datenquelle für den Navigationsstatus zu haben, da es einen eigenen internen Status hat. Mit Nav3 stellen Sie Ihren eigenen Status bereit, wodurch Sie die vollständige Kontrolle haben.
Außerdem haben Sie sich mehr Flexibilität und Anpassbarkeit gewünscht. Anstelle einer einzelnen, monolithischen API 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 mit der Scenes API flexible Layouts erstellen
- Nav3-Komponenten ganz einfach durch eigene Implementierungen ersetzen, wenn Sie benutzerdefiniertes Verhalten wünschen
Weitere Informationen zum Design und zu den Funktionen finden Sie im Blogbeitrag zur Einführung.
Migration von Navigation 2
Wenn Sie bereits Nav2 verwenden, insbesondere Navigation Compose, sollten Sie zu Nav3 migrieren. Dabei hilft Ihnen ein Migrationsleitfaden. Die wichtigsten Schritte sind:
- Fügen Sie die Abhängigkeiten von Navigation 3 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 mit einem KI-Agenten experimentieren, der den Migrationsleitfaden liest und die Schritte in Ihrem Projekt ausführt. So probieren Sie das mit Gemini im Agentenmodus von Android Studio aus:
- Speichern Sie diese Markdown-Version des Leitfadens in Ihrem Projekt.
- Fügen Sie diesen Prompt in den Agenten ein (aber drücken Sie noch 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. Es können Fehler auftreten.
Wir freuen uns auf Ihr Feedback. Bitte senden Sie es uns hier.
Praktische Navigationsrezepte für häufige Szenarien
Für häufige, aber differenzierte Anwendungsfälle haben wir ein Rezept-Repository. Hier wird gezeigt, wie Sie die Nav3-APIs auf bestimmte Weise kombinieren können. So können Sie das Rezept an Ihre speziellen Anforderungen anpassen oder ändern. Wenn sich ein Rezept als beliebt erweist, werden wir die nicht differenzierten Teile in die Nav3-Kernbibliothek oder Add-on-Bibliotheken aufnehmen.
Derzeit gibt es 19 Rezepte, darunter für:
- Mehrere Back-Stacks
- Modularisierung und Abhängigkeitsinjektion
- Navigationsargumente an ViewModels übergeben (einschließlich der Verwendung von Koin)
- Ergebnisse von Bildschirmen zurückgeben über Ereignisse und über einen gemeinsamen Status
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, können Sie hier ein Rezept anfordern.
Zusammenfassung
Informationen zu den ersten Schritten mit Nav3 finden Sie in der Dokumentation und in den Rezepten. Außerdem gibt es 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, die Nav3 erstellt haben.
Die Nav3-Spotlight-Woche beginnt am 1. Dezember 2025.
Wenn Sie Probleme finden, melden Sie sie bitte hier.
Weiterlesen
-
Neuigkeiten zum Produkt
Im Jahr 2025 ist die Android-Plattform weit über das Smartphone hinausgewachsen. Entwickler haben heute die Möglichkeit, über 500 Millionen aktive Geräte zu erreichen, darunter faltbare Smartphones, Tablets, XR-Geräte, Chromebooks und kompatible Autos.
Fahd Imtiaz • Lesezeit: 2 Minuten
-
Neuigkeiten zum Produkt
Wir freuen uns, die offizielle Unterstützung für Unreal Engine und Godot für Android XR bekannt zu geben. Außerdem stellen wir neue Tools vor, mit denen Sie Ihre Produktivität steigern und neue XR-Funktionen nutzen können: den Android XR Engine Hub und das Android XR Interaction Framework.
Luke Hopkins • Lesezeit: 4 Minuten
-
Neuigkeiten zum Produkt
Mit der Veröffentlichung von Android 17 führen wir einen adaptiven Entwicklungsstandard ein. Ihre Nutzer sind nicht mehr auf einen einzigen Formfaktor angewiesen, sondern wechseln im Laufe des Tages zwischen Smartphones, faltbaren Smartphones, Tablets, Laptops, Autodisplays und immersiven XR-Umgebungen.
Fahd Imtiaz • Lesezeit: 4 Minuten
Auf dem Laufenden bleiben
Lassen Sie sich Woche für Woche die neuesten Informationen zur Android-Entwicklung zusenden.