Nawigacja między różnymi ekranami i aplikacjami jest jednym z najważniejszych elementów wygody użytkowników. Podane niżej zasady stanowią podstawę do zapewnienia spójnego i intuicyjnego sposobu korzystania z aplikacji. Komponent Nawigacja umożliwia domyślne implementowanie tych zasad, dzięki czemu użytkownicy mogą stosować te same wzorce heurystyki i wzorce do nawigacji między aplikacjami.
Stałe miejsce docelowe rozpoczęcia
Każda stworzona aplikacja ma stałe miejsce docelowe rozpoczęcia. Jest to pierwszy ekran, który użytkownik widzi po uruchomieniu aplikacji z Menu z aplikacjami. Jest to także ostatni ekran, który użytkownik widzi po powrocie do programu uruchamiającego po naciśnięciu przycisku Wstecz. Spójrzmy na przykład na aplikację Sunflower.
Rysunek 1. Ekran listy to miejsce początkowe w aplikacji Sunflower.
Po uruchomieniu aplikacji Słonecznik z poziomu programu uruchamiającego użytkownik widzi najpierw ekran z listą, czyli listę roślin w ogrodzie. Jest to też ostatni ekran, który zobaczy przed zamknięciem aplikacji. Jeśli użytkownik naciśnie przycisk Wstecz na ekranie listy, przejdzie z powrotem do programu uruchamiającego.
Stan nawigacji jest przedstawiony jako stos miejsc docelowych.
Przy pierwszym uruchomieniu aplikacji dla użytkownika tworzone jest nowe zadanie, a w aplikacji wyświetla się początkowe miejsce docelowe. Staje się ona podstawowym miejscem docelowym tzw. stosu wstecznego i podstawą stanu nawigacji aplikacji. Górna część stosu to bieżący ekran, a poprzednie miejsca docelowe w grupie przedstawiają historię odwiedzonych miejsc. Miejsce docelowe początkowych stosu wstecznego zawsze znajduje się na dole stosu.
Operacje, które zmieniają stos wsteczny, zawsze działają na górze stosu, albo polegają na wypchnięciu nowego miejsca docelowego na górną część stosu lub wysunięciu najwyższego miejsca docelowego poza stos. Przejście do miejsca docelowego spycha je na sam stos.
Komponent Nawigacja zarządza za Ciebie całym stosem wstecznym, ale możesz też zarządzać nim samodzielnie.
Działanie „góra” i „wstecz” jest identyczne w zadaniach aplikacji
Rysunek 2. Przyciski W górę i Wstecz
Przycisk Wstecz pojawia się na pasku nawigacyjnym systemu u dołu ekranu. Służy do nawigacji w odwrotnej kolejności chronologicznej po historii ekranów, z którymi ostatnio korzystał użytkownik. Po kliknięciu przycisku Wstecz obecne miejsce docelowe zostanie przeniesione z góry stosu wstecznego, a następnie przejdziesz do poprzedniego miejsca docelowego.
Przycisk W górę pojawi się na pasku aplikacji u góry ekranu. W zadaniu aplikacji przyciski strzałka w górę i z powrotem działają tak samo.
Przycisk W górę nigdy nie zamyka aplikacji
Jeśli użytkownik znajduje się w miejscu docelowym aplikacji, przycisk W górę nie jest widoczny, ponieważ przycisk W górę nigdy nie zamyka aplikacji. Widoczny jest jednak przycisk Wstecz i zamyka aplikację.
Gdy Twoja aplikacja jest uruchamiana za pomocą precyzyjnego linku w zadaniu innej aplikacji, kliknięcie w górę przeniesie użytkowników z powrotem do zadania w aplikacji i przez symulowany stos wsteczny, a nie do aplikacji, która uruchomiła precyzyjny link. Kliknięcie przycisku Wstecz powoduje jednak powrót do innej aplikacji.
Precyzyjne linki symulują ręczną nawigację
Niezależnie od tego, czy korzystasz z precyzyjnych linków, czy ręcznie do określonego miejsca docelowego, możesz przechodzić między miejscami docelowymi z powrotem do miejsca docelowego za pomocą przycisku w górę.
Po utworzeniu precyzyjnych linków do miejsca docelowego w zadaniu aplikacji cały istniejący stos wsteczny dla zadania aplikacji jest usuwany i zastępowany stosem wstecznym z precyzyjnymi linkami.
Ponownie używając aplikacji Słonecznik, załóżmy, że użytkownik wcześniej uruchomił ją z ekranu programu uruchamiającego i przeszedł do ekranu z informacjami o jabłku. Jeśli spojrzysz na ekran Ostatnie, będzie to oznaczać, że istnieje zadanie, przy czym górna część ekranu to ekran szczegółów aplikacji Apple.
Rysunek 3. Nawigacja przez użytkownika w aplikacji Sunflower i powstały stos wsteczny.
W tym momencie użytkownik może kliknąć przycisk ekranu głównego, aby umieścić aplikację w tle. Teraz załóżmy, że ta aplikacja ma funkcję precyzyjnych linków, która pozwala użytkownikom przechodzić bezpośrednio do ekranu z informacjami o konkretnej roślinie, podając jej nazwę. Otwarcie aplikacji za pomocą tego precyzyjnego linku całkowicie zastępuje aktualny stos wsteczny Sunflower przedstawiony na ilustracji 3 nowym stosem wstecznym, jak widać na ilustracji 4:
Rysunek 4. Precyzyjny link zastępuje dotychczasowy stos wsteczny aplikacji Sunflower.
Zwróć uwagę, że stos tylny Słonecznik został zastąpiony syntetycznym stosem tylnym, na którym u góry znajduje się ekran ze szczegółami awokado. Do wstecznego stosu został też dodany ekran Mój ogród, który jest miejscem początkowym. Oryginalny stos Słonecznika wraz z informacją o tym, że użytkownik wcześniej korzystał z ekranu ze szczegółami Apple, już nie istnieje. Wszystko to jest ważne, ponieważ syntetyczny stos wsteczny musi być realistyczny. Powinien pasować do stosu wstecznego, który można było osiągnąć dzięki naturalnym poruszaniu się po aplikacji.
Aby sprostać tej potrzebie, tworzony jest syntetyczny stos wsteczny w uproszczony sposób oparty na NavGraph
. W przypadku prostego elementu NavGraph
bez zagnieżdżania będzie on składał się z miejsca docelowego początkowego i miejsca docelowego precyzyjnego linku. Aby uzyskać bardziej złożone, zagnieżdżone wykresy nawigacyjne, syntetyczny stos wsteczny będzie też zawierać miejsca docelowe początkowych zagnieżdżonych wykresów, które są elementami nadrzędnymi miejsca docelowego precyzyjnych linków.
Komponent Nawigacja obsługuje precyzyjne linki i odtwarza realistyczny stos wsteczny podczas tworzenia linków do dowolnego miejsca docelowego na wykresie nawigacyjnym.