Consignes relatives à la qualité des applications Android XR

Définitions des niveaux de compatibilité

Pour vérifier que votre application offre une expérience utilisateur optimale sur les casques XR et les lunettes XR filaires, consultez 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'applications Android.

Application mobile compatible avec Android XR

Une application mobile compatible avec Android XR est 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 pas de fonctionnalités non compatibles, telles que la téléphonie. Les utilisateurs peuvent effectuer des tâches essentielles, mais l'expérience utilisateur est moins optimale que celle d'une application différenciée pour 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 sur les grands écrans. 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 du regard + geste ou mains raycast) et une compatibilité de base avec les périphériques d'entrée externes, y compris les claviers, les souris, les pavés tactiles et les manettes de jeu. Elle peut être redimensionnable ou non.

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 d'exigences de fonctionnalités non compatibles ne peut pas être installée via le Play Store.

Application pour grand écran compatible avec Android XR

Une application pour grand écran compatible avec Android XR est une application de grand écran de niveau 1 ou de niveau 2 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 appareils mobiles), ainsi qu'une compatibilité améliorée avec les périphériques d'entrée externes et le multitâche. Les applications pour grand écran compatibles avec Android XR sont automatiquement activées et disponibles sur le Play Store.

Une application pour 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 × 720 dp. Les utilisateurs pourront interagir naturellement avec l'application à l'aide de leurs yeux et de leurs mains, mais elle sera par ailleurs très similaire à l'application pour grand écran.

Application différenciée pour Android XR

Une application différenciée pour Android XR offre une expérience utilisateur explicitement conçue pour la XR et implémente des fonctionnalités qui ne sont proposées que sur la XR. Vous pouvez tirer pleinement parti des 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 du contenu 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 XR, y compris des panneaux spatiaux, des environnements, des modèles 3D, de l'audio spatial, des vidéos / photos 3D / spatiales, des ancres et d'autres interfaces utilisateur spatiales telles que les orbiteurs.

Pour être considérée comme une application différenciée pour Android XR, une application doit implémenter au moins une fonctionnalité ou un contenu spécifique à la XR. Pour certains cas d'utilisation, des exigences supplémentaires en matière de fonctionnalités et de contenu peuvent exister. 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 différenciées pour Android XR. Par exemple, une application avec une faible fréquence d'images, des plantages ou d'autres expériences utilisateur négatives ne serait pas éligible.

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 XR. Voici les différents niveaux de compatibilité :

Application mobile compatible avec Android XR

Votre application doit répondre aux exigences de base en matière de qualité des applications.

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

Application pour grand écran compatible avec Android XR

Toute application pour grand écran de niveau 1 ou de niveau 2 est considérée comme une application pour grand écran compatible avec Android XR. Les consignes relatives à la qualité des applications pour 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.

Application différenciée pour Android XR

Les applications différenciées pour Android XR é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 pour les grands écrans et les appareils mobiles Android. Consultez les exigences adaptées à votre application (certaines d'entre elles peuvent également devenir des mises à jour potentielles du règlement).

Type d'application / Cas d'utilisation

Catégorie

Domaine

Consignes

Exigence de base générale (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, intégrez un menu ou une page de paramètres facilement accessibles qui permettent aux utilisateurs de consulter et de gérer les informations de leur compte à tout moment.

Sécurité et confort

Effet de flash

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

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

1. Si l'effet de flash est absolument nécessaire, assurez-vous que le taux de clignotement est très faible (moins de trois flashs par seconde) et que la zone de clignotement est petite et subtile.

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

3. Affichez un message d'avertissement clair avant tout effet de flash.

É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 la direction de la caméra change, elle se fixe sur 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 : DistanceInM 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 de pression recommandée de 56 x 56 dp ou plus.

Fonctionnalité technique XR

Entrée manuelle

Votre application est compatible avec l'entrée manuelle naturelle comme méthode d'interaction de base pour Android XR, y compris les exigences de raycast manuel et la compatibilité gestuelle pour les primitives d'entrée.

Votre application est jouable ou utilisable sans manette, mais vous pouvez choisir de l'améliorer en utilisant des manettes.

Périmètre (anciennement Guardian)

Si votre application s'attend à ce que les utilisateurs se déplacent de leur point de départ (au lancement de l'application) dans leur espace physique, elle demande un passthrough ou déclare PROPERTY_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 le périmètre ne s'affiche (dans un rayon de 2,0 m ; notez que le passthrough du périmètre commence à s'estomper dans un rayon de 1,5 m).

Performances

Affichage

Votre application affiche chaque image entre < 11,1 ms (90 Hz) et < 13,8 ms (72 Hz).

Résolution

Votre application a une résolution d'au moins 1 856 x 2 160 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 principe général, nous vous recommandons de minimiser 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 à chaud moyen : moins de 1 seconde

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

ANR

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

Votre application présente 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, pensez à consulter la page Android Vitals dans la Google Play Console.

Taux de plantages

Ne consommez pas de ressources système excessives qui ont un impact sur le reste du système et d'autres applications, en maintenant un taux de plantages d'environ 1 %.

Base de l'application Android (différenciée pour la XR)

Visuel et expérience utilisateur

XR de base

Votre application implémente au moins une fonctionnalité ou un contenu spécifique à la XR pour améliorer l'expérience utilisateur. Cela peut inclure un orbiteur, un ou plusieurs panneaux spatiaux, des environnements ou des objets 3D.

Panneaux spatiaux

Lorsque vous effectuez plusieurs tâches à la fois 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 distrayante et fatigante. Votre application présente une plage de tonalités sûre sans pics de luminosité qui entrent en conflit avec l'interface utilisateur ou qui peuvent entraîner une fatigue de l'utilisateur. L'interface utilisateur est lisible dans toutes les directions, en particulier dans la bande horizontale centrale du regard de l'utilisateur. (Consignes détaillées à venir)

Transition entre l'espace d'accueil (HSM) et l'espace complet (FSM)

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

Panneaux spatiaux

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

Défilement des menus / listes

Votre application met à jour les interactions de défilement (en particulier via des carrousels ou des listes verticales) pour qu'elles aient une physique ou un élan. Par exemple, le défilement intègre un é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 arrête la saisie).

Fonctionnalité vidéo / média

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 plutôt 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 l'audio spatial, y compris l'audio verrouillé par panneau ou le son surround.

Visionnage simultané de vidéos

Si votre application est compatible avec plusieurs flux vidéo simultanés, l'interface utilisateur indique clairement les informations suivantes :

  • Flux vidéo qui fournissent une sortie audio
  • Commandes de lecture qui ont un impact sur les flux vidéo

Environnement

Lors de la lecture de contenu en plein écran, votre application permet aux utilisateurs d'atténuer le passthrough ou de sélectionner des environnements virtuels.


OpenXR™ et le logo OpenXR sont des marques commerciales appartenant à The Khronos Group Inc. et sont déposées en tant que marques commerciales en Chine, dans l'Union européenne, au Japon et au Royaume-Uni.