Nawigacja między różnymi ekranami i aplikacjami jest kluczowym elementem wygody użytkownika. Poniższe zasady stanowią podstawę do zapewnienia spójnego i intuicyjnego działania aplikacji. Komponent nawigacji został zaprojektowany tak, aby domyślnie wdrażać te zasady, dzięki czemu użytkownicy mogą stosować te same heurystyki i wzorce nawigacji podczas przechodzenia między aplikacjami.
Stałe miejsce rozpoczęcia
Każda utworzona aplikacja ma stałe miejsce docelowe. To pierwszy ekran, który użytkownik widzi po uruchomieniu aplikacji z poziomu menu z aplikacjami. To miejsce docelowe jest też ostatnim ekranem, który użytkownik widzi po powrocie do menu z aplikacjami po naciśnięciu przycisku Wstecz. Przeanalizujmy to na przykładzie aplikacji Sunflower.

Rysunek 1. Ekran listy jest miejscem docelowym aplikacji Sunflower.
Po uruchomieniu aplikacji Sunflower z poziomu programu uruchamiającego pierwszym ekranem, który widzi użytkownik, jest ekran listy, czyli lista roślin w ogrodzie. Jest to też ostatni ekran, który widzą przed zamknięciem aplikacji. Jeśli na ekranie listy nacisną przycisk Wstecz, wrócą do programu uruchamiającego.
Stan nawigacji jest reprezentowany jako stos miejsc docelowych
Gdy aplikacja zostanie uruchomiona po raz pierwszy, dla użytkownika zostanie utworzone nowe zadanie, a aplikacja wyświetli miejsce docelowe. Staje się ono podstawowym miejscem docelowym tzw. stosu wstecznego i jest podstawą stanu nawigacji w aplikacji. Góra stosu to bieżący ekran, a poprzednie miejsca docelowe na stosie reprezentują historię odwiedzonych miejsc. Stos wsteczny zawsze zawiera miejsce docelowe aplikacji na dole stosu.
Operacje, które zmieniają stos wsteczny, zawsze działają na górze stosu, dodając nowe miejsce docelowe na górze stosu lub usuwając z niego najwyższe miejsce docelowe. Przejście do miejsca docelowego powoduje umieszczenie go na górze stosu.
Komponent nawigacji zarządza całą kolejnością stosu wstecznego, ale możesz też zarządzać nim samodzielnie.
W ramach zadania aplikacji przyciski W górę i Wstecz działają tak samo

Rysunek 2. przyciski W górę i Wstecz,
Przycisk Wstecz pojawia się na pasku nawigacyjnym systemu u dołu ekranu i służy do poruszania się w odwrotnym porządku chronologicznym po historii ekranów, z którymi użytkownik ostatnio pracował. Gdy naciśniesz przycisk Wstecz, bieżące miejsce docelowe zostanie usunięte z góry stosu wstecznego i nastąpi przejście do poprzedniego miejsca docelowego.
Przycisk W górę pojawia się na pasku aplikacji u góry ekranu. W ramach zadania aplikacji przyciski W górę i Wstecz działają tak samo.
Przycisk W górę nigdy nie powoduje zamknięcia aplikacji.
Jeśli użytkownik znajduje się w miejscu docelowym uruchomienia aplikacji, przycisk W górę nie jest widoczny, ponieważ nie służy on do zamykania aplikacji. Przycisk Wstecz jest jednak widoczny i umożliwia zamknięcie aplikacji.
Gdy aplikacja jest uruchamiana za pomocą precyzyjnego linku w zadaniu innej aplikacji, przycisk W górę przenosi użytkowników z powrotem do zadania Twojej aplikacji i przez symulowany stos wsteczny, a nie do aplikacji, która wywołała precyzyjny link. Przycisk Wstecz umożliwia jednak powrót do innej aplikacji.
Precyzyjne linki symulują ręczną nawigację
Niezależnie od tego, czy używasz precyzyjnych linków, czy ręcznie przechodzisz do konkretnego miejsca docelowego, możesz użyć przycisku W górę, aby wrócić do miejsca początkowego.
Gdy precyzyjny link prowadzi do miejsca docelowego w ramach zadania aplikacji, istniejący stos wsteczny zadania aplikacji jest usuwany i zastępowany stosem wstecznym precyzyjnego linku.
Wróćmy do przykładu aplikacji Sunflower. Załóżmy, że użytkownik uruchomił wcześniej aplikację z ekranu programu uruchamiającego i przeszedł do ekranu szczegółów jabłka. Na ekranie Ostatnie widać, że istnieje zadanie, którego najwyższym ekranem jest ekran szczegółów jabłka.

Rysunek 3. Nawigacja użytkownika w aplikacji Sunflower i wynikający z niej stos wsteczny.
W tym momencie użytkownik może kliknąć przycisk ekranu głównego, aby przełączyć aplikację w tło. Załóżmy, że ta aplikacja ma funkcję precyzyjnych linków, która umożliwia użytkownikom bezpośrednie przejście do ekranu z informacjami o konkretnej roślinie według nazwy. Otwarcie aplikacji za pomocą tego precyzyjnego linku całkowicie zastępuje bieżący stos wsteczny Sunflower widoczny na rysunku 3 nowym stosem wstecznym, jak pokazano na rysunku 4:

Rysunek 4. Kliknięcie precyzyjnego linku zastępuje dotychczasowy stos wsteczny aplikacji Sunflower.
Zauważ, że stos wsteczny Sunflower został zastąpiony syntetycznym stosem wstecznym z ekranem szczegółów awokado u góry. Ekran My Garden, który jest miejscem docelowym, również został dodany do stosu wstecznego. Oryginalny stos wsteczny Sunflower zniknął, w tym informacja o tym, że użytkownik był wcześniej na ekranie szczegółów jabłka. Wszystko to jest ważne, ponieważ syntetyczny stos wsteczny musi być realistyczny. Powinien on odpowiadać stosowi wstecznemu, który można uzyskać, przechodząc przez aplikację w sposób naturalny.
Aby spełnić tę potrzebę, tworzony jest uproszczony syntetyczny stos wsteczny na podstawie NavGraph. W przypadku prostego elementu NavGraph bez zagnieżdżania będzie on zawierać miejsce docelowe i miejsce docelowe precyzyjnego linku. W przypadku bardziej złożonych, zagnieżdżonych wykresów nawigacji syntetyczny stos wsteczny będzie też zawierać miejsca docelowe wszystkich zagnieżdżonych wykresów, które są elementami nadrzędnymi miejsca docelowego precyzyjnego linku.
Komponent nawigacji obsługuje precyzyjne linki i odtwarza realistyczny stos wsteczny, gdy linkujesz do dowolnego miejsca docelowego na wykresie nawigacji.