호환성 등급 정의
앱이 Android XR 기기에서 우수한 사용자 환경을 제공하려면 다음 호환성 체크리스트와 테스트를 검토하세요.
체크리스트와 테스트는 대부분의 Android 앱 유형에 관한 포괄적인 품질 요구사항을 정의합니다.
Android XR 호환 모바일 앱
Android XR 호환 모바일 앱은 대형 화면이나 기타 폼 팩터에 맞게 수정되지 않은 기존 모바일 앱을 나타냅니다. 이 유형의 앱은 전화 통신과 같이 지원되지 않는 기능이 필요하지 않는 한 Android XR과 자동으로 호환됩니다. 사용자가 중요한 작업 흐름을 완료할 수 있지만 Android XR 차별화된 앱보다 최적의 사용자 환경은 제공되지 않습니다.
이 유형의 앱은 사용자 환경의 패널에서 전체 화면으로 실행되지만, 큰 크기에서는 레이아웃이 이상적이지 않을 수 있습니다. 매니페스트에서 소형 크기를 지정하는 앱은 그에 따라 표시됩니다. 앱이 호환성 모드로 실행되지 않으므로 레터박스 처리되지 않습니다. 앱은 Android XR에서 제공하는 핵심 입력 모달리티 (시선 추적 + 동작 또는 광선 추적 손)의 기능적 경험과 키보드, 마우스, 트랙패드, 게임 컨트롤러를 비롯한 외부 입력 장치의 기본 지원을 제공합니다. 크기를 조절할 수 있을 수도 있고 없을 수도 있습니다.
Android XR 호환 모바일 앱은 자동으로 선택되며 Google Play 스토어에서 사용할 수 있습니다. 지원되지 않는 기능 요구사항으로 인해 호환되지 않는 앱은 Play 스토어를 통해 설치할 수 없습니다.
Android XR 호환 대형 화면 앱
Android XR 호환 대형 화면 앱은 모든 화면 크기 및 기기 구성 (예: 모바일 외 대형 화면)에 맞게 레이아웃 최적화를 구현하고 외부 입력 장치 및 멀티태스킹에 관한 고급 지원을 제공하는 대형 화면 1등급 또는 2등급 앱을 나타냅니다. Android XR 호환 대형 화면 앱은 자동으로 선택되며 Play 스토어에서 사용할 수 있습니다.
Android XR 호환 대형 화면 앱은 사용자 환경의 공간 패널에서 1024dp × 720dp로 전체 화면으로 실행됩니다. 사용자는 눈과 손을 사용하여 자연스럽게 앱과 상호작용할 수 있지만 그 외에는 대형 화면 앱과 매우 유사합니다.
Android XR 차별화된 앱
Android XR 차별화 앱은 XR용으로 명시적으로 설계된 사용자 환경을 제공하며 XR에서만 제공되는 기능을 구현합니다. Android Jetpack XR SDK, Unity 또는 OpenXR로 개발하여 XR 기능 (예: 공간 패널)을 추가하고 XR 콘텐츠 (예: 3D 동영상)를 애플리케이션에 추가하면 Android XR 기능을 최대한 활용하고 앱 환경을 차별화할 수 있습니다.
Jetpack XR SDK를 사용하여 공간 패널, 환경, 3D 모델, 공간 오디오, 3D / 공간 동영상 / 사진, 앵커, 오비터와 같은 기타 공간 UI를 비롯한 XR 관련 기능을 제공할 수 있습니다.
Android XR 차별화 앱으로 간주되려면 앱이 하나 이상의 XR 관련 기능 또는 XR 관련 콘텐츠를 구현해야 합니다. 특정 사용 사례의 경우 더 많은 기능 및 콘텐츠 요구사항이 있을 수 있습니다. 아래 세부정보를 참조하세요.
Unity 또는 OpenXR로 빌드된 모든 앱은 차별화된 것으로 간주됩니다. Unity 또는 OpenXR로 빌드된 앱이 Android XR 차별화 앱으로 간주되려면 품질 측정항목과 최소 요구사항을 충족해야 합니다. 예를 들어 프레임 속도가 낮거나, 비정상 종료가 발생하거나, 기타 부정적인 사용자 환경이 있는 앱은 자격 요건을 충족하지 않습니다.
Android XR 호환성 체크리스트
이 호환성 체크리스트는 앱이 XR에 제공하는 지원 수준을 평가하는 데 도움이 되는 기준을 정의합니다. 지원 수준은 다음과 같습니다.
Android XR 호환 모바일 앱
앱이 핵심 앱 품질 요구사항을 충족해야 합니다.
앱은 휴대전화, 태블릿과 같은 다른 폼 팩터에 적용되는 모든 접근성 가이드라인 (예: 색상 대비)도 준수해야 합니다.
Android XR 호환 대형 화면 앱
대형 화면 Tier 1 또는 Tier 2 앱은 Android XR 호환 대형 화면 앱으로 간주됩니다. 대형 화면 앱 품질 가이드라인은 Android XR에서 우수한 환경을 보장하는 구조화된 접근 방식을 제공하지만 회전이나 접기/펼치기와 같은 기기 상태 고려사항은 필요하지 않습니다. 마찬가지로 Android XR에는 스타일러스 지원이 포함되지 않습니다.
Android XR 차별화 앱
Android XR 차별화 앱은 크게 차별화되므로 나열된 기능 중 일부는 특정 유형의 앱에만 적용할 수 있습니다. 애플리케이션에 적합한 기능을 선택합니다. Android 앱은 대형 화면 / 모바일 Android 가이드라인도 준수해야 합니다. 애플리케이션에 적합한 요구사항을 확인하세요 (이 중 일부는 잠재적인 정책 업데이트로 이어질 수도 있음).
앱 유형 / 사용 사례 |
카테고리 |
영역 |
안내 |
---|---|---|---|
일반 기준 요구사항 (Android 및 OpenXR) |
개인 정보 보호 및 보안 |
계정 로그인 (첫 번째 UX) |
앱에서 로그인 시스템을 사용하는 경우 인증이 완료된 후 사용자의 로그인 사용자 인증 정보 (예: 사용자 이름 사용자 인증 정보)를 명확하게 표시합니다. 이렇게 하면 활성 계정을 확인하여 신뢰를 조성할 수 있습니다. 또한 사용자가 언제든지 계정 정보를 확인하고 관리할 수 있는 쉽게 액세스할 수 있는 메뉴 또는 설정 페이지를 통합하세요. |
안전 및 편안함 |
섬광 효과 |
모든 사용자의 안전과 웰빙을 보장하려면 애플리케이션 내에서 스트로빙 효과의 위험을 최소화하는 것이 중요합니다. 스트로빙을 유발할 수 있는 디자인 요소를 의도적으로 통합하지 마세요. 1. 섬광 효과가 반드시 필요한 경우 깜박임 속도가 매우 낮고 (초당 3회 미만) 깜박임 영역이 작고 미묘해야 합니다. 2. 설정이나 환경설정을 통해 사용 중지하는 기능을 제공하는 것이 좋습니다. 3. 스트로빙이 발생하기 전에 명확한 경고 메시지를 표시합니다. |
|
멀미 방지 |
사용자의 멀미를 유발하지 않으려면 다음 가이드라인을 따르세요.
|
||
입력 |
상호작용 타겟 크기 |
상호작용 가능한 타겟에는 의도된 상호작용 거리에 따라 최소 크기와 권장 크기가 있습니다.
Jetpack XR SDK를 사용하는 경우 최소 크기는 48x48dp이며 탭 타겟 크기는 56x56dp 이상이 권장됩니다. |
|
XR 기술 기능 |
손 입력 |
앱이 손 광선 추적 요구사항과 입력 기본 요소의 동작 지원을 비롯한 자연스러운 손 입력 기능을 Android XR의 기준 상호작용 방식으로 지원합니다. 앱은 컨트롤러 없이 플레이하거나 사용할 수 있지만 원하는 경우 컨트롤러를 사용하여 앱을 보강할 수 있습니다. |
|
Boundary (이전 명칭: Guardian) |
앱이 사용자가 앱 실행 시 시작 지점에서 실제 공간으로 이동할 것으로 예상하는 경우 앱은 패스스루를 요청하거나 매니페스트에서 앱에서 |
||
성능 |
렌더링 |
앱이 각 프레임을 <11.1ms (90Hz)와 <13.8ms (72Hz) 사이에 렌더링합니다. |
|
해상도 |
앱의 해상도가 눈당 1856x2160 이상입니다. |
||
앱 시작 시간 |
사용자는 최대한 빨리 앱 또는 게임과 상호작용할 수 있기를 원합니다. 좋은 시작 또는 로드 시간의 정의는 카테고리마다 다르지만, 일반적으로 실행과 첫 번째 상호작용 사이의 시간을 최소화하는 것이 좋습니다. 아래의 타겟 기간을 참고하세요.
자세한 내용은 앱 시작 시간을 참고하세요. |
||
ANR |
앱이 비정상 종료되거나 ANR ('Android 응답 없음') 오류를 일으키는 UI 스레드를 차단하지 않습니다. 앱의 99.5% 일일 세션에서 ANR이 1개 미만입니다. 앱에서 Google Play의 사전 출시 보고서를 사용하여 잠재적인 안정성 문제를 식별합니다. 배포 후에는 Google Play Console의 Android Vitals 페이지를 주의 깊게 살펴보세요. |
||
비정상 종료 발생률 |
나머지 시스템과 다른 앱에 영향을 미치는 과도한 시스템 리소스를 사용하지 않고 비정상 종료율을 약 1% 로 유지합니다. |
||
Android 앱 기준 (XR 차별화) |
시각적 요소 및 사용자 환경 |
기본 XR |
앱이 사용자 환경을 개선하기 위해 하나 이상의 XR 관련 기능 또는 XR 관련 콘텐츠를 구현합니다. 여기에는 오비터, 하나 이상의 공간 패널, 환경 또는 3D 객체가 포함될 수 있습니다. |
공간 패널 |
패널을 사용하여 멀티태스킹 (즉, 한 번에 두 개 이상의 작업을 완료)할 때는 별도의 공간 패널을 만드세요. 예를 들어 채팅 창과 목록에 별도의 공간 패널을 만듭니다. |
||
환경 |
가상 환경을 표시할 때 밝기가 방해가 되고 피로감을 줄 수 있습니다. 앱이 UI와 충돌하거나 사용자 피로를 유발할 수 있는 밝기 급증 없이 안전한 색조 범위를 제공합니다. UI는 모든 방향에서 특히 사용자의 시선이 향하는 중간 수평 밴드 내에서 읽기 쉽습니다. (자세한 가이드라인은 추후 링크로 제공될 예정) |
||
홈 스페이스 (HSM)와 풀 스페이스 (FSM) 간 전환 |
사용자를 전체 공간으로 안내할 때 앱에는 사용자가 홈 공간과 전체 공간 간에 빠르게 전환할 수 있는 진입점이 있습니다. 아이콘이나 라벨을 사용하고 버튼을 쉽게 액세스할 수 있는 위치에 배치합니다. |
||
공간 패널 |
전용 패널이나 오비터에 메뉴, 애셋, 컨트롤을 배치합니다. 이러한 구성요소를 기본 수정 패널에 포함하지 마세요. |
||
메뉴 / 목록 스크롤 |
앱이 스크롤 상호작용 (특히 캐러셀 또는 세로 목록을 통해)을 업데이트하여 물리학 또는 모멘텀을 갖습니다. 예를 들어 스크롤에는 모멘텀이 통합되어 사용자가 입력을 중지한 정확한 시점에 중지되는 대신 사용자 상호작용 후 잠시 동안 캐러셀과 목록의 콘텐츠가 계속 이동하다가 점차 중지됩니다. |
||
동영상 / 미디어 기능 |
시각적 요소 및 사용자 환경 |
공간 플레이어 (Android만 해당) |
앱에서 사용자가 전체 공간에서 콘텐츠를 시청할 수 있습니다. 콘텐츠 위에 있는 오버레이에서 재생 컨트롤을 삭제하고 대신 전용 패널이나 오비터에 배치합니다. 동영상 재생이 있는 패널의 경우 레터박스를 삭제하도록 가로세로 비율을 설정합니다. |
공간 음향 |
패널 잠금 오디오 또는 서라운드 사운드를 포함한 공간 음향을 지원하는 것이 좋습니다. |
||
동시 동영상 시청 |
앱이 여러 동시 동영상 스트림을 지원하는 경우 사용자 인터페이스는 다음 정보를 명확하게 표시합니다.
|
||
환경 |
전체 공간에서 콘텐츠를 재생할 때 앱은 사용자가 패스스루를 어둡게 하거나 가상 환경을 선택할 수 있도록 지원합니다. |
OpenXR™ 및 OpenXR 로고는 The Khronos Group Inc. 소유의 상표이며 중국, 유럽 연합, 일본, 영국에 상표로 등록되어 있습니다.