Farklı ekranlar ve uygulamalar arasında gezinme, kullanıcı deneyiminin temel bir parçasıdır. Aşağıdaki ilkeler, uygulamalarda tutarlı ve sezgisel bir kullanıcı deneyimi için temel oluşturur. Gezinme bileşeni, bu ilkeleri varsayılan olarak uygulayacak şekilde tasarlanmıştır. Böylece kullanıcılar, uygulamalar arasında geçiş yaparken gezinme için aynı sezgisel yöntemleri ve kalıpları kullanabilir.
Sabit başlangıç hedefi
Oluşturduğunuz her uygulamanın sabit bir başlangıç hedefi vardır. Bu, kullanıcının uygulamanızı başlatıcıdan açtığında gördüğü ilk ekrandır. Bu hedef, kullanıcının geri düğmesine bastıktan sonra başlatıcıya döndüğünde gördüğü son ekrandır. Örnek olarak Sunflower uygulamasına bakalım.

Şekil 1. Liste ekranı, Sunflower uygulamasının başlangıç hedefidir.
Sunflower uygulamasını başlatıcıdan başlattığınızda kullanıcının gördüğü ilk ekran, bahçesindeki bitkilerin listesini içeren Liste Ekranı'dır. Bu ekran, kullanıcıların uygulamadan çıkmadan önce gördükleri son ekrandır. Liste ekranında Geri düğmesine basarlarsa başlatıcıya geri dönerler.
Gezinme durumu, hedef yığını olarak gösterilir
Uygulamanız ilk kez başlatıldığında kullanıcı için yeni bir görev oluşturulur ve uygulama, başlangıç hedefini gösterir. Bu, eski yığın olarak bilinen yapının temel hedefi olur ve uygulamanızın gezinme durumunun temelini oluşturur. Yığının üst kısmı mevcut ekranı, yığındaki önceki hedefler ise bulunduğunuz yerlerin geçmişini temsil eder. Geri yığının en altında her zaman uygulamanın başlangıç hedefi bulunur.
Eski yığını değiştiren işlemler, her zaman yığının en üstünde çalışır. Bu işlemler, yığının en üstüne yeni bir hedef ekler veya en üstteki hedefi yığından çıkarır. Bir hedefe gitmek, o hedefi yığının en üstüne taşır.
Gezinme bileşeni, eski yığın sıralamanızın tamamını sizin için yönetir. Ancak eski yığını kendiniz yönetmeyi de seçebilirsiniz.
Yukarı ve Geri, uygulamanızın görevi içinde aynıdır

Şekil 2. Yukarı ve geri düğmeleri
Geri düğmesi, ekranın alt kısmındaki sistem gezinme çubuğunda görünür ve kullanıcının yakın zamanda çalıştığı ekranların geçmişinde ters kronolojik sırayla gezinmek için kullanılır. Geri düğmesine bastığınızda mevcut hedef, eski yığının en üstünden çıkarılır ve önceki hedefe gidersiniz.
Yukarı düğmesi, ekranın üst kısmındaki uygulama çubuğunda görünür. Uygulamanızın görevi içinde, Yukarı ve Geri düğmeleri aynı şekilde davranır.
Yukarı düğmesi uygulamanızdan hiçbir zaman çıkmaz.
Kullanıcı uygulamanın başlangıç hedefindeyse yukarı düğmesi görünmez çünkü yukarı düğmesi uygulamadan çıkmaz. Ancak geri düğmesi gösterilir ve uygulamadan çıkar.
Uygulamanız başka bir uygulamanın görevinde derin bağlantı kullanılarak başlatıldığında, yukarı düğmesi kullanıcıları derin bağlantıyı tetikleyen uygulamaya değil, simüle edilmiş bir eski yığın aracılığıyla uygulamanızın görevine geri taşır. Ancak geri düğmesi sizi diğer uygulamaya geri götürür.
Derin bağlantı, manuel gezinmeyi simüle eder
İster derin bağlantı ister manuel olarak belirli bir hedefe gidin, hedefler arasında gezinerek başlangıç hedefine geri dönmek için Yukarı düğmesini kullanabilirsiniz.
Uygulamanızın görevi içindeki bir hedefe derin bağlantı oluşturulduğunda, uygulamanızın görevi için mevcut olan tüm eski yığınlar kaldırılır ve derin bağlantılı eski yığınla değiştirilir.
Yine Sunflower uygulamasını örnek olarak kullanırsak kullanıcının daha önce uygulamayı başlatıcı ekranından başlattığını ve bir elmanın ayrıntı ekranına gittiğini varsayalım. Son kullanılanlar ekranına bakıldığında, en üstteki ekranın Apple'ın ayrıntı ekranı olduğu bir görev olduğu görülür.

Şekil 3. Kullanıcının Sunflower uygulamasında gezinmesi ve bunun sonucunda oluşan eski yığın.
Bu noktada kullanıcı, ana sayfa düğmesine dokunarak uygulamayı arka plana alabilir. Şimdi de bu uygulamanın, kullanıcıların doğrudan belirli bir bitki ayrıntı ekranını adıyla başlatmasına olanak tanıyan bir derin bağlantı özelliği olduğunu varsayalım. Uygulamayı bu derin bağlantı üzerinden açtığınızda, Şekil 3'te gösterilen mevcut Sunflower eski yığını, Şekil 4'te gösterildiği gibi yeni bir eski yığınla tamamen değiştirilir:

Şekil 4. Derin bağlantıyı takip etmek, Sunflower uygulamasının mevcut eski yığınını değiştirir.
Sunflower eski yığınının, en üstte avokado ayrıntıları ekranı bulunan sentetik bir eski yığınla değiştirildiğini göreceksiniz. Başlangıç hedefi olan My Garden ekranı da eski yığına eklendi. Uygulamanın, kullanıcının daha önce Apple ayrıntıları ekranında olduğunu bilmesi de dahil olmak üzere orijinal Sunflower eski yığını kaybolur. Sentetik eski yığının gerçekçi olması gerektiği için tüm bunlar önemlidir. Bu, uygulamada organik olarak gezinerek elde edilebilecek bir eski yığınla eşleşmelidir.
Bu ihtiyacı karşılamak için oluşturulan yapay eski yığın, NavGraph temel alınarak basitleştirilmiştir. İç içe yerleştirme içermeyen basit bir NavGraph için bu, başlangıç hedefinden ve derin bağlantı hedefinden oluşur. Daha karmaşık, iç içe yerleştirilmiş gezinme grafikleri için yapay eski yığın, derin bağlantı hedefinin üst öğeleri olan iç içe yerleştirilmiş grafiklerin başlangıç hedeflerini de içerir.
Gezinme bileşeni, derin bağlantıyı destekler ve gezinme grafiğinizdeki herhangi bir hedefe bağlantı oluştururken sizin için gerçekçi bir eski yığın oluşturur.