يعد التنقل بين الشاشات والتطبيقات المختلفة جزءًا أساسيًا من تجربة المستخدم. تحدد المبادئ التالية أساسًا لتجربة مستخدم متسقة وسهلة عبر التطبيقات. تم تصميم مكوِّن التنقل لتنفيذ هذه المبادئ افتراضيًا، مما يضمن أنه يمكن للمستخدمين تطبيق نفس الاستدلالات والأنماط في التنقل أثناء تنقلهم بين التطبيقات.
وجهة بدء ثابتة
لكل تطبيق تنشئه وجهة بداية ثابتة. هذه هي الشاشة الأولى التي يراها المستخدم عند تشغيل تطبيقك من المشغل. هذه الوجهة هي أيضًا الشاشة الأخيرة التي يراها المستخدم عند عودته إلى مشغّل التطبيقات بعد الضغط على زر الرجوع. دعنا نلقي نظرة على تطبيق دوار الشمس كمثال.
الشكل 1. شاشة القائمة هي وجهة بدء تطبيق دوار الشمس.
عند تشغيل تطبيق دوار الشمس من المشغِّل، تكون الشاشة الأولى التي يراها المستخدم هي شاشة القائمة، وهي قائمة بالنباتات في حديقته. وهذه هي أيضًا الشاشة الأخيرة التي تظهر لهم قبل الخروج من التطبيق. عند الضغط على زر "Back" (الرجوع) من شاشة القائمة، سينتقلون مرة أخرى إلى المشغّل.
يتم تمثيل حالة التنقّل في شكل حزمة من الوجهات
عند تشغيل تطبيقك لأول مرة، يتم إنشاء مهمة جديدة للمستخدم، ويعرض التطبيق وجهة البداية. وتصبح هذه هي الوجهة الأساسية لما يُعرف باسم الحزمة القديمة وأساسًا لحالة التنقّل في تطبيقك. في الجزء العلوي من الحزمة هي الشاشة الحالية، وتمثل الوجهات السابقة في الحزمة سجل الأماكن التي زرتها. تكون للحزمة الخلفية دائمًا وجهة بداية التطبيق في أسفل المكدس.
إنّ العمليات التي تغيّر المكدس خلف المكدس تعمل دائمًا في الجزء العلوي من المكدس، إما من خلال دفع وجهة جديدة أعلى المكدس أو فتح الجزء العلوي من المكدس. يؤدي الانتقال إلى وجهة إلى دفع هذه الوجهة أعلى المكدس.
يدير مكوِّن التنقل كل ترتيب الحزمة الخلفية نيابةً عنك، على الرغم من أنه يمكنك أيضًا اختيار إدارة الحزمة الخلفية بنفسك.
لا يتطابق النسخ الاحتياطي والمحفوظ في مهمة تطبيقك
الشكل 2. زرا "أعلى" و"رجوع"
يظهر زر الرجوع في شريط تنقل النظام أسفل الشاشة ويستخدم للتنقل بترتيب زمني عكسي عبر سجل الشاشات التي عمل المستخدم عليها مؤخرًا. عند الضغط على زر الرجوع، تظهر الوجهة الحالية أعلى الحزمة الخلفية، ثم تنتقل إلى الوجهة السابقة.
يظهر الزر للأعلى في شريط التطبيق في أعلى الشاشة. يعمل زرا "أعلى" و"رجوع" بشكل متماثل ضمن مهمة تطبيقك.
لا يؤدي الزر للأعلى إلى الخروج من التطبيق مطلقًا.
إذا كان المستخدم في وجهة بداية التطبيق، فلن يظهر الزر للأعلى، لأن الزر "لأعلى" لا يخرج من التطبيق مطلقًا. ومع ذلك، يظهر الزر "رجوع" ويخرج من التطبيق.
عندما يتم تشغيل تطبيقك باستخدام رابط لصفحة في التطبيق في مهمة تطبيق آخر، يؤدي السهم المتّجه للأعلى إلى إعادة توجيه المستخدمين إلى مَهمّة تطبيقك ومن خلال حزمة محاكاة خلفية وليس إلى التطبيق الذي شغّل الرابط لصفحة في التطبيق. ومع ذلك، فإن زر "رجوع" يعيدك إلى التطبيق الآخر.
يحاكي الربط بصفحة معيّنة التنقّل اليدوي.
سواء كنت تربط صفحة في التطبيق أو تتنقّل يدويًا إلى وجهة معيّنة، يمكنك استخدام الزرّ للأعلى للتنقل بين الوجهات إلى وجهة البداية.
عند الربط بصفحة معيّنة ضمن مهمة تطبيقك، تتم إزالة أي تكديس خلفية حالية لمهمة تطبيقك واستبدالها بالحزمة الخلفية المرتبطة بصفحات معيّنة في التطبيق.
باستخدام تطبيق دوار الشمس مرة أخرى كمثال، لنفترض أن المستخدم قد شغّل التطبيق سابقًا من شاشة المشغل وانتقل إلى شاشة التفاصيل الخاصة بتفاح. سيشير النظر إلى شاشة "العناصر الأخيرة" إلى وجود مهمة حيث يكون الجزء العلوي من الشاشة هو شاشة التفاصيل لجهاز Apple.
الشكل 3. تنقل المستخدم عبر تطبيق Sunflower والتجميع الخلفي الناتج.
في هذه المرحلة، يمكن للمستخدم النقر على زر الصفحة الرئيسية لوضع التطبيق في الخلفية. بعد ذلك، لنفترض أن هذا التطبيق يحتوي على ميزة رابط عميق تتيح للمستخدمين الإطلاق مباشرة في شاشة معينة من تفاصيل النبات حسب الاسم. يؤدي فتح التطبيق عبر هذا الرابط لصفحة في التطبيق إلى استبدال الحزمة الخلفية الحالية لـ Sunflower الموضحة في الشكل 3 بمجموعة خلفية جديدة، كما هو موضح في الشكل 4:
الشكل 4. يؤدي اتباع رابط لصفحة في التطبيق إلى استبدال المكدس الخلفي الحالي لتطبيق Sunflower.
لاحِظ أنّه تم استبدال حزمة Sunflower الخلفية بحزمة خلفية اصطناعية تحتوي على شاشة تفاصيل الأفوكادو في الأعلى. تمت أيضًا إضافة شاشة My Garden، وهي وجهة البداية، إلى الحزمة الخلفية. اختفت حزمة دوار الشمس الأصلية، بما في ذلك معرفة التطبيق بأن المستخدم كان على شاشة تفاصيل Apple من قبل. كل ذلك مهم لأنّ المكدس الخلفي الاصطناعي يجب أن يكون واقعيًا. يجب أن يطابق المكدس الخلفي الذي يمكن تحقيقه من خلال التنقل المجاني عبر التطبيق.
لتلبية هذه الحاجة، تكون الحزمة الخلفية الاصطناعية التي يتم إنشاؤها مبسّطة استنادًا إلى السمة NavGraph
. بالنسبة إلى إجراء NavGraph
بسيط بدون تداخل، سيتألّف هذا الخيار من وجهة البدء ووجهة الرابط لصفحة في التطبيق. لمزيد من التعقيد، الرسومات البيانية للتنقّل المُدمج،
ستحتوي الحزمة الخلفية الاصطناعية أيضًا على وجهات البدء لأي رسوم بيانية
مدمجة تشكّل كيانًا أصلاً لوجهة الرابط لصفحة في التطبيق.
يدعم مكوِّن التنقل الربط بصفحة معيّنة ويعيد إنشاء حزمة خلفية واقعية لك عند الربط بأي وجهة في الرسم البياني للتنقل.