Wersja 1.0 Jetpack Navigation 3 jest stabilna 🎉. Możesz już używać jej w aplikacjach produkcyjnych. JetBrains używa już tego w swojej aplikacji KotlinConf.
Navigation 3 to nowa biblioteka nawigacji stworzona od podstaw z myślą o stanie Jetpack Compose. Daje Ci pełną kontrolę nad stosem wstecznym, pomaga zachować stan nawigacji i umożliwia łatwe tworzenie adaptacyjnych układów (np. listy i szczegółów). Dostępna jest nawet wersja wieloplatformowa od JetBrains.
Dlaczego nowa biblioteka?
Pierwotna biblioteka Jetpack Navigation (obecnie Nav2) została zaprojektowana 7 lat temu. Chociaż dobrze spełnia swoje pierwotne cele i była stopniowo ulepszana, sposób tworzenia aplikacji uległ zasadniczej zmianie.
Programowanie reaktywne z deklaratywnym interfejsem użytkownika jest obecnie standardem. Biblioteka Nav3 wykorzystuje to podejście. Na przykład NavDisplay (komponent interfejsu Nav3, który wyświetla ekrany) po prostu obserwuje listę kluczy (każdy z nich reprezentuje ekran) obsługiwaną przez stan Compose i aktualizuje interfejs, gdy ta lista się zmienia.
Nav2 może też utrudniać uzyskanie jednego źródła informacji o stanie nawigacji, ponieważ ma własny stan wewnętrzny. W Nav3 podajesz własny stan, co daje Ci pełną kontrolę.
Na koniec wspomnę, że zależało Ci na większej elastyczności i możliwości dostosowywania. Zamiast jednego, monolitycznego interfejsu API Nav3 udostępnia mniejsze, odseparowane interfejsy API (lub „bloki konstrukcyjne”), które można łączyć ze sobą, aby tworzyć złożone funkcje. Sama biblioteka Nav3 używa tych elementów do zapewniania rozsądnych ustawień domyślnych w przypadku dobrze zdefiniowanych zastosowań nawigacji.
Dzięki temu możesz:
- Dostosowywanie animacji ekranu na poziomie globalnym i indywidualnym
- wyświetlać jednocześnie wiele paneli i tworzyć elastyczne układy za pomocą interfejsu Scenes API;
- W razie potrzeby możesz łatwo zastąpić komponenty Nav3 własnymi implementacjami, aby uzyskać niestandardowe działanie.
Więcej informacji o jego wyglądzie i funkcjach znajdziesz na blogu.
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. Główne etapy to:
- Dodaj zależności nawigacji 3.
- Zaktualizuj trasy nawigacji, aby zaimplementować NavKey. Aby korzystać z Nav3, trasy nie muszą implementować tego interfejsu, ale jeśli to zrobią, możesz skorzystać z funkcji rememberNavBackStack w Nav3, aby utworzyć trwałą listę wstecz.
- Utwórz klasy do przechowywania i modyfikowania stanu nawigacji – w nich będą przechowywane stosy wsteczne.
- Zastąp NavController tymi klasami.
- Przenieś miejsca docelowe z NavGraph w NavHost do elementu entryProvider.
- Zastąp NavHost elementem NavDisplay.
Eksperymentowanie z migracją agentów AI
Możesz wypróbować agenta AI, który przeczyta przewodnik migracji i wykona czynności w Twoim projekcie. Aby wypróbować tę funkcję w trybie agenta Gemini w Android Studio:
- Zapisz tę wersję przewodnika w formacie Markdown w projekcie.
- Wklej ten prompt do agenta (ale nie naciskaj Entera): „Migrate this project to Navigation 3 using ".
- Wpisz @migration-guide.md – przewodnik zostanie przekazany agentowi jako kontekst.
Jak zawsze, dokładnie sprawdzaj zmiany wprowadzone przez agenta AI – może on popełniać błędy.
Chętnie poznamy Twoją opinię o pracy Twojej lub naszego pracownika. Prześlij ją tutaj.
Przepisy na nawigację w typowych scenariuszach
W przypadku typowych, ale złożonych zastosowań mamy repozytorium przepisów. Pokazuje, jak połączyć interfejsy Nav3 API w określony sposób, aby dostosować przepis do swoich potrzeb. Jeśli przepis okaże się popularny, rozważymy przeniesienie jego nieodnoszących się do konkretnych przypadków części do podstawowej biblioteki Nav3 lub bibliotek dodatkowych.
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 obiektów ViewModel (w tym za pomocą Koin)
- Zwracanie wyników z ekranów według zdarzeń i stanu udostępnionego
Obecnie pracujemy nad przepisem dotyczącym linków do konkretnych stron, a także nad integracją z Koin. Planujemy też wiele innych rozwiązań. Inżynier z JetBrains opublikował też wersję przepisów w Compose Multiplatform.
Jeśli masz typowy przypadek użycia, dla którego chcesz zobaczyć przepis, prześlij prośbę o przepis.
Podsumowanie
Aby zacząć korzystać z Nav3, zapoznaj się z dokumentacją i przepisami. W tym tygodniu opublikujemy też wiele treści technicznych, w tym:
- Film z dogłębną analizą interfejsu API, obejmujący modułowość, animacje i układy adaptacyjne.
- Sesja pytań i odpowiedzi na żywo z inżynierami, którzy stworzyli Nav3.
Tydzień wyróżnień za Nav3 rozpocznie się 1 grudnia 2025 r.
Jeśli napotkasz jakieś problemy, zgłoś je tutaj.
Czytaj dalej
-
Wiadomości o usługach
W 2025 roku ekosystem Androida wykracza daleko poza telefony. Obecnie deweloperzy mają możliwość dotarcia do ponad 500 milionów aktywnych urządzeń, w tym urządzeń składanych, tabletów, urządzeń XR, Chromebooków i kompatybilnych samochodów.
Fahd Imtiaz • Czas czytania: 2 minuty
-
Wiadomości o usługach
Każdego roku podczas Google I/O ogłaszamy nowości i udostępniamy zasoby dotyczące ekosystemów i usług, w tym rozwoju Androida. W miarę jak rozwój oprogramowania zmierza w kierunku AI i narzędzi wspomaganych przez agentów, rozszerzamy naszą ofertę, aby lepiej Cię wspierać niezależnie od tego, jak zdecydujesz się tworzyć aplikacje na Androida.
Simona Milanovic • Czas czytania: 2 minuty
-
Wiadomości o usługach
Na konferencji Google I/O 2026 pokazaliśmy, jak najnowsze osiągnięcia w ekosystemie Androida mogą pomóc Ci podnieść jakość aplikacji przy jednoczesnym zwiększeniu wydajności programowania.
Ataul Munim • Czas czytania: 3 minuty
Bądź na bieżąco
Otrzymuj co tydzień najnowsze informacje o tworzeniu aplikacji na Androida na swoją skrzynkę odbiorczą.