Jetpack Navigation 3 w wersji 1.0 jest stabilny 🎉. Możesz go już używać w aplikacjach produkcyjnych. Firma JetBrains używa już tego rozwiązania 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ółowa lista). 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 użytkownika 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ć kilka 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 tam 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 podstawowych części do głównej 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 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, w tym:
- Szczegółowe omówienie interfejsu API, które obejmuje 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łudzeUnity obsługuje ponad połowę wszystkich tytułów mobilnych na świecie, dlatego pierwsze wrażenie jest bardzo ważne. Dla deweloperów gier płynne i niezawodne wprowadzenie graczy jest kluczowe dla utrzymania ich od pierwszego dnia i zapewnienia długoterminowego zaangażowania.
Michelle Martin • Czas czytania: 1 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
Otrzymuj co tydzień najnowsze informacje o tworzeniu aplikacji na Androida na swoją skrzynkę odbiorczą.