Android XR 앱 품질 가이드라인

호환성 등급 정의

앱이 Android XR 기기에서 우수한 사용자 환경을 제공하도록 하려면 다음 호환성 체크리스트 및 테스트를 검토하세요.

체크리스트와 테스트는 대부분의 Android 앱 유형에 관한 포괄적인 품질 요구사항을 정의합니다.

Android XR 호환 모바일 앱

Android XR 호환 모바일 앱은 대형 화면이나 다른 폼 팩터에 맞게 수정되지 않은 기존 모바일 앱을 나타냅니다. 이 유형의 앱은 전화 통신과 같이 지원되지 않는 기능이 필요하지 않은 한 Android XR과 자동으로 호환됩니다. 사용자가 중요한 작업 흐름을 완료할 수 있지만 Android XR 차별화 앱보다 최적의 사용자 환경은 제공되지 않습니다.

이 유형의 앱은 사용자 환경의 패널에서 전체 화면으로 실행되지만 큰 크기에서는 레이아웃이 이상적이지 않을 수 있습니다. 매니페스트에서 소형 크기를 지정하는 앱은 그에 따라 표시됩니다. 앱이 호환성 모드로 실행되지 않으므로 레터박스 처리되지 않습니다. 앱은 Android XR에서 제공하는 핵심 입력 모달 (눈 추적 + 동작 또는 레이캐스트 손)의 기능적 환경을 제공하고 키보드, 마우스, 트랙패드, 게임 컨트롤러를 비롯한 외부 입력 장치를 기본적으로 지원합니다. 크기를 조절할 수 있는 경우도 있고 그렇지 않은 경우도 있습니다.

Android XR 호환 모바일 앱은 자동으로 선택되며 Google Play 스토어에서 사용할 수 있습니다. 지원되지 않는 기능 요구사항으로 인해 호환되지 않는 앱은 Play 스토어를 통해 설치할 수 없습니다.

Android XR 호환 대형 화면 앱

Android XR 호환 대형 화면 앱은 모든 화면 크기 및 기기 구성 (예: 모바일 외에도 대형 화면)에 맞게 레이아웃 최적화를 구현하고 외부 입력 장치 및 멀티태스킹에 관한 향상된 지원을 제공하는 대형 화면 Tier 1 또는 Tier 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. 스트로보 효과가 발생하기 전에 명확한 경고 메시지를 표시합니다.

멀미 방지

사용자에게 멀미를 유발하지 않도록 다음 가이드라인을 따르세요.

  • 갑작스러운 카메라 움직임을 피하여 시각적 편안함을 최우선으로 고려합니다. 사용자의 방향을 잃지 않도록 일관된 참조 프레임을 유지합니다.
  • 시간이 지남에 따라 카메라를 회전하지 마세요. 카메라 방향이 변경되면 카메라가 새 방향으로 스냅됩니다.

입력

상호작용 타겟 크기

상호작용이 가능한 타겟에는 의도된 상호작용 거리에 따라 최소 크기와 권장 크기가 있습니다.

  • 최소 크기: DistanceInM x 0.868 x 48 = M
  • 권장 크기: DistanceInM x 0.868 x 56 = M 이상

Jetpack XR SDK를 사용할 때는 최소 크기가 48x48dp이고 탭 영역 크기는 56x56dp 이상을 사용하는 것이 좋습니다.

XR 기술 기능

손 입력

앱이 손 레이캐스트 요구사항 및 입력 프리미티브의 동작 지원을 비롯하여 Android XR의 기준 상호작용 방법으로 자연스러운 손 입력을 지원합니다.

앱은 컨트롤러 없이 플레이하거나 사용할 수 있지만 원하는 경우 컨트롤러를 사용하여 기능을 확장할 수 있습니다.

Boundary (이전 명칭: Guardian)

앱에서 사용자가 앱 실행 시 시작 지점에서 실제 공간으로 이동할 것으로 예상하는 경우 패스스루를 요청하거나 매니페스트에서 PROPERTY_ACTIVITY_XR_BOUNDARY_TYPE_RECOMMENDED = XR_BOUNDARY_TYPE_LARGE를 선언합니다.

앱에서 XR_BOUNDARY_TYPE_LARGE를 사용하는 경우 경계가 표시되지 않아도 완전히 플레이할 수 있습니다 (반경 2.0m 이내, 경계 패스스루는 반경 1.5m에서 페이드 인되기 시작).

성능

렌더링

앱이 각 프레임을 11.1ms (90Hz) 미만과 13.8ms (72Hz) 미만으로 렌더링합니다.

해상도

앱의 해상도가 눈당 2364x2880 이상입니다.

앱 시작 시간

사용자는 앱 또는 게임과 최대한 빨리 상호작용할 수 있기를 원합니다. 적절한 시작 시간 또는 로드 시간의 정의는 카테고리에 따라 다르지만 일반적으로 실행과 첫 번째 상호작용 사이의 시간을 최소화하는 것이 좋습니다.

아래에서 타겟 시간대를 확인하세요.

  • 평균 콜드 스타트: 2초 미만
  • 평균 웜 스타트: 1초 미만

자세한 내용은 앱 시작 시간을 참고하세요.

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만 해당)

앱을 통해 사용자는 전체 스페이스에서 콘텐츠를 시청할 수 있습니다.

콘텐츠 위에 있는 오버레이에서 재생 컨트롤을 삭제하고 대신 전용 패널이나 오비터에 배치합니다.

동영상 재생이 있는 패널의 경우 가로세로 비율을 설정하여 레터박스를 삭제합니다.

공간 음향

패널 잠금 오디오 또는 서라운드 사운드를 비롯한 공간 음향을 지원해 보세요.

동시 동영상 시청

앱에서 여러 동영상 스트림을 동시에 지원하는 경우 사용자 인터페이스에 다음 정보가 명확하게 표시됩니다.

  • 오디오 출력을 제공하는 동영상 스트림
  • 어떤 재생 컨트롤이 어떤 동영상 스트림에 영향을 미치는지

환경

전체 공간에서 콘텐츠를 재생할 때 앱은 사용자가 패스스루를 어둡게 하거나 가상 환경을 선택하도록 허용합니다.