ניווט

אפשר לנסות את הדרך של כתיבת הודעה
‫Jetpack Compose ב-Wear OS הוא ערכת הכלים המומלצת ליצירת ממשקי משתמש ל-Wear OS.

אחרי שתעצבו מסכים נפרדים לכל תהליך משתמש, יכול להיות שיהיו לכם כמה מסכים אנכיים או מסכים בודדים. בשלב הבא, צריך להחליט איך לעצב את המסכים האלה כך שיפעלו יחד ואיך להטמיע את הניווט.

עיצוב

חשוב לשמור על היררכיה רדודה ולינארית באפליקציה, כפי שמצוין בהנחיות לעיצוב אפליקציות.

כדי להתחיל, מרכז האפליקציות צריך לפתוח את המסלול הנפוץ ביותר להמרת לקוח. מעצבים כל תהליך משתמש כך שהתוכן הכי חשוב יופיע בחלק העליון. במקרים של קונטיינרים אנכיים, משתמשים בחלק התחתון כדי לקשר למסלולי משתמשים אחרים, פחות נפוצים, ולהגדרות.

איור 1. הקפידו להציב את התוכן החשוב ביותר בחלק העליון של מאגרי התוכן האנכיים.

כשמשתמשים נכנסים לאחד מהמסכים שלכם, חשוב לוודא שהם יכולים להשתמש בתנועת ההחלקה כדי לסגור את המסך ולנווט למטה במקבץ פעילויות קודמות (back stack).

הטמעה של הניווט

כשמטמיעים את הניווט, יש שלוש אפשרויות שמתוארות בקטעים הבאים:

  • פעילויות בלבד, וזו הגישה המומלצת
  • פעילויות וקטעים
  • Jetpack Navigation

פעילויות בלבד

בדרך כלל, מסכים אנכיים הם ברמה אחת, ולכן אפשר להטמיע את כל המסכים באמצעות פעילויות, בלי להשתמש בשברים.

אנחנו ממליצים מאוד על הגישה הזו. הוא מפשט את הקוד, והפעילויות תומכות אוטומטית בהחלקה כדי לסגור. כך גם קל יותר להטמיע את מצב הסביבה.

הערה: אם אתם לא משתמשים ב-fragments, הפעילויות צריכות להיות נגזרות מ-ComponentActivity. סוגי הפעילות האחרים משתמשים ברכיבי ממשק משתמש ספציפיים לנייד שלא נדרשים ל-Wear OS.

פעילויות וקטעים

אפשר להשתמש במקטעים (fragments) עם Activity באפליקציה ל-Wear OS, אבל לא מומלץ לעשות את זה כי אין יתרון ברור לשימוש במקטעים (fragments) כדי ליצור ארכיטקטורה רדודה ושטוחה.

הערה: אם משתמשים בפרגמנטים, צריך להגדיר שהם יירשו מ-FragmentActivity. ‫ סוגי הפעילות האחרים משתמשים ברכיבי ממשק משתמש ספציפיים לנייד שלא נדרשים ל-WearOS.

אלה כמה מהקשיים בשימוש ב-fragments באפליקציה ל-Wear OS:

  • אתם צריכים להטמיע בעצמכם את האפשרות להחליק כדי לסגור. אחרת, כשהמשתמש יבצע החלקה, הוא ייצא מכל האפליקציה.
  • אם אתם משתמשים ב-AmbientMode, אתם צריכים להתאים אותו אישית כדי שהוא יפעל בצורה תקינה. הערך AmbientMode מוגדר בפעילות, ולכן צריך לקחת את זה בחשבון כשמטמיעים פרגמנטים.

כדי לתמוך בהחלקה לסגירה באמצעות פרגמנטים, צריך לעטוף את התצוגה שמכילה את הפרגמנט במחלקה SwipeDismissFrameLayout. מידע נוסף זמין במאמר בנושא המחווה של החלקה לסגירה. כך המשתמשים ייהנו מחוויה עקבית באפליקציה שלכם.

הערה: כשמשתמשים ב-fragments, צריך להשתמש ב-FragmentManager.add ולא ב-FragmentManager.replace כדי לתמוך בתנועת ההחלקה לסגירה. כך אפשר לוודא שהקטע הקודם מוצג מתחת לקטע העליון בזמן שמחליקים אותו הצידה.

Jetpack Navigation

‫Jetpack Navigation יכול לפעול ב-Wear OS, אבל יש לו את אותם חסרונות כמו ל-fragments. השימוש בה מוסיף עבודת פיתוח, ומכיוון שההיררכיה של אפליקציית Wear OS היא בדרך כלל רדודה ולינארית, אין לה הרבה יתרונות. הגישה הכי טובה היא להשתמש רק בפעילות.

כדי להפיק את המרב מ-Jetpack Navigation, צריך לבצע את הפעולות הבאות:

  • חשוב לוודא שכל פרגמנט משתמש ב-SwipeDismissFrameLayout כרכיב הבסיסי שלו, ולהשתמש ידנית בפעולת ההסרה כדי לחזור בתרשים הניווט.
  • מטמיעים FragmentNavigator בהתאמה אישית שמציג רכיבים אחד על השני.