Consignes relatives à la qualité des applications Android XR

Définitions des niveaux de compatibilité

Pour que votre application offre une expérience utilisateur optimale sur les appareils Android XR, veuillez consulter les checklists et les tests de compatibilité suivants.

Ces checklists et ces tests définissent un ensemble complet de critères de qualité applicables à la plupart des types d'applis Android.

Application mobile compatible avec Android XR

Une application mobile compatible avec Android XR représente une application mobile existante qui n'a pas été modifiée pour s'adapter à un grand écran ou à tout autre facteur de forme. Ce type d'application est automatiquement compatible avec Android XR tant qu'il ne nécessite aucune fonctionnalité non prise en charge, comme la téléphonie. Les utilisateurs peuvent effectuer des flux de tâches essentiels, mais l'expérience utilisateur est moins optimale qu'avec une application différenciée Android XR.

Ce type d'application s'exécute en plein écran sur un panneau dans l'environnement de l'utilisateur, mais sa mise en page n'est pas forcément idéale pour les tailles plus grandes. Les applications qui spécifient des tailles compactes dans le fichier manifeste s'affichent en conséquence. L'application ne s'exécute pas en mode de compatibilité et n'est donc pas au format letterbox. L'application offre une expérience fonctionnelle des principales modalités d'entrée fournies par Android XR (suivi des yeux + gestes ou mains raycast) et une compatibilité de base avec les périphériques d'entrée externes, y compris le clavier, la souris, le pavé tactile et les manettes de jeu. Il peut ou non être possible de redimensionner l'image.

Les applications mobiles compatibles avec Android XR sont automatiquement activées et disponibles sur le Google Play Store. Une application qui n'est pas compatible en raison de conditions requises de fonctionnalité non prises en charge ne peut pas être installée via le Play Store.

Application grand écran compatible avec Android XR

Une application à grand écran compatible avec Android XR représente une application de niveau 1 ou de niveau 2 à grand écran qui a implémenté des optimisations de mise en page pour toutes les tailles d'écran et configurations d'appareil (par exemple, les grands écrans en plus des mobiles), ainsi qu'une compatibilité améliorée avec les périphériques d'entrée externes et la multitâche. Les applications compatibles avec les grands écrans Android XR sont automatiquement activées et disponibles sur le Play Store.

Une application à grand écran compatible avec Android XR s'exécute en plein écran sur un panneau spatial dans l'environnement de l'utilisateur à 1 024 dp x 720 dp. Les utilisateurs pourront interagir naturellement avec l'application à l'aide de leurs yeux et de leurs mains, mais l'application sera par ailleurs très semblable à celle pour grand écran.

Application Android XR différenciée

Une application Android XR différenciée propose une expérience utilisateur explicitement conçue pour la réalité XR et implémente des fonctionnalités uniquement disponibles sur la réalité XR. Vous pouvez exploiter pleinement les fonctionnalités d'Android XR et différencier les expériences de votre application en ajoutant des fonctionnalités XR (par exemple, des panneaux spatiaux) et des contenus XR (par exemple, des vidéos 3D) à vos applications en développant avec le SDK Android Jetpack XR, Unity ou OpenXR.

Vous pouvez utiliser le SDK Jetpack XR pour fournir des fonctionnalités spécifiques à la RV/RA, y compris des panneaux spatiaux, des environnements, des modèles 3D, de l'audio spatial, des vidéos/photos 3D/spatiales, des ancrages et d'autres UI spatiales telles que des orbiteurs.

Pour être considérée comme une application Android XR différenciée, une application doit implémenter au moins une fonctionnalité ou un contenu spécifique à la XR. Pour certains cas d'utilisation, d'autres fonctionnalités et exigences de contenu peuvent s'appliquer. Consultez les détails ci-dessous.

Toutes les applications créées avec Unity ou OpenXR sont considérées comme différenciées. Les applications créées avec Unity ou OpenXR doivent respecter les métriques de qualité et les exigences minimales pour être considérées comme des applications Android XR différenciées. Par exemple, une application avec un faible taux de rafraîchissement, des plantages ou d'autres expériences utilisateur négatives ne peut pas être considérée comme une application différenciée Android XR.

Checklist de compatibilité avec Android XR

Ces checklists de compatibilité définissent des critères pour vous aider à évaluer le niveau de compatibilité de votre application avec la réalité XR. Voici les différents niveaux de compatibilité :

Application mobile compatible avec Android XR

Votre application doit respecter les critères fondamentaux de qualité des applications.

Votre application doit également respecter toutes les consignes d'accessibilité applicables pour d'autres facteurs de forme tels que les téléphones et les tablettes (par exemple, le contraste des couleurs).

Application grand écran compatible avec Android XR

Toute application sur grand écran de niveau 1 ou 2 est considérée comme une application sur grand écran compatible avec Android XR. Les consignes relatives à la qualité des applications sur grand écran offrent une approche structurée pour garantir une expérience optimale sur Android XR, mais les considérations sur l'état de l'appareil, telles que la rotation ou le pliage/dépliage, ne sont pas obligatoires. De même, Android XR n'est pas compatible avec les stylets.

Application Android XR différenciée

Les applications Android XR différenciées étant très différenciées, certaines des fonctionnalités indiquées ne s'appliquent qu'à certains types d'applications spécifiques. Choisissez les fonctionnalités adaptées à votre application. Les applications Android doivent également respecter les Consignes Android pour les grands écrans et les mobiles. Consultez les exigences applicables à votre application (certaines d'entre elles peuvent également donner lieu à des mises à jour des règles).

Type d'application / Cas d'utilisation

Catégorie

Domaine

Conseils

Exigences générales de référence (Android et OpenXR)

Confidentialité et sécurité

Connexion au compte (première expérience utilisateur)

Si votre application utilise un système de connexion, présentez clairement les identifiants de connexion de l'utilisateur (par exemple, son nom d'utilisateur) après l'authentification. Cela renforce la confiance en confirmant le compte actif. De plus, incluez un menu ou une page de paramètres facilement accessible qui permet aux utilisateurs de consulter et de gérer les informations de leur compte à tout moment.

Sécurité et confort

Effet de flash

Pour assurer la sécurité et le bien-être de tous les utilisateurs, il est essentiel de minimiser le risque d'effets stroboscopiques dans votre application.

Évitez d'intégrer intentionnellement des éléments de conception susceptibles d'induire un effet stroboscopique.

1. Si un effet stroboscopique est absolument nécessaire, assurez-vous que la fréquence de clignotement est très faible (moins de trois clignotements par seconde) et que la zone clignotante est petite et subtile.

2. Envisagez de permettre aux utilisateurs de la désactiver dans les paramètres ou les préférences.

3. Afficher un message d'avertissement clair avant toute stroboscopie.

Éviter le mal des transports

Suivez ces consignes pour éviter de provoquer le mal des transports chez les utilisateurs:

  • Privilégiez le confort visuel en évitant les mouvements brusques de la caméra. Maintenez un cadre de référence cohérent pour éviter de désorienter l'utilisateur.
  • Ne faites pas pivoter la caméra au fil du temps. Si l'orientation de l'appareil photo change, il s'adapte automatiquement à la nouvelle orientation.

Entrée

Taille des cibles d'interaction

Les cibles interactives ont une taille minimale et une taille recommandée en fonction de la distance d'interaction prévue:

  • Taille minimale: DistanceEnM x 0,868 x 48 = M
  • Taille recommandée: DistanceInM x 0,868 x 56 = M ou plus

Lorsque vous utilisez le SDK Jetpack XR, nous vous recommandons une taille minimale de 48 x 48 dp, avec une taille de cible tactile de 56 x 56 dp ou plus.

Fonctionnalités techniques XR

Saisie manuelle

Votre application prend en charge la saisie naturelle des mains comme méthode d'interaction de référence pour Android XR, y compris les exigences de raycast des mains et la prise en charge des gestes pour les primitives d'entrée.

Votre application peut être jouée ou utilisée sans manette, mais vous pouvez l'améliorer en utilisant une manette si vous le souhaitez.

Boundary (anciennement Guardian)

Si votre application s'attend à ce que les utilisateurs se déplacent à partir de leur point de départ (au lancement de l'application) dans leur espace physique, elle demande un passthrough ou déclare PROPERTY_ACTIVITY_XR_BOUNDARY_TYPE_RECOMMENDED = XR_BOUNDARY_TYPE_LARGE dans le fichier manifeste.

Si votre application utilise XR_BOUNDARY_TYPE_LARGE, elle est entièrement jouable sans que la limite ne s'affiche (dans un rayon de 2 m. Remarque : la transparence de la limite commence à s'afficher à un rayon de 1, 5 m).

Performances

Affichage

Votre application effectue le rendu de chaque frame entre 11,1 ms (90 Hz) et 13,8 ms (72 Hz).

Résolution

Votre application présente une résolution d'au moins 2 364 x 2 880 par œil.

Temps de démarrage de l'application

Les utilisateurs veulent pouvoir interagir avec votre application ou votre jeu le plus rapidement possible. La définition d'un bon temps de démarrage ou de chargement varie selon la catégorie, mais en règle générale, nous vous recommandons de réduire le temps entre le lancement et la première interaction.

Consultez les durées cibles ci-dessous:

  • Démarrage à froid moyen: moins de 2 secondes
  • Démarrage tiède moyen: moins d'une seconde

Pour en savoir plus, consultez la section Temps de démarrage de l'application.

ANR

Votre application ne plante pas et ne bloque pas le thread UI, ce qui entraîne des erreurs ANR ("Android Not Responding").

Votre application affiche moins d'une erreur ANR dans 99,5% des sessions quotidiennes.

Votre application utilise le rapport pré-lancement de Google Play pour identifier les problèmes de stabilité potentiels. Après le déploiement, consultez la page Android Vitals dans la Google Play Console.

Taux de plantages

Ne consommez pas de ressources système excessives qui affectent le reste du système et les autres applications, en maintenant un taux de plantage d'environ 1 %.

Étalonnage de l'application Android (différenciation XR)

Visuel et expérience utilisateur

XR de base

Votre application implémente au moins une fonctionnalité ou un contenu spécifique à la RA/XR pour améliorer l'expérience utilisateur. Il peut s'agir d'un orbiteur, d'un ou de plusieurs panneaux spatiaux, d'environnements ou d'objets 3D.

Panneaux spatiaux

Lorsque vous effectuez plusieurs tâches à la fois (multitâche) avec des panneaux, créez des panneaux spatiaux distincts. Par exemple, vous pouvez créer des panneaux spatiaux distincts pour les fenêtres de chat et les listes.

Environnements

Lorsque vous affichez un environnement virtuel, la luminosité peut être gênante et fatigante. Votre application présente une gamme tonale sûre, sans pics de luminosité qui entrent en conflit avec l'interface utilisateur ou qui pourraient entraîner une fatigue chez l'utilisateur. L'interface utilisateur est lisible dans toutes les directions, en particulier dans la bande horizontale médiane du regard de l'utilisateur. (Règles détaillées à lier ultérieurement)

Passer du mode d'affichage restreint (HSM) au mode d'affichage complet (FSM)

Lorsque vous redirigez les utilisateurs vers l'espace plein, votre application dispose d'un point d'entrée permettant aux utilisateurs de passer rapidement de l'espace d'accueil à l'espace plein. Utilisez une icône ou un libellé, et placez le bouton à un endroit facile d'accès.

Panneaux spatiaux

Placez les menus, les composants et les commandes dans un panneau ou un orbiteur dédié. N'incluez pas ces composants dans le panneau de montage principal.

Défilement du menu / de la liste

Votre application met à jour les interactions de défilement (en particulier via des carrousels ou des listes verticales) pour ajouter des effets physiques ou de mouvement. Par exemple, le défilement intègre de l'élan, ce qui fait que le contenu des carrousels et des listes continue de bouger brièvement après une interaction de l'utilisateur avant de s'arrêter progressivement (au lieu de s'arrêter exactement lorsque l'utilisateur cesse de saisir des données).

Fonctionnalités vidéo / multimédias

Visuel et expérience utilisateur

Lecteur spatial (Android uniquement)

Votre application permet aux utilisateurs de regarder du contenu en plein écran.

Supprimez les commandes de lecture d'une superposition au-dessus du contenu et placez-les dans un panneau ou un orbiteur dédié.

Pour les panneaux avec lecture vidéo, définissez le format pour supprimer le letterboxing.

Son spatial

Envisagez de prendre en charge le son spatial, y compris l'audio verrouillé par panneau ou le son surround.

Visionnage simultané de vidéos

Si votre application prend en charge plusieurs flux vidéo simultanés, l'interface utilisateur doit indiquer clairement les informations suivantes:

  • Flux vidéo fournissant une sortie audio
  • Commandes de lecture ayant un impact sur les flux vidéo

Environnement

Lorsque vous lisez du contenu en mode Full Space, votre application permet aux utilisateurs d'atténuer le passthrough ou de sélectionner des environnements virtuels.