XR용 Jetpack Compose
최근 업데이트 | 안정화 버전 | 출시 후보 버전 | 베타 버전 | 알파 버전 |
---|---|---|---|---|
2024년 12월 12일 | - | - | - | 1.0.0-alpha01 |
종속 항목 선언
XR Compose의 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용은 Google Maven 저장소를 읽어보세요.
다음과 같이 앱 또는 모듈의 build.gradle
파일에 필요한 아티팩트의 종속 항목을 추가합니다.
Groovy
dependencies { implementation "androidx.xr.compose:compose:1.0.0-alpha01" // Use to write unit tests testImplementation "androidx.xr.compose:compose-testing:1.0.0-alpha01" }
Kotlin
dependencies { implementation("androidx.xr.compose:compose:1.0.0-alpha01") // Use to write unit tests testImplementation("androidx.xr.compose:compose-testing:1.0.0-alpha01") }
종속 항목에 관한 자세한 내용은 빌드 종속 항목 추가를 참고하세요.
의견
제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.
자세한 내용은 Issue Tracker 문서를 참고하세요.
버전 1.0
버전 1.0.0-alpha01
2024년 12월 12일
androidx.xr.compose:compose-*1.0.0-alpha01
이 출시되었습니다.
초기 출시의 기능
XR용 Jetpack Compose의 초기 개발자 출시입니다. 행 및 열과 같은 익숙한 Compose 개념을 사용하여 기존 2D 앱을 XR로 포팅하거나 새 XR 앱을 처음부터 만드는지와 관계없이 XR에서 공간 UI 레이아웃을 만듭니다. 이 라이브러리는 기존 2D Compose 또는 뷰 기반 UI를 공간 레이아웃에 배치할 수 있는 공간 패널 및 오리터와 같은 하위 공간 및 공간 컴포저블을 제공합니다. Volume 하위 공간 컴포저블을 도입합니다. 이 컴포저블을 사용하면 3D 모델과 같은 SceneCore 항목을 UI를 기준으로 배치할 수 있습니다. 개발자 가이드에서 자세히 알아보세요.
Subspace
: 이 컴포저블은 앱의 UI 계층 구조 내 어디에나 배치할 수 있으므로 파일 간에 컨텍스트를 잃지 않고 2D 및 공간 UI의 레이아웃을 유지할 수 있습니다. 이렇게 하면 전체 UI 트리를 통해 상태를 호이스팅하거나 앱을 재구성하지 않고도 XR과 다른 폼 팩터 간에 기존 앱 아키텍처와 같은 항목을 더 쉽게 공유할 수 있습니다.SpatialPanel: 공간 패널은 앱 콘텐츠를 표시할 수 있는 하위 공간 컴포저블입니다. 예를 들어 동영상 재생, 정적 이미지 또는 기타 콘텐츠를 공간 패널에 표시할 수 있습니다.
Orbiter: Orbiter는 공간 UI 구성요소입니다. 해당하는 공간 패널에 연결되도록 설계되었으며 해당 공간 패널과 관련된 탐색 및 문맥 작업 항목을 포함합니다. 예를 들어 동영상 콘텐츠를 표시하기 위해 공간 패널을 만든 경우 오리터 내부에 동영상 재생 컨트롤을 추가할 수 있습니다.
볼륨: 3D 모델과 같은 SceneCore 항목을 UI를 기준으로 배치합니다.
공간 레이아웃:
SpatialRow
,SpatialColumn
,SpatialBox
,SpatialLayoutSpacer
를 사용하여 여러 공간 패널을 만들고 공간 레이아웃 내에 배치할 수 있습니다.SubspaceModifier
를 사용하여 레이아웃을 맞춤설정합니다.공간 UI 구성요소: 이러한 요소는 2D UI에서 재사용할 수 있으며 공간 속성은 공간 기능이 사용 설정된 경우에만 표시됩니다.
SpatialDialog
: 패널이 z-depth에서 약간 뒤로 밀려 올라간 대화상자를 표시합니다.SpatialPopUp
: 패널이 z-depth에서 약간 뒤로 밀려 올라간 팝업을 표시합니다.SpatialElevation
:SpatialElevationLevel
를 설정하여 고도를 추가할 수 있습니다.
SpatialCapabilities: 공간 기능은 사용자가 앱 또는 시스템과 상호작용할 때 변경될 수 있으며 앱 자체에서 변경할 수도 있습니다(예: 홈 스페이스 또는 전체 스페이스로 이동). 문제를 방지하려면 앱에서
LocalSpatialCapabilities.current
를 확인하여 현재 환경에서 지원되는 API를 결정해야 합니다.isSpatialUiEnabled
: 공간 UI 요소 (예: SpatialPanel)isContent3dEnabled
: 3D 객체isAppEnvironmentEnabled
: 환경isPassthroughControlEnabled
: 애플리케이션이 패스스루 상태를 제어할 수 있는지 여부isSpatialAudioEnabled
: 서라운드 오디오
알려진 문제
- 현재 XR용 Jetpack Compose를 사용하려면 최소 SDK 30이 필요합니다. 해결 방법으로 다음 매니페스트 항목
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>
를 추가하여 minSDK 23으로 빌드하고 실행할 수 있습니다. - 현재 Jetpack XR 앱은 AndroidManifest에서
android.permission.SCENE_UNDERSTANDING
권한을 요청해야 합니다. - 앱이 매니페스트의
PROPERTY_XR_ACTIVITY_START_MODE
속성을 사용하여 전체 공간으로 직접 실행되면 활동/애플리케이션은 처음에는 홈 공간에서 열리다가 전체 공간으로 전환됩니다. - 볼륨 컴포저블의 glTF가 처음에는 잘못된 위치에서 깜박일 수 있습니다.
- 크게 이동된 패널에서 SpatialDialog를 사용하면 콘텐츠가 잘못된 방향으로 이동합니다.