Jetpack Compose untuk XR
Update Terbaru | Rilis Stabil | Kandidat Rilis | Rilis Beta | Rilis Alfa |
---|---|---|---|---|
12 Desember 2024 | - | - | - | 1.0.0-alpha01 |
Mendeklarasikan dependensi
Untuk menambahkan dependensi pada XR compose, Anda harus menambahkan repositori Maven Google ke project Anda. Baca repositori Maven Google untuk mengetahui informasi selengkapnya.
Tambahkan dependensi untuk artefak yang diperlukan dalam file build.gradle
bagi aplikasi atau modul Anda:
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") }
Untuk informasi dependensi selengkapnya, lihat Menambahkan dependensi build.
Masukan
Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau mempunyai masukan untuk meningkatkan kualitas library ini. Harap periksa masalah yang sudah diketahui dalam library ini sebelum membuat laporan baru. Anda dapat memberikan suara untuk masalah yang sudah diketahui dengan mengklik tombol bintang.
Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.
Versi 1.0
Versi 1.0.0-alpha01
12 Desember 2024
androidx.xr.compose:compose-*1.0.0-alpha01
dirilis.
Fitur Rilis Awal
Rilis developer awal Jetpack Compose untuk XR. Gunakan konsep Compose yang sudah dikenal seperti baris dan kolom untuk membuat tata letak UI spasial di XR, baik Anda mem-porting aplikasi 2D yang ada ke XR atau membuat aplikasi XR baru dari awal. Library ini menyediakan subruang dan composable spasial: seperti panel spasial dan orbiter, yang memungkinkan Anda menempatkan UI berbasis Compose 2D atau View yang ada dalam tata letak spasial. Versi ini memperkenalkan composable Volume subspace, yang memungkinkan Anda menempatkan entity SceneCore, seperti model 3D, relatif terhadap UI. Pelajari lebih lanjut di panduan developer ini:
Subspace
: Composable ini dapat ditempatkan di mana saja dalam hierarki UI aplikasi, sehingga Anda dapat mempertahankan tata letak untuk UI 2D dan spasial tanpa kehilangan konteks antar-file. Hal ini memudahkan Anda untuk berbagi hal-hal seperti arsitektur aplikasi yang ada antara XR dan faktor bentuk lainnya tanpa perlu mengangkat status melalui seluruh hierarki UI atau mendesain ulang aplikasi.SpatialPanel: Panel spasial adalah composable subspace yang memungkinkan Anda menampilkan konten aplikasi–misalnya, Anda dapat menampilkan pemutaran video, gambar diam, atau konten lainnya di panel spasial.
Orbiter: Orbiter adalah komponen UI spasial. Panel ini dirancang untuk dilampirkan ke panel spasial yang sesuai, dan berisi navigasi serta item tindakan kontekstual yang terkait dengan panel spasial tersebut. Misalnya, jika telah membuat panel spasial untuk menampilkan konten video, Anda dapat menambahkan kontrol pemutaran video di dalam orbiter.
Volume: Menempatkan entity SceneCore, seperti model 3D, relatif terhadap UI Anda.
Tata Letak Spasial: Anda dapat membuat beberapa panel spasial dan menempatkannya dalam Tata Letak Spasial menggunakan
SpatialRow
,SpatialColumn
,SpatialBox
, danSpatialLayoutSpacer
. GunakanSubspaceModifier
untuk menyesuaikan tata letak Anda.Komponen UI spasial: Elemen ini dapat digunakan kembali di UI 2D Anda, dan atribut spasialnya hanya akan terlihat saat kemampuan spasial diaktifkan.
SpatialDialog
: Panel akan sedikit didorong ke belakang dalam kedalaman z untuk menampilkan dialog yang ditinggikan.SpatialPopUp
: Panel akan sedikit didorong kembali dalam kedalaman z untuk menampilkan pop-up yang ditinggikanSpatialElevation
:SpatialElevationLevel
dapat disetel untuk menambahkan elevasi.
SpatialCapabilities: Kemampuan spasial dapat berubah saat pengguna berinteraksi dengan aplikasi atau sistem Anda, atau bahkan dapat diubah oleh aplikasi Anda sendiri—misalnya, berpindah ke Ruang Rumah atau Ruang Penuh. Untuk menghindari masalah, aplikasi Anda perlu memeriksa
LocalSpatialCapabilities.current
untuk menentukan API mana yang didukung di lingkungan saat ini.isSpatialUiEnabled
: Elemen UI spasial (misalnya, SpatialPanel)isContent3dEnabled
: Objek 3DisAppEnvironmentEnabled
: LingkunganisPassthroughControlEnabled
: Apakah aplikasi dapat mengontrol status passthrough atau tidakisSpatialAudioEnabled
: Audio spasial
Masalah Umum
- Saat ini, minSDK 30 diperlukan untuk menggunakan Jetpack Compose untuk XR. Sebagai solusi, Anda dapat menambahkan entri manifes
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>
berikut agar dapat mem-build dan menjalankan dengan minSDK 23. - Aplikasi Jetpack XR saat ini memerlukan permintaan izin
android.permission.SCENE_UNDERSTANDING
di AndroidManifest. - Saat aplikasi diluncurkan langsung ke Ruang Penuh menggunakan properti
PROPERTY_XR_ACTIVITY_START_MODE
dalam manifesnya, Aktivitas/Aplikasi awalnya dibuka di Ruang Layar Utama sebelum bertransisi ke Ruang Penuh. - glTF di Volume Composables pada awalnya mungkin berkedip di lokasi yang salah.
- Menggunakan SpatialDialog di panel yang telah dipindahkan secara signifikan akan mendorong konten ke arah yang salah.