הנחיות איכות לאפליקציות ל-Android XR

הגדרות של רמות תאימות

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

ברשימות המשימות ובבדיקות מפורטות דרישות איכות מקיפות לרוב סוגי האפליקציות ל-Android.

אפליקציה לנייד שתואמת ל-Android XR

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

אפליקציות מהסוג הזה פועלות במסך מלא בחלונית בסביבת המשתמש, אבל יכול להיות שהפריסה שלהן לא תהיה אידיאלית בגדלים גדולים יותר. אפליקציות שמציינות גדלים קומפקטיים במניפסט יופיעו בהתאם. האפליקציה לא פועלת במצב תאימות ולכן היא לא מוצגת בפורמט letterbox. האפליקציה כוללת חוויה פונקציונלית של שיטות הקלט הבסיסיות ש-Android XR מספק (מעקב אחר עיניים + תנועות או זרקור ידיים) ותמיכה בסיסית במכשירי קלט חיצוניים, כולל מקלדת, עכבר, משטח מגע ושלטים למשחקים. יכול להיות שאפשר לשנות את הגודל שלו ויכול להיות שלא.

אפליקציות לנייד שתואמות ל-Android XR נכללות באופן אוטומטי בתוכנית והן זמינות בחנות Google Play. אי אפשר להתקין דרך חנות Play אפליקציה שלא תואמת בגלל דרישות תכונות שלא נתמכות.

אפליקציה למסך גדול שתואמת ל-Android XR

אפליקציה תואמת למסך גדול ב-Android XR היא אפליקציה ל-רמה 1 או ל-רמה 2 למסך גדול, שבה הוחלו אופטימיזציות של הפריסה לכל גדלי המסכים והגדרות המכשיר (לדוגמה, מסכים גדולים בנוסף לנייד), יחד עם תמיכה משופרת במכשירי קלט חיצוניים ובביצוע משימות בו-זמנית. אפליקציות עם מסך גדול שתואמות ל-Android XR נכללות באופן אוטומטי בתוכנית וזמינות בחנות Play.

אפליקציה שתואמת למסך גדול ב-Android XR פועלת במסך מלא בחלונית מרחבית בסביבת המשתמש בגודל 1024dp × 720dp. המשתמשים יוכלו לקיים אינטראקציה עם האפליקציה באופן טבעי באמצעות העיניים והידיים, אבל מבחינה אחרת היא תהיה דומה מאוד לאפליקציה במסך הגדול.

אפליקציה מותאמת ל-Android XR

באפליקציה מותאמת ל-Android XR יש חוויית משתמש שתוכננה במיוחד ל-XR, והיא כוללת תכונות שזמינות רק ב-XR. כדי לנצל את מלוא היכולות של Android XR ולהבדיל בין חוויות השימוש באפליקציות, אפשר להוסיף תכונות XR (למשל, חלוניות מרחביות) ותוכן XR (למשל, סרטון תלת-ממד) לאפליקציות. לשם כך, צריך לפתח את האפליקציות באמצעות Android Jetpack XR SDK,‏ Unity או OpenXR.

אפשר להשתמש ב-Jetpack XR SDK כדי לספק יכולות ספציפיות ל-XR, כולל חלוניות מרחביות, סביבות, מודלים תלת-ממדיים, אודיו מרחבי, תמונות או סרטונים תלת-ממדיים או מרחביים, עוגנים וממשקי משתמש מרחביים אחרים כמו רכיבי 'מעגלים'.

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

כל האפליקציות שנוצרו באמצעות Unity או OpenXR נחשבות לאפליקציות ייחודיות. אפליקציות שנוצרו באמצעות Unity או OpenXR חייבות לעמוד במדדי איכות ובדרישות המינימליות כדי להיחשב כאפליקציות עם התאמה ייחודית ל-Android XR. לדוגמה, אפליקציה עם קצב פריימים נמוך, קריסות או חוויית משתמש שלילית אחרת לא תתאים.

רשימת משימות לבדיקת תאימות ל-Android XR

ברשימות המשימות להתאמה הזו מפורטים קריטריונים שיעזרו לכם להעריך את רמת התמיכה של האפליקציה שלכם ב-XR. רמות התמיכה כוללות את:

אפליקציה לנייד שתואמת ל-Android XR

האפליקציה שלכם חייבת לעמוד בדרישות של איכות האפליקציה הבסיסית.

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

אפליקציה למסך גדול שתואמת ל-Android XR

כל אפליקציה ל-Android XR עם מסך גדול שנכללת ברמה 1 או ברמה 2 נחשבת לאפליקציה ל-Android XR עם מסך גדול. הנחיות האיכות לאפליקציות עם מסך גדול מספקות גישה מובנית להבטחת חוויית שימוש מעולה ב-Android XR, אבל לא נדרשות התייחסויות למצב המכשיר, כמו סיבוב או קיפול/פתיחה. באופן דומה, ב-Android XR אין תמיכה בעט.

אפליקציה מותאמת ל-Android XR

מאחר שאפליקציות Android XR הן ייחודיות מאוד, חלק מהיכולות המפורטות רלוונטיות רק לסוגים ספציפיים של אפליקציות. בוחרים את היכולות שמתאימות לאפליקציה. אפליקציות ל-Android צריכות גם לעמוד בהנחיות לשימוש במסכים גדולים או בניידים עם Android. בודקים את הדרישות שמתאימות לאפליקציה (חלק מהן עשויות להפוך גם לעדכוני מדיניות פוטנציאליים).

סוג האפליקציה / תרחיש לדוגמה

קטגוריה

שטח

הנחיות

דרישה בסיסית כללית (Android ו-OpenXR)

פרטיות ואבטחה

כניסה לחשבון (חוויית משתמש בפעם הראשונה)

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

בטיחות ונוחות

הבהוב

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

הימנעו משילוב מכוון של אלמנטים עיצוביים שעשויים לגרום לפלאש.

1. אם אפקט הריצוד הכרחי, חשוב לוודא שקצב ההבהוב נמוך מאוד (פחות מ-3 הבהובים לשנייה) ושאזור ההבהוב קטן ועדין.

2. כדאי לאפשר להשבית את התכונה הזו דרך ההגדרות או ההעדפות.

3. הצגת הודעת אזהרה ברורה לפני שהבהוב מתרחש.

הימנעות מחלת נסיעה

כדי למנוע בחילה כתוצאה מתנועה אצל המשתמשים, יש לפעול לפי ההנחיות הבאות:

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

קלט

גודל יעדי האינטראקציה

ליעדים שניתן לקיים איתם אינטראקציה יש גודל מינימלי וגודל מומלץ, בהתאם למרחק האינטראקציה המיועד:

  • גודל מינימלי: DistanceInM x 0.868 x 48 = M
  • גודל מומלץ: DistanceInM x 0.868 x 56 = M או גדול יותר

כשמשתמשים ב-Jetpack XR SDK, מומלץ להשתמש בגודל מינימלי של 48 x 48dp, עם גודל יעד הקשה מומלץ של 56 x 56dp או יותר.

פונקציונליות טכנית של XR

קלט ידני

האפליקציה תומכת בהזנת יד טבעית כשיטת אינטראקציה בסיסית ל-Android XR, כולל דרישות של הקרנת לייזר ביד ותמיכה בתנועות לפרימיטיבים של קלט.

אפשר לשחק באפליקציה או להשתמש בה בדרכים אחרות בלי צורך בבקרים, אבל אפשר להשתמש בהם כדי לשפר את חוויית המשתמש אם רוצים.

Boundary (לשעבר Guardian)

אם האפליקציה מצפה שהמשתמשים ינועו מנקודת ההתחלה (בזמן הפעלת האפליקציה) במרחב הפיזי שלהם, היא מבקשת העברה או מצהירה על PROPERTY_ACTIVITY_XR_BOUNDARY_TYPE_RECOMMENDED = XR_BOUNDARY_TYPE_LARGE במניפסט.

אם האפליקציה שלכם משתמשת ב-XR_BOUNDARY_TYPE_LARGE, אפשר לשחק בה באופן מלא בלי שהגבול יוצג (ברדיוס של 2.0 מ'. שימו לב: תכונת boundary passthrough מתחילה להופיע ברדיוס של 1.5 מ').

ביצועים

רינדור

האפליקציה מרינדרת כל פריים בזמן של פחות מ-11.1 אלפיות השנייה (90Hz) עד פחות מ-13.8 אלפיות השנייה (72Hz).

רזולוציה

הרזולוציה של האפליקציה היא לפחות 2,364 על 2,880 לכל עין.

זמן ההפעלה של האפליקציה

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

משך הזמן של היעדים מפורט בהמשך:

  • זמן ממוצע להפעלה במצב התחלתי (cold start): פחות משתי שניות
  • זמן הפעלה ממוצע במצב ביניים (warm start): פחות משנייה

פרטים נוספים זמינים במאמר זמן ההפעלה של האפליקציה.

מקרי ANR

האפליקציה לא קרסה או חסמה את שרשור ממשק המשתמש, מה שגרם לשגיאות ANR ('Android לא מגיב').

באפליקציה שלכם יש פחות מ-1 מקרה ANR ב-99.5% מהפעלות היומיות.

האפליקציה משתמשת בדוח של Google Play לטרום-השקה כדי לזהות בעיות יציבות פוטנציאליות. אחרי הפריסה, כדאי לעיין בדף Android Vitals במסוף הפיתוח של Google Play.

שיעור הקריסות

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

Android App Baseline (XR-differentiated)

חוויית המשתמש והעיצוב

XR בסיסי

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

חלוניות מרחבי

כשמבצעים כמה משימות בו-זמנית (כלומר, משלימים שתי משימות או יותר בו-זמנית) באמצעות חלוניות, צריך ליצור חלוניות מרחביות נפרדות. לדוגמה, אפשר ליצור חלונות ורשימות צ'אט נפרדים במרחב המשותף.

סביבה

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

מעבר בין מרחב הבית (HSM) למרחב המלא (FSM)

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

חלוניות מרחבי

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

גלילה בתפריט או ברשימה

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

פונקציונליות של סרטונים או מדיה

חוויית המשתמש והעיצוב

נגן מרחבי (Android בלבד)

האפליקציה מאפשרת למשתמשים לצפות בתוכן במסך מלא.

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

בחלוניות עם הפעלת וידאו, מגדירים את יחס הגובה-רוחב כדי להסיר את פורמט ה-letterbox.

אודיו מרחבי

כדאי להוסיף תמיכה באודיו מרחבי, כולל אודיו נעילה לחלונית או צליל סראונד.

צפייה בו-זמנית בסרטונים

אם האפליקציה תומכת בכמה שידורי וידאו בו-זמנית, בממשק המשתמש יוצגו הפרטים הבאים:

  • אילו שידורי וידאו מספקים פלט אודיו
  • אילו פקדי הפעלה משפיעים על אילו שידורי וידאו

סביבה

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