Wersja 1.0 Jetpack Navigation 3 jest stabilna 🎉. Możesz jej używać w aplikacjach produkcyjnych już dziś. Firma JetBrains używa już tej funkcji w swojej aplikacji KotlinConf.
Nawigacja 3 to nowa biblioteka nawigacji, która została stworzona od podstaw, aby obsługiwać stan Jetpack Compose. Zapewnia pełną kontrolę nad stosem wstecznym, pomaga zachować stan nawigacji i umożliwia łatwe tworzenie układów adaptacyjnych (np. szczegółowej listy). Dostępna jest nawet wersja na wiele platform od JetBrains.
Dlaczego nowa biblioteka?
Pierwotna biblioteka Jetpack Navigation (obecnie Nav2) została zaprojektowana 7 lat temu i choć dobrze spełnia swoje pierwotne cele i jest stale ulepszana, sposób tworzenia aplikacji uległ zasadniczej zmianie.
Programowanie reaktywne z deklaratywnym interfejsem jest teraz normą. Nav3 wykorzystuje to podejście. Na przykład NavDisplay (komponent interfejsu Nav3, który wyświetla ekrany) po prostu obserwuje listę kluczy (każdy reprezentuje ekran) wspieraną przez stan Compose i aktualizuje interfejs, gdy lista się zmienia.
Nav2 może też utrudniać korzystanie z jednego źródła wiarygodnych danych w przypadku stanu nawigacji, ponieważ ma własny stan wewnętrzny. W przypadku Nav3 podajesz własny stan, co daje Ci pełną kontrolę.
Zależało Wam też na większej elastyczności i możliwościach dostosowywania. Zamiast jednego, monolitycznego interfejsu API, Nav3 udostępnia mniejsze, odseparowane interfejsy API (czyli „elementy składowe”), które można łączyć w celu tworzenia złożonych funkcji. Nav3 używa tych elementów składowych, aby zapewnić odpowiednie ustawienia domyślne w dobrze zdefiniowanych przypadkach użycia nawigacji.
Takie podejście pozwala:
- Dostosowywanie animacji ekranu na poziomie globalnym i indywidualnym.
- wyświetlać wiele paneli jednocześnie i tworzyć elastyczne układy za pomocą interfejsu Scenes API;
- Jeśli chcesz uzyskać niestandardowe działanie, możesz łatwo zastąpić komponenty Nav3 własnymi implementacjami.
Więcej informacji o wyglądzie i funkcjach znajdziesz na blogu poświęconym premierze.
Migracja z Nawigacji 2
Jeśli używasz już Nav2, a w szczególności Navigation Compose, rozważ przejście na Nav3. Aby Ci w tym pomóc, przygotowaliśmy przewodnik po migracji. Najważniejsze kroki:
- Dodaj zależności nawigacji 3.
- Zaktualizuj trasy nawigacji, aby wdrożyć NavKey. Trasy nie muszą implementować tego interfejsu, aby korzystać z Nav3, ale jeśli to robią, możesz użyć funkcji rememberNavBackStack w Nav3, aby utworzyć trwały stos wsteczny.
- Utwórz klasy, które będą przechowywać i modyfikować stan nawigacji – to w nich będą przechowywane stosy wsteczne.
- Zastąp NavController tymi klasami.
- Przenieś miejsca docelowe z NavGraph elementu NavHost do elementu entryProvider.
- Zastąp NavHost elementem NavDisplay.
Eksperymentowanie z migracją agentów AI
Możesz poeksperymentować z użyciem agenta AI do przeczytania przewodnika po migracji i wykonania czynności w projekcie. Aby wypróbować tę funkcję w trybie agenta Gemini w Android Studio:
- Zapisz tę wersję przewodnika w formacie Markdown w swoim projekcie.
- Wklej tego prompta do agenta (ale nie naciskaj Enter): „Migrate this project to Navigation 3 using ”.
- Wpisz @migration-guide.md – spowoduje to przekazanie przewodnika jako kontekstu agentowi.
Jak zawsze dokładnie sprawdź zmiany wprowadzone przez agenta AI – może on popełniać błędy.
Chętnie poznamy Twoją opinię na temat pracy Twojej lub Twojego przedstawiciela. Prześlij ją tutaj.
Przepisy na nawigację w typowych scenariuszach
W przypadku typowych, ale bardziej złożonych zastosowań mamy repozytorium przepisów. Pokazuje, jak połączyć interfejsy API Nav3 w określony sposób, co pozwala wybrać lub zmodyfikować przepis zgodnie z potrzebami. Jeśli przepis okaże się popularny, rozważymy „przeniesienie” jego części, które nie są niuansami, do podstawowej biblioteki Nav3 lub bibliotek dodatków.
Obecnie dostępnych jest 19 przepisów, w tym na:
- Wiele stosów wstecznych
- Modularyzacja i wstrzykiwanie zależności
- Przekazywanie argumentów nawigacji do modeli widoku (w tym przy użyciu Koin)
- Zwracanie wyników z ekranów według zdarzeń i udostępnionego stanu
Obecnie pracujemy nad przepisem na precyzyjne linki oraz nad integracją z Koin, a w planach mamy wiele innych. Inżynier z JetBrains opublikował też wersję przepisów na Compose Multiplatform.
Jeśli masz typowy przypadek użycia, dla którego chcesz zobaczyć przepis, prześlij prośbę o przepis.
Podsumowanie
Aby rozpocząć korzystanie z Nav3, zapoznaj się z dokumentacją i przepisami. Przez cały tydzień będziemy też publikować treści techniczne, takie jak:
- Szczegółowe omówienie interfejsu API w formie filmu, obejmujące modularyzację, animacje i układy adaptacyjne.
- Sesja pytań i odpowiedzi na żywo z inżynierami, którzy stworzyli Nav3.
Tydzień wyróżnień Nav3 rozpocznie się 1 grudnia 2025 r.
Jeśli zauważysz jakieś problemy, zgłoś je tutaj.
-
Wiadomości o usłudzeW 2025 r. ekosystem Androida rozrósł się daleko poza telefony. Obecnie deweloperzy mogą dotrzeć do ponad 500 milionów aktywnych urządzeń, w tym urządzeń składanych, tabletów, urządzeń XR, Chromebooków i zgodnych samochodów.
Fahd Imtiaz • Czas czytania: 2 min -
Wiadomości o usłudzeOd pełnej immersji w domu po szybkie sprawdzanie informacji w podróży – tworzenie aplikacji na Androida XR pozwala dotrzeć do użytkowników w każdym momencie i w całym spektrum aplikacji przestrzennych. Podczas Android Dev Summit osiągnęliśmy ważny kamień milowy, wprowadzając na rynek XREAL AURA.
Amy Zeppenfeld, Vinny DaSilva • Czas czytania: 3 min -
Wiadomości o usłudzeW erze inteligentnych technologii użytkownicy nie tylko klikają aplikacje, ale też wyrażają ogólne cele i oczekują, że agenty AI, takie jak Gemini, będą wykonywać wieloetapowe zadania, czasem w kilku aplikacjach na urządzeniach.
Jingyu Shi • Czas czytania: 4 min
Otrzymuj co tydzień najnowsze informacje o tworzeniu aplikacji na Androida na swoją skrzynkę odbiorczą.