Lineamientos de calidad de las apps para Android XR

Definiciones de los niveles de compatibilidad

Para asegurarte de que tu app brinde una excelente experiencia del usuario en dispositivos Android XR, revisa las siguientes listas de tareas y pruebas de compatibilidad.

Las listas de tareas y pruebas definen un conjunto integral de requisitos de calidad para la mayoría de los tipos de apps para Android.

App para dispositivos móviles compatible con Android XR

Una app para dispositivos móviles compatible con Android XR representa una app para dispositivos móviles existente que no se modificó para adaptarse a una pantalla grande ni a ningún otro factor de forma. Este tipo de app es compatible automáticamente con Android XR, siempre y cuando no requiera ninguna función que no sea compatible, como la telefonía. Los usuarios pueden completar flujos de tareas críticos, pero con una experiencia del usuario menos óptima que una app diferenciada para Android XR.

Este tipo de app se ejecuta en pantalla completa en un panel del entorno del usuario, pero su diseño podría no ser ideal en tamaños más grandes. Las apps que especifican tamaños compactos en el manifiesto aparecen según corresponda. La app no se ejecuta en el modo de compatibilidad y, por lo tanto, no tiene formato letterbox. La app tiene una experiencia funcional de las modalidades de entrada principales que proporciona Android XR (seguimiento ocular + gestos o manos de raycast) y compatibilidad básica con dispositivos de entrada externos, como teclado, mouse, panel táctil y controles de juegos. Es posible que pueda cambiar de tamaño o no.

Las apps para dispositivos móviles compatibles con Android XR se habilitan automáticamente y están disponibles en Google Play Store. Una app que no es compatible debido a requisitos de funciones no compatibles no se puede instalar a través de Play Store.

App de pantalla grande compatible con Android XR

Una app para pantalla grande compatible con Android XR representa una app para pantalla grande de nivel 1 o nivel 2 que implementó optimizaciones de diseño para todos los tamaños de pantalla y configuraciones de dispositivos (por ejemplo, pantallas grandes además de dispositivos móviles), junto con compatibilidad mejorada para dispositivos de entrada externos y multitarea. Las apps de pantalla grande compatibles con Android XR se habilitan automáticamente y están disponibles en Play Store.

Una app de pantalla grande compatible con Android XR se ejecuta en pantalla completa en un panel espacial en el entorno del usuario a 1,024 dp × 720 dp. Los usuarios podrán interactuar con la app de forma natural con los ojos y las manos, pero, en términos generales, será muy similar a la app para pantallas grandes.

App diferenciada para Android XR

Una app diferenciada para Android XR tiene una experiencia del usuario diseñada explícitamente para XR y, además, implementa funciones que solo se ofrecen en XR. Puedes aprovechar al máximo las funciones de Android XR y diferenciar las experiencias de tu app agregando funciones de XR (p.ej., paneles espaciales) o contenido de XR (p.ej., video en 3D) a tus aplicaciones desarrollando con el SDK de Android Jetpack XR, Unity o OpenXR.

Puedes usar el SDK de Jetpack XR para proporcionar capacidades específicas de XR, como paneles espaciales, entornos, modelos 3D, audio espacial, videos o fotos 3D/espaciales, anclas y otras IU espaciales, como orbitadores.

Para que se considere una app diferenciada de XR para Android, esta debe implementar al menos una función o un contenido específicos para XR. En algunos casos de uso, es posible que existan más funciones y requisitos de contenido. (consulte los detalles que aparecen a continuación).

Todas las apps compiladas con Unity o OpenXR se consideran diferenciadas. Las apps compiladas con Unity o OpenXR deben cumplir con las métricas de calidad y los requisitos mínimos para considerarse una app diferenciada de Android XR. Por ejemplo, una app con una baja velocidad de fotogramas, fallas o alguna otra experiencia negativa del usuario no calificaría.

Lista de tareas de compatibilidad con Android XR

Estas listas de tareas de compatibilidad definen criterios para ayudarte a evaluar el nivel de compatibilidad que proporciona tu app a XR. Los niveles de compatibilidad incluyen los siguientes:

App para dispositivos móviles compatible con Android XR

Tu app debe cumplir con los requisitos de calidad de la app principal.

Tu app también debe cumplir con todos los lineamientos de accesibilidad aplicables para otros factores de forma, como teléfonos y tablets (por ejemplo, contraste de color).

App de pantalla grande compatible con Android XR

Cualquier app de pantalla grande de nivel 1 o nivel 2 se considera una app de pantalla grande compatible con Android XR. Los lineamientos de calidad de las apps para pantallas grandes ofrecen un enfoque estructurado para garantizar una excelente experiencia en Android XR, pero no se requieren consideraciones sobre el estado del dispositivo, como la rotación o el plegado o despliegue. Del mismo modo, Android XR no incluye compatibilidad con la pluma stylus.

App diferenciada para Android XR

Debido a que las apps diferenciadas para Android XR son muy diferenciadas, algunas de las capacidades enumeradas solo se aplican a tipos específicos de apps. Elige las funciones adecuadas para tu aplicación. Las apps para Android también deben cumplir con los Lineamientos de Android para pantallas grandes o dispositivos móviles. Consulta los requisitos adecuados para tu solicitud (algunos de ellos también pueden convertirse en posibles actualizaciones de políticas).

Tipo de app o caso de uso

Categoría

Área

Orientación

Requisito general de referencia (Android y OpenXR)

Privacidad y seguridad

Acceso a la cuenta (UX por primera vez)

Si tu app utiliza un sistema de acceso, presenta claramente las credenciales de acceso del usuario (por ejemplo, las credenciales de su nombre de usuario) después de una autenticación correcta. Esto fomenta la confianza, ya que confirma la cuenta activa. Además, incorpora un menú o una página de configuración de fácil acceso que permita a los usuarios ver y administrar la información de su cuenta en cualquier momento.

Seguridad y comodidad

Efecto estroboscópico

Para garantizar la seguridad y el bienestar de todos los usuarios, es fundamental minimizar el riesgo de efectos estroboscópicos en tu aplicación.

Evita incorporar intencionalmente elementos de diseño que puedan inducir el efecto estroboscópico.

1. Si el efecto estroboscópico es absolutamente necesario, asegúrate de que la frecuencia de parpadeo sea muy baja (menos de 3 parpadeos por segundo) y de que el área parpadeante sea pequeña y sutil.

2. Considera proporcionar la posibilidad de inhabilitarlo a través de la configuración o las preferencias.

3. Muestra un mensaje de advertencia claro antes de que se produzca cualquier parpadeo.

Evita el mareo

Sigue estos lineamientos para evitar causar mareos en los usuarios:

  • Evita los movimientos bruscos de la cámara para priorizar la comodidad visual. Mantén un marco de referencia coherente para evitar desorientar al usuario.
  • No rotes la cámara con el tiempo. Si cambia la dirección de la cámara, esta se ajusta a la nueva orientación.

Entrada

Tamaño de los objetivos de interacción

Los objetivos interactivos tienen un tamaño mínimo y uno recomendado según la distancia de interacción prevista:

  • Tamaño mínimo: DistanceInM × 0.868 × 48 = M
  • Tamaño recomendado: DistanceInM × 0.868 × 56 = M o superior

Cuando usas el SDK de Jetpack XR, te recomendamos un tamaño mínimo de 48 x 48 dp, con un tamaño del objetivo táctil recomendado de 56 x 56 dp o superior.

Funcionalidad técnica de XR

Entrada manual

Tu app admite la entrada manual natural como método de interacción de referencia para Android XR, incluidos los requisitos de raycast de la mano y la compatibilidad con gestos para primitivas de entrada.

Tu app se puede jugar o usar de otra manera sin necesidad de controles, pero se puede mejorar con su uso si así lo deseas.

Boundary (anteriormente, Guardian)

Si tu app espera que los usuarios se muevan desde su punto de partida (al iniciar la app) por su espacio físico, solicita la transferencia o declara PROPERTY_ACTIVITY_XR_BOUNDARY_TYPE_RECOMMENDED = XR_BOUNDARY_TYPE_LARGE en el manifiesto.

Si tu app usa XR_BOUNDARY_TYPE_LARGE, se puede reproducir por completo sin que se muestre el límite (dentro de un radio de 2.0 m; ten en cuenta que la transferencia de límites comienza a atenuarse a un radio de 1.5 m).

Rendimiento

Renderización

Tu app renderiza cada fotograma entre menos de 11.1 ms (90 Hz) y menos de 13.8 ms (72 Hz).

Resolución

Tu app tiene una resolución de al menos 2364 × 2880 por ojo.

Tiempo de inicio de la app

Los usuarios quieren poder interactuar con tu app o juego lo más rápido posible. La definición de un buen tiempo de inicio o carga varía según la categoría, pero, como principio general, recomendamos minimizar el tiempo entre el inicio y la primera interacción.

Consulta las duraciones objetivo a continuación:

  • Inicio en frío promedio: Menos de 2 segundos
  • Inicio semicaliente promedio: Menos de 1 segundo

Para obtener más detalles, consulta Tiempo de inicio de la app.

ANR

Tu app no falla ni bloquea el subproceso de IU, lo que provoca errores de ANR ("Android no responde").

Tu app tiene menos de 1 error de ANR en el 99.5% de las sesiones diarias.

Tu app usa el informe previo al lanzamiento de Google Play para identificar posibles problemas de estabilidad. Después de la implementación, presta atención a la página de Android vitals en Google Play Console.

Tasa de fallas

No consumas recursos del sistema en exceso que afecten al resto del sistema y a otras apps, y mantén un porcentaje de fallas de alrededor del 1%.

Baseline de la app para Android (diferenciado por XR)

Experiencia visual y del usuario

XR básica

Tu app implementa al menos una función o un contenido específico de XR para mejorar la experiencia del usuario. Esto puede incluir un orbitador, uno o más paneles espaciales, entornos u objetos 3D.

Paneles espaciales

Cuando realices varias tareas a la vez (es decir, completes dos o más tareas a la vez) con paneles, crea paneles espaciales separados. Por ejemplo, crearías paneles espaciales independientes para las ventanas y las listas de chat.

Entornos

Cuando se muestra un entorno virtual, el brillo puede ser una distracción y causar fatiga. Tu app presenta un rango tonal seguro sin picos de brillo que entren en conflicto con la IU o que puedan causar fatiga en los usuarios. La IU es legible en todas las direcciones, especialmente dentro de la banda horizontal central del campo visual del usuario. (Se agregarán vínculos a los lineamientos detallados en el futuro)

Transición entre el espacio principal (HSM) y el espacio completo (FSM)

Cuando llevas a los usuarios al espacio completo, tu app tiene un punto de entrada para que realicen la transición rápidamente entre el espacio principal y el espacio completo. Usa un ícono o una etiqueta, y coloca el botón en una ubicación de fácil acceso.

Paneles espaciales

Coloca los menús, los recursos y los controles en un panel o un orbitador exclusivos. No incluyas estos componentes en el panel de edición principal.

Desplazamiento de menús o listas

Tu app actualiza las interacciones de desplazamiento (especialmente a través de carruseles o listas verticales) para tener física o impulso. Por ejemplo, el desplazamiento incorpora el momento, lo que hace que el contenido de los carruseles y las listas siga moviéndose brevemente después de una interacción del usuario antes de detenerse gradualmente (en lugar de detenerse exactamente cuando el usuario detiene la entrada).

Funcionalidad de video o contenido multimedia

Experiencia visual y del usuario

Reproductor espacial (solo para Android)

Tu app permite que los usuarios miren contenido en Full Space.

Quita los controles de reproducción de una superposición sobre el contenido y, en su lugar, colócalos en un panel o un orbitador exclusivos.

En el caso de los paneles con reproducción de video, establece la relación de aspecto para quitar el formato letterbox.

Audio espacial

Considera admitir audio espacial, incluido el audio bloqueado en el panel o el sonido envolvente.

Visualización de videos simultánea

Si tu app admite varias transmisiones de video simultáneas, la interfaz de usuario debe mostrar claramente la siguiente información:

  • Qué transmisiones de video proporcionan salida de audio
  • Qué controles de reproducción afectan a qué transmisiones de video

Entorno

Cuando se reproduce contenido en Full Space, la app permite que los usuarios atenúen la transferencia o seleccionen entornos virtuales.