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

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

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

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

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

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

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

אפליקציות לנייד שתואמות ל-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. יכול להיות שיהיו דרישות נוספות לגבי תכונות ותוכן במקרים מסוימים. פרטים נוספים מופיעים בהמשך.

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

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

רשימות התאימות האלה מגדירות קריטריונים שיעזרו לכם להעריך את רמת התמיכה של האפליקציה ב-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
  • גודל מומלץ: (המרחק במטרים) x‏ 0.868 x‏ 56 = M או גדול יותר

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

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

קלט באמצעות הידיים

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

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

Boundary (לשעבר Guardian)

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

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

ביצועים

רינדור

האפליקציה מעבדת כל פריים בין ‎ <11.1ms (90Hz)‎ לבין ‎ < 13.8ms (72 Hz)‎.

רזולוציה

הרזולוציה של האפליקציה היא לפחות ‎1856 x 2160 לכל עין.

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

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

משך היעד מפורט בהמשך:

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

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

מקרי ANR

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

באפליקציה שלך יש פחות ממקרה ANR אחד ב-99.5% מימי השימוש באפליקציה.

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

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

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

Android App Baseline (שונה מ-XR)

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

XR בסיסי

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

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

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

סביבה

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

מעבר בין מצב 'תצוגה מצומצמת' (HSM) לבין מצב 'תצוגה מורחבת' (FSM)

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

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

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

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

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

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

חוויית משתמש ועיצוב ויזואלי

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

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

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

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

אודיו מרחבי

כדאי לתמוך באודיו מרחבי, כולל אודיו שמוצמד לחלונית או צליל סראונד.

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

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

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

סביבה

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


‫OpenXR™‎ והלוגו של OpenXR הם סימנים מסחריים בבעלות The Khronos Group Inc. ‎ והם רשומים כסימן מסחרי בסין, באיחוד האירופי, ביפן ובבריטניה.