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 test e liste di controllo della 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 è 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 è automaticamente compatibile con Android XR, a condizione che non richieda funzionalità non supportate, come la telefonia. Gli utenti possono completare i flussi di attività critici, ma con un'esperienza utente meno ottimale rispetto a un'app differenziata per Android XR.

Questo tipo di app viene eseguito a schermo intero su un pannello 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à compatibilità e pertanto non è in formato letterbox. L'app offre un'esperienza funzionale delle modalità di input principali fornite da Android XR (rilevamento dello sguardo + gesto o mani raycast) e supporto di base per dispositivi di input esterni, tra cui tastiera, mouse, trackpad e controller di gioco. Potrebbe essere in grado o meno di ridimensionarsi.

Le app mobile compatibili con Android XR vengono attivate automaticamente e sono disponibili sul Google Play Store. Un'app non compatibile a causa di requisiti delle funzionalità non supportati non può essere installata 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 Tier 1 o Tier 2 per schermi di grandi dimensioni che ha implementato ottimizzazioni del layout per tutte le dimensioni dello schermo e le configurazioni dei dispositivi (ad esempio, schermi di grandi dimensioni oltre a quelli mobili), oltre a un supporto avanzato per dispositivi di input esterni e multitasking. Le app per schermi di grandi dimensioni compatibili con Android XR vengono attivate automaticamente e sono disponibili sul Play Store.

Un'app per schermi di grandi dimensioni compatibile con Android XR viene eseguita a schermo intero su un pannello 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 Android XR differenziata

Un'app differenziata per Android XR ha un'esperienza utente progettata esplicitamente per XR e implementa funzionalità offerte 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 l'SDK Android Jetpack XR, Unity o OpenXR.

Puoi utilizzare l'SDK Jetpack XR per fornire funzionalità specifiche per la XR, 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 differenziata per Android XR, un'app deve implementare almeno una funzionalità specifica per XR o un contenuto specifico per XR. Per determinati casi d'uso, potrebbero esistere ulteriori requisiti 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 un'app Android XR differenziata. Ad esempio, un'app con un frame rate basso, arresti anomali o altre esperienze utente negative non sarebbe idonea.

Elenco di controllo della compatibilità di Android XR

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

App mobile compatibile con Android XR

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

La tua app deve inoltre rispettare tutte le linee guida per l'accessibilità applicabili per altri fattori di forma come smartphone e tablet (ad esempio, il contrasto cromatico).

App per schermi di grandi dimensioni compatibile con Android XR

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

App differenziata per Android XR

Poiché le app differenziate per Android XR sono altamente differenziate, alcune delle funzionalità elencate sono applicabili solo a tipi specifici di app. Scegli le funzionalità adatte alla tua applicazione. Le app per Android devono anche rispettare le linee guida per Android per schermi di grandi dimensioni / dispositivi mobili. Consulta i requisiti appropriati per la tua applicazione (alcuni di questi potrebbero trasformarsi anche in 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 (UX prima volta)

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

Sicurezza e comfort

Effetto stroboscopico

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 indurre effetti stroboscopici.

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 lampeggiante sia piccola e discreta.

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

3. Visualizzare un messaggio di avviso chiaro prima che si verifichi qualsiasi effetto stroboscopico.

Evitare la chinetosi

Segui queste linee guida per evitare di causare mal d'auto agli utenti:

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

Ingresso

Dimensioni dei target di interazione

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

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

Quando utilizzi l'SDK Jetpack XR, ti consigliamo una dimensione minima di 48 x 48 dp, con una dimensione del target di tocco consigliata di 56 x 56 dp o superiore.

Funzionalità tecniche XR

Input della mano

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

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

Boundary (in precedenza Guardian)

Se la tua app prevede che gli utenti si muovano dal punto di partenza (all'avvio dell'app) nel loro spazio fisico, richiede il passthrough o dichiara PROPERTY_XR_BOUNDARY_TYPE_RECOMMENDED = XR_BOUNDARY_TYPE_LARGE nel manifest.

Se la tua app utilizza XR_BOUNDARY_TYPE_LARGE, è completamente giocabile senza che venga visualizzato il confine (entro un raggio di 2 metri; tieni presente che il passthrough del confine inizia a essere visualizzato con un raggio di 1, 5 metri).

Prestazioni

Rendering

La tua app esegue il rendering di ogni frame tra <11,1 ms (90 Hz) e < 13,8 ms (72 Hz).

Risoluzione

La tua app ha una risoluzione di almeno 1856 x 2160 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 che intercorre tra l'avvio e la prima interazione.

Vedi le durate target di seguito:

  • Avvio completo medio: meno di 2 secondi
  • Avvio tiepido medio: meno di 1 secondo

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

ANR

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

La tua app ha meno di un errore 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 in Google Play Console.

Percentuale di arresti anomali

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

Android App Baseline (differenziato per XR)

Aspetto visivo ed esperienza utente

XR di base

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

Spatial Panels

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

Ambienti

Quando viene visualizzato un ambiente virtuale, la luminosità può essere fonte di distrazione e affaticamento. La tua app presenta una gamma tonale sicura, senza picchi di luminosità che entrano in conflitto con la UI o potrebbero causare affaticamento agli utenti. L'interfaccia utente è leggibile in tutte le direzioni, in particolare nella banda orizzontale centrale dello sguardo dell'utente. (Linee guida dettagliate da collegare in futuro)

Transizione tra la modalità Spazio Home (HSM) e la modalità Spazio intero (FSM)

Quando gli utenti accedono a Spazio completo, la tua app ha un punto di accesso che consente agli utenti di passare rapidamente da Spazio personale a Spazio completo. Utilizza un'icona o un'etichetta e posiziona il pulsante in una posizione facilmente accessibile.

Spatial Panels

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

Scorrimento di menu / elenchi

Gli aggiornamenti dell'app scorrono le interazioni (soprattutto tramite caroselli o elenchi verticali) per avere fisica o inerzia. Ad esempio, lo scorrimento incorpora l'inerzia, facendo sì che i contenuti di caroselli ed elenchi continuino a muoversi brevemente dopo l'interazione di un utente prima di fermarsi gradualmente (anziché fermarsi esattamente quando l'utente interrompe l'input).

Funzionalità video / multimediali

Aspetto visivo ed esperienza utente

Spatial Player (solo Android)

La tua app consente agli utenti di guardare contenuti in Full Space.

Rimuovi i controlli di riproduzione da una sovrapposizione sopra i contenuti e posizionali in un pannello o orbiter dedicato.

Per i riquadri con riproduzione video, imposta le proporzioni per rimuovere il letterbox.

Audio spaziale

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

Visualizzazione simultanea di video

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

  • Quali stream video forniscono l'output audio
  • Quali controlli di riproduzione influiscono sui flussi video

Ambiente

Quando riproduce contenuti in Full Space, la tua app consente agli utenti di attenuare il passthrough o selezionare ambienti virtuali.


OpenXR™ e il logo OpenXR sono marchi di proprietà di The Khronos Group Inc. e sono registrati come marchi in Cina, nell'Unione Europea, in Giappone e nel Regno Unito.