Diretrizes de qualidade de apps para Android XR

Definições de nível de compatibilidade

Para garantir que seu app ofereça uma ótima experiência do usuário em dispositivos Android XR, consulte as listas de verificação e os testes de compatibilidade a seguir.

As listas de verificação e os testes definem um conjunto abrangente de requisitos de qualidade para a maioria dos tipos de apps Android.

App para dispositivos móveis compatível com o Android XR

Um app para dispositivos móveis compatível com o Android XR representa um app para dispositivos móveis que não foi modificado para se adaptar a uma tela grande ou qualquer outro formato. Esse tipo de app é automaticamente compatível com o Android XR, desde que não exija recursos sem suporte, como telefonia. Os usuários podem concluir fluxos de tarefas críticos, mas com uma experiência do usuário menos otimizada do que um app diferenciado do Android XR.

Esse tipo de app é executado em tela cheia em um painel no ambiente do usuário, mas o layout pode não ser ideal em tamanhos maiores. Os apps que especificam tamanhos compactos no manifesto aparecem de acordo com isso. O app não é executado no modo de compatibilidade e, portanto, não tem efeito letterbox. O app tem uma experiência funcional das principais modalidades de entrada fornecidas pelo Android XR (rastreamento ocular + gestos ou mãos raycast) e suporte básico a dispositivos de entrada externa, incluindo teclado, mouse, trackpad e controles de jogos. Ele pode ou não ser redimensionável.

Os apps para dispositivos móveis compatíveis com o Android XR são ativados automaticamente e ficam disponíveis na Google Play Store. Um app que não é compatível devido a requisitos de recursos sem suporte não pode ser instalado pela Play Store.

App para telas grandes compatível com o Android XR

Um app de tela grande compatível com o Android XR representa um app Nível 1 ou Nível 2 para telas grandes que implementou otimizações de layout para todos os tamanhos de tela e configurações de dispositivo (por exemplo, telas grandes além de dispositivos móveis), além de oferecer suporte aprimorado a dispositivos de entrada externa e multitarefas. Os apps para telas grandes compatíveis com o Android XR são ativados automaticamente e ficam disponíveis na Play Store.

Um app de tela grande compatível com o Android XR é executado em tela cheia em um painel espacial no ambiente do usuário com 1024 dp × 720 dp. Os usuários poderão interagir com o app de forma natural usando os olhos e as mãos, mas o app será muito semelhante ao app de tela grande.

App diferenciado do Android XR

Um app diferenciado do Android XR tem uma experiência do usuário projetada explicitamente para XR e implementa recursos que só são oferecidos no XR. Você pode aproveitar ao máximo os recursos do Android XR e diferenciar as experiências do seu app adicionando recursos de XR (por exemplo, painéis espaciais) e conteúdo de XR (por exemplo, vídeo 3D) aos seus aplicativos desenvolvendo com o SDK do Android Jetpack XR, o Unity ou o OpenXR.

É possível usar o SDK do Jetpack XR para fornecer recursos específicos de XR, incluindo painéis espaciais, ambientes, modelos 3D, áudio espacial, vídeo 3D / espacial / fotos, âncoras e outras interfaces espaciais, como orbitadores.

Para ser considerado um app diferenciado do Android XR, ele precisa implementar pelo menos um recurso ou conteúdo específico do XR. Para alguns casos de uso, pode haver mais recursos e requisitos de conteúdo. Confira os detalhes a seguir.

Todos os apps criados com o Unity ou o OpenXR são considerados diferenciados. Os apps criados com o Unity ou o OpenXR precisam atender a métricas de qualidade e requisitos mínimos para serem considerados apps diferenciados do Android XR. Por exemplo, um app com baixa taxa de frames, falhas ou outras experiências negativas do usuário não se qualifica.

Lista de verificação de compatibilidade do Android XR

Essas listas de verificação de compatibilidade definem critérios para ajudar a avaliar o nível de suporte que o app oferece para XR. Os níveis de suporte incluem:

App para dispositivos móveis compatível com o Android XR

Seu app precisa atender aos requisitos de qualidade.

O app também precisa obedecer a todas as diretrizes de acessibilidade aplicáveis para outros formatos, como smartphones e tablets (por exemplo, contraste de cores).

App para telas grandes compatível com o Android XR

Qualquer app nível 1 ou nível 2 para telas grandes é considerado compatível com o Android XR. As diretrizes de qualidade de apps para telas grandes oferecem uma abordagem estruturada para garantir uma ótima experiência no Android XR, mas considerações de estado do dispositivo, como rotação ou dobrar/desdobrar, não são necessárias. Da mesma forma, o Android XR não inclui suporte à stylus.

App diferenciado para Android XR

Como os apps diferenciados do Android XR são altamente diferenciados, alguns dos recursos listados são aplicáveis apenas a tipos específicos de apps. Escolha os recursos adequados para seu aplicativo. Os apps Android também precisam estar em conformidade com as Diretrizes para telas grandes / dispositivos móveis Android. Confira os requisitos adequados para seu app. Alguns deles podem se transformar em possíveis atualizações de políticas.

Tipo de app / caso de uso

Categorias

Área

Orientação

Requisito de referência geral (Android e OpenXR)

Privacidade e segurança

Login na conta (UX pela primeira vez)

Se o app usa um sistema de login, apresente claramente as credenciais de login do usuário (por exemplo, as credenciais de nome de usuário) após a autenticação. Isso aumenta a confiança ao confirmar a conta ativa. Além disso, incorpore um menu ou página de configurações de fácil acesso para que os usuários possam consultar e gerenciar as informações da conta a qualquer momento.

Segurança e conforto

Efeito estroboscópico

Para garantir a segurança e o bem-estar de todos os usuários, é essencial minimizar o risco de efeitos de strobing no seu aplicativo.

Evite incorporar intencionalmente elementos de design que possam induzir o efeito estroboscópio.

1. Se o efeito estroboscópico for absolutamente necessário, verifique se a taxa de piscar é muito baixa (abaixo de 3 piscadas por segundo) e se a área de piscar é pequena e sutil.

2. Considere a possibilidade de desativá-lo nas configurações ou preferências.

3. Mostrar uma mensagem de aviso clara antes que qualquer efeito estroboscópico ocorra.

Como evitar o enjoo

Siga estas diretrizes para evitar o enjoo de movimento nos usuários:

  • Priorize o conforto visual evitando movimentos bruscos da câmera. Mantenha um referencial consistente para evitar a desorientação do usuário.
  • Não gire a câmera ao longo do tempo. Se a direção da câmera mudar, ela vai se ajustar à nova orientação.

Input

Tamanho das áreas de interação

As áreas interativas têm um tamanho mínimo e um tamanho recomendado com base na distância de interação pretendida:

  • Tamanho mínimo: DistanceInM x 0,868 x 48 = M
  • Tamanho recomendado: DistanceInM x 0,868 x 56 = M ou maior

Ao usar o SDK Jetpack XR, recomendamos um tamanho mínimo de 48 x 48 dp, com um tamanho de área de toque recomendado de 56 x 56 dp ou maior.

Funcionalidade técnica de XR

Entrada de mão

O app oferece suporte à entrada natural com as mãos como um método de interação de referência para o Android XR, incluindo requisitos de raycast com a mão e suporte a gestos para primitivas de entrada.

O app pode ser jogado ou usado sem a necessidade de controles, mas pode ser aprimorado com o uso deles, se você quiser.

Boundary (antigo Guardian)

Se o app espera que os usuários se movam do ponto inicial (na inicialização do app) pelo espaço físico, ele solicita a transmissão ou declara PROPERTY_ACTIVITY_XR_BOUNDARY_TYPE_RECOMMENDED = XR_BOUNDARY_TYPE_LARGE no manifesto.

Se o app usar XR_BOUNDARY_TYPE_LARGE, ele poderá ser totalmente reproduzido sem que o limite seja mostrado (dentro de um raio de 2 m. Observe que a passagem de limite começa a desaparecer em um raio de 1, 5 m).

Desempenho

Renderização

O app renderiza cada frame entre <11,1ms (90 Hz) e <13,8ms (72 Hz).

Resolução

O app tem uma resolução de pelo menos 2.364 x 2.880 por olho.

Tempo de inicialização do app

Os usuários querem interagir com seu app ou jogo o mais rápido possível. A definição de um bom tempo de inicialização ou carregamento varia de acordo com a categoria, mas, como princípio geral, recomendamos minimizar o tempo entre o lançamento e a primeira interação.

Confira as durações de destino abaixo:

  • Média de inicialização a frio: menos de 2 segundos
  • Média de inicialização com estado salvo: menos de 1 segundo

Para mais detalhes, consulte Tempo de inicialização do app.

ANRs

O app não falha nem bloqueia a linha de execução de interface, causando erros ANR ("O Android não está respondendo").

Seu app tem <1 ANR em 99,5% das sessões diárias.

O app usa o relatório de pré-lançamento do Google Play para identificar possíveis problemas de estabilidade. Após a implantação, preste atenção à página "Android vitals" no Google Play Console.

Taxa de falhas

Não consuma recursos excessivos do sistema que afetem o restante do sistema e outros apps, mantendo uma taxa de falhas de aproximadamente 1%.

Valor de referência do app Android (diferenciado por XR)

Experiência visual e do usuário

XR básico

O app implementa pelo menos um recurso ou conteúdo específico de XR para melhorar a experiência do usuário. Isso pode incluir um orbitador, um ou mais painéis espaciais, ambientes ou objetos 3D.

Painéis espaciais

Ao realizar várias tarefas ao mesmo tempo com painéis, crie painéis espaciais separados. Por exemplo, você pode criar painéis espaciais separados para janelas e listas de chat.

Ambientes

Ao mostrar um ambiente virtual, o brilho pode distrair e cansar. O app apresenta uma faixa tonal segura sem picos de brilho que conflitam com a interface ou podem causar fadiga no usuário. A interface é legível em todas as direções, especialmente na faixa horizontal do meio do olhar do usuário. (As diretrizes detalhadas serão vinculadas no futuro)

Transição entre o espaço compacto (HSM) e o espaço ampliado (FSM)

Ao levar os usuários ao espaço completo, seu app tem um ponto de entrada para que eles façam a transição rapidamente entre o espaço principal e o espaço completo. Use um ícone ou rótulo e coloque o botão em um local de fácil acesso.

Painéis espaciais

Coloque menus, recursos e controles em um painel ou orbitador dedicado. Não inclua esses componentes no painel de edição principal.

Rolagem de menu / lista

O app atualiza as interações de rolagem (principalmente em carrosséis ou listas verticais) para ter física ou impulso. Por exemplo, a rolagem incorpora o momentum, fazendo com que o conteúdo em carrosséis e listas continue se movendo brevemente após uma interação do usuário antes de parar gradualmente, em vez de parar exatamente quando o usuário para de inserir dados.

Funcionalidade de vídeo / mídia

Experiência visual e do usuário

Spatial Player (somente Android)

O app permite que os usuários assistam conteúdo em tela cheia.

Remova os controles de reprodução de uma sobreposição do conteúdo e coloque-os em um painel ou orbitador dedicado.

Para painéis com reprodução de vídeo, defina a proporção para remover o efeito letterbox.

Áudio espacial

Considere oferecer suporte a áudio espacial, incluindo áudio com painel bloqueado ou som surround.

Visualização simultânea de vídeos

Se o app for compatível com várias transmissões de vídeo simultâneas, a interface do usuário vai mostrar claramente as seguintes informações:

  • Quais streams de vídeo estão fornecendo saída de áudio
  • Quais controles de reprodução afetam quais transmissões de vídeo

Ambiente

Ao reproduzir conteúdo no espaço total, o app permite que os usuários diminuam o brilho do passthrough ou selecionem ambientes virtuais.