Norme sulla qualità delle app per Android XR

Definizioni dei livelli di compatibilità

Per assicurarti che la tua app offra un'esperienza utente ottimale sui dispositivi Android XR, esamina i seguenti elenchi di controllo e test di compatibilità.

Le liste di controllo e i test definiscono un insieme completo di requisiti di qualità per la maggior parte dei tipi di app per Android.

App mobile compatibile con Android XR

Un'app mobile compatibile con Android XR rappresenta un'app mobile esistente che non è stata modificata per adattarsi a uno schermo di grandi dimensioni o a qualsiasi altro fattore di forma. Questo tipo di app è compatibile automaticamente con Android XR, a condizione che non richieda funzionalità non supportate, come la telefonia. Gli utenti possono completare flussi di attività critici, ma con un'esperienza utente meno ottimale rispetto a un'app Android XR differenziata.

Questo tipo di app viene eseguito a schermo intero in un riquadro nell'ambiente dell'utente, ma il suo layout potrebbe non essere ideale per dimensioni maggiori. Le app che specificano dimensioni compatte nel manifest vengono visualizzate di conseguenza. L'app non viene eseguita in modalità di compatibilità e quindi non è in letterbox. L'app offre un'esperienza funzionale delle modalità di input di base fornite da Android XR (eye tracking + gesti o mani con raycast) e il supporto di base per i dispositivi di input esterni, tra cui tastiera, mouse, trackpad e controller per videogiochi. Potrebbe o meno essere possibile ridimensionarlo.

Le app mobile compatibili con Android XR sono attivate automaticamente e disponibili sul Google Play Store. Un'app non compatibile a causa di requisiti delle funzionalità non supportati non è installabile tramite il Play Store.

App per schermi di grandi dimensioni compatibile con Android XR

Un'app per schermi di grandi dimensioni compatibile con Android XR rappresenta un'app per schermi di grandi dimensioni di Livello 1 o Livello 2 che ha implementato ottimizzazioni del layout per tutte le dimensioni dello schermo e le configurazioni del dispositivo (ad esempio, schermi di grandi dimensioni oltre ai dispositivi mobili), oltre a un supporto avanzato per i dispositivi di input esterni e il multitasking. Le app per schermi di grandi dimensioni compatibili con Android XR sono attivate automaticamente e disponibili sul Play Store.

Un'app per schermi di grandi dimensioni compatibile con Android XR viene eseguita a schermo intero su un riquadro spaziale nell'ambiente dell'utente a 1024 dp × 720 dp. Gli utenti potranno interagire con l'app in modo naturale usando gli occhi e le mani, ma per il resto sarà molto simile all'app per schermi di grandi dimensioni.

App differenziata per Android XR

Un'app Android XR differenziata offre un'esperienza utente progettata esplicitamente per la realtà XR e implementa funzionalità disponibili solo su XR. Puoi sfruttare appieno le funzionalità di Android XR e differenziare le esperienze della tua app aggiungendo funzionalità XR (ad es. pannelli spaziali) e contenuti XR (ad es. video 3D) alle tue applicazioni sviluppando con Android Jetpack XR SDK, Unity o OpenXR.

Puoi utilizzare l'SDK Jetpack XR per fornire funzionalità specifiche per la realtà virtuale, tra cui pannelli spaziali, ambienti, modelli 3D, audio spaziale, video / foto 3D / spaziali, ancore e altre UI spaziali come gli orbiter.

Per essere considerata un'app Android XR differenziata, un'app deve implementare almeno una funzionalità o un contenuto specifico per la realtà virtuale. Per alcuni casi d'uso, potrebbero essere previsti requisiti aggiuntivi per funzionalità e contenuti. Consulta i dettagli di seguito.

Tutte le app create con Unity o OpenXR sono considerate differenziate. Le app create con Unity o OpenXR devono soddisfare le metriche di qualità e i requisiti minimi per essere considerate app Android XR differenziate. Ad esempio, un'app con una frequenza frame bassa, arresti anomali o altre esperienze utente negative non è idonea.

Elenco di controllo della compatibilità con Android XR

Questi elenchi di controllo della compatibilità definiscono i criteri per aiutarti a valutare il livello di supporta fornito dalla tua app per la realtà virtuale e la realtà aumentata. I livelli di assistenza includono:

App mobile compatibile con Android XR

La tua app deve soddisfare i requisiti di qualità principali delle app.

L'app deve inoltre rispettare tutte le linee guida sull'accessibilità vigenti per altri fattori di forma, come smartphone e tablet (ad esempio, il contrasto di colore).

App per schermi di grandi dimensioni compatibile con Android XR

Qualsiasi app per schermi di grandi dimensioni di Livello 1 o Livello 2 è considerata un'app per schermi di grandi dimensioni compatibile con Android XR. Le linee guida per la qualità delle app per schermi di grandi dimensioni offrono un approccio strutturato per garantire un'esperienza eccezionale su Android XR, ma non sono necessarie considerazioni sullo stato del dispositivo come rotazione o apertura/chiusura. Analogamente, Android XR non include il supporto dello stilo.

App differenziata per Android XR

Poiché le app Android XR differenziate sono molto differenziate, alcune delle funzionalità elencate sono applicabili solo a tipi specifici di app. Scegli le funzionalità appropriate per la tua applicazione. Le app per Android devono inoltre rispettare le linee guida per Android su schermo grande / dispositivo mobile. Consulta i requisiti appropriati per la tua applicazione (alcuni di questi potrebbero anche diventare potenziali aggiornamenti delle norme).

Tipo di app / caso d'uso

Categoria

Area

Indicazioni

Requisito di base generale (Android e OpenXR)

Privacy e sicurezza

Accesso all'account (esperienza utente per la prima volta)

Se la tua app utilizza un sistema di accesso, mostra chiaramente le credenziali di accesso dell'utente (ad esempio le credenziali del nome utente) dopo l'autenticazione. In questo modo si rafforza la fiducia confermando l'account attivo. Inoltre, incorpora un menu o una pagina delle impostazioni facilmente accessibile che consenta agli utenti di visualizzare e gestire i dati del proprio account in qualsiasi momento.

Sicurezza e comfort

Strobing

Per garantire la sicurezza e il benessere di tutti gli utenti, è fondamentale ridurre al minimo il rischio di effetti stroboscopici all'interno dell'applicazione.

Evita di incorporare intenzionalmente elementi di design che potrebbero causare sfarfallio.

1. Se l'effetto stroboscopico è assolutamente necessario, assicurati che la frequenza di lampeggio sia molto bassa (inferiore a 3 lampeggi al secondo) e che l'area di lampeggio sia piccola e poco evidente.

2. Valuta la possibilità di disattivarla tramite impostazioni o preferenze.

3. Mostra un messaggio di avviso chiaro prima che si verifichi lo strobing.

Evitare la cinetosi

Segui queste linee guida per evitare di causare cinetosi negli utenti:

  • Dai la priorità al comfort visivo evitando movimenti bruschi della videocamera. Mantieni un sistema di riferimento coerente per evitare di disorientare l'utente.
  • Non ruotare la videocamera nel tempo. Se la direzione della fotocamera cambia, la fotocamera passa al nuovo orientamento.

Ingresso

Dimensioni dei target di interazione

I target interattivi hanno una dimensione minima e una consigliata in base alla distanza di interazione prevista:

  • Dimensioni minime: DistanzaInM x 0,868 x 48 = M
  • Dimensioni consigliate: DistanzaInM x 0,868 x 56 = M o superiore

Quando utilizzi l'SDK Jetpack XR, consigliamo dimensioni minime di 48 x 48 dp, con dimensioni consigliate di 56 x 56 dp o superiori per il target di tocco.

Funzionalità tecniche XR

Input con le mani

La tua app supporta l'input naturale con le mani come metodo di interazione di riferimento per Android XR, inclusi i requisiti di raycast delle mani e il supporto dei gesti per le primitive di input.

La tua app è giocabile o altrimenti utilizzabile senza la necessità di controller, ma può essere migliorata con l'uso di questi dispositivi, se scegli di farlo.

Confine (in precedenza Guardian)

Se la tua app si aspetta che gli utenti si spostino dal punto di partenza (al momento dell'avvio dell'app) all'interno del loro spazio fisico, richiede il trasferimento o dichiara PROPERTY_ACTIVITY_XR_BOUNDARY_TYPE_RECOMMENDED = XR_BOUNDARY_TYPE_LARGE nel file manifest.

Se la tua app utilizza XR_BOUNDARY_TYPE_LARGE, è completamente riproducibile senza che venga visualizzato il confine (entro un raggio di 2 m; tieni presente che il passaggio del confine inizia ad apparire a un raggio di 1, 5 m).

Prestazioni

Rendering

L'app esegue il rendering di ogni frame in un intervallo compreso tra <11,1 ms (90 Hz) e <13,8 ms (72 Hz).

Risoluzione

La tua app ha una risoluzione di almeno 2364 x 2880 per occhio.

Tempi di avvio dell'app

Gli utenti vogliono poter interagire con la tua app o il tuo gioco il più rapidamente possibile. La definizione di un buon tempo di avvio o di caricamento varia in base alla categoria, ma come principio generale consigliamo di ridurre al minimo il tempo tra il lancio e la prima interazione.

Di seguito sono riportate le durate target:

  • Tempo di avvio a freddo medio: inferiore a 2 secondi
  • Riavvio medio: meno di 1 secondo

Per maggiori dettagli, vedi Tempo di avvio dell'app.

ANR

L'app non si arresta in modo anomalo o non blocca il thread dell'interfaccia utente causando errori ANR ("Android Not Responding").

La tua app presenta meno di 1 ANR nel 99,5% delle sessioni giornaliere.

La tua app utilizza il report pre-lancio di Google Play per identificare potenziali problemi di stabilità. Dopo il deployment, presta attenzione alla pagina Android Vitals nella Console per sviluppatori Google Play.

Percentuale di arresti anomali

Non consumare risorse di sistema eccessive che influiscono sul resto del sistema e su altre app, mantenendo un tasso di arresti anomali di circa l'1%.

Base di riferimento per le app Android (differenziata per XR)

Esperienza visiva ed utente

XR di base

La tua app implementa almeno una funzionalità o un contenuto specifico per la realtà virtuale e la realtà aumentata per migliorare l'esperienza utente. Può includere un orbiter, uno o più pannelli spaziali, ambienti o oggetti 3D.

Pannelli spaziali

Quando esegui il multitasking (ovvero completi due o più attività contemporaneamente) con i riquadri, crea riquadri spaziali separati. Ad esempio, puoi creare riquadri spaziali separati per le finestre di chat e gli elenchi.

Ambienti

Quando viene mostrato un ambiente virtuale, la luminosità può distrarre e stancare. La tua app presenta una gamma di tonalità sicura senza picchi di luminosità in conflitto con l'interfaccia utente o che potrebbero causare affaticamento dell'utente. L'interfaccia utente è leggibile in tutte le direzioni, in particolare all'interno della banda orizzontale centrale dello sguardo dell'utente. (linee guida dettagliate da collegare in futuro)

Transizione tra Spazio Home (HSM) e Spazio intero (FSM)

Quando indirizzi gli utenti allo spazio completo, la tua app deve avere un punto di accesso che consenta loro di passare rapidamente dallo spazio di casa allo spazio completo. Utilizza un'icona o un'etichetta e posiziona il pulsante in una posizione facilmente accessibile.

Pannelli spaziali

Posiziona menu, asset e controlli in un riquadro o un orbiter dedicato. Non includere questi componenti nel riquadro di modifica principale.

Scorri menu / elenco

La tua app aggiorna le interazioni di scorrimento (in particolare tramite caroselli o elenchi verticali) per avere fisica o slancio. Ad esempio, lo scorrimento incorpora l'inerzia, facendo sì che i contenuti nei caroselli e negli elenchi continuino a muoversi brevemente dopo un'interazione dell'utente prima di fermarsi gradualmente (anziché fermarsi esattamente quando l'utente interrompe l'input).

Funzionalità video / multimediali

Esperienza visiva ed utente

Spatial Player (solo Android)

La tua app consente agli utenti di guardare i contenuti a schermo intero.

Rimuovi i controlli di riproduzione da un overlay sopra i contenuti e posizionali in un riquadro o in un orbiter dedicato.

Per i riquadri con la riproduzione di video, imposta le proporzioni per rimuovere la vignettatura.

Audio spaziale

Valuta la possibilità di supportare l'audio spaziale, incluso l'audio bloccato sul pannello o l'audio surround.

Visualizzazione di video simultanea

Se la tua app supporta più stream video simultanei, l'interfaccia utente deve indicare chiaramente le seguenti informazioni:

  • Quali stream video forniscono l'output audio
  • Quali controlli di riproduzione influiscono su quali stream video

Ambiente

Durante la riproduzione dei contenuti in Spazio intero, la tua app consente agli utenti di attenuare il passthrough o di selezionare gli ambienti virtuali.