Android XR SDK Beta: Panduan Pengembang untuk Membuat Aplikasi Immersive
Jetpack XR SDK Beta kini tersedia, memberi Anda semua alat yang dibutuhkan untuk membangun pengalaman augmented dan immersive di Android XR. Dengan API yang sudah stabil, Anda dapat langsung mengintegrasikannya ke alur kerja produksi dan memanfaatkan headset serta kacamata XR yang semakin banyak tersedia.
Apakah Anda ingin memport aplikasi 2D yang sudah ada atau menciptakan aplikasi XR 3D baru dari nol, Jetpack XR SDK memungkinkan Anda menggunakan alat pengembangan Android yang sudah familiar. Berikut cara memulai dan fitur-fitur utama yang ditawarkan.
Apa Itu Jetpack XR SDK?
Jawaban singkatnya: Jetpack XR SDK adalah kumpulan pustaka yang dirancang khusus untuk membangun pengalaman augmented reality (AR) dan immersive (VR/MR) di platform Android. Dengan SDK ini, Anda dapat menulis kode menggunakan bahasa Kotlin atau Java, memanfaatkan Android Studio, dan menguji aplikasi langsung di perangkat XR.
XR, singkatan dari Extended Reality, mencakup tiga jenis teknologi: Virtual Reality (VR) yang menciptakan lingkungan sepenuhnya digital, Augmented Reality (AR) yang menambahkan konten digital ke dunia nyata, dan Mixed Reality (MR) yang menggabungkan keduanya. Jetpack XR SDK menyediakan antarmuka konsisten untuk semua jenis pengalaman ini.
Komponen Utama Jetpack XR SDK
SDK ini terbagi menjadi empat komponen inti. Masing-masing memiliki peran khusus, namun bersama-sama membentuk fondasi lengkap untuk pengembangan XR.
Jetpack SceneCore
SceneCore adalah mesin grafis 3D yang memanipulasi scene graph—struktur data yang merepresentasikan objek 3D dan hubungan antar objek. Dengan SceneCore, Anda dapat menempatkan model 3D, mengatur transformasi (posisi, rotasi, skala), serta menambahkan audio spasial.
Contoh sederhana: Anda ingin menampilkan mobil 3D di atas meja. Dengan SceneCore, Anda cukup memuat file model (misalnya .glb), menambahkan Entity ke Scene, dan mengatur transformasi sehingga mobil berada di posisi yang diinginkan. Berikut kode singkatnya:
val scene = Scene()
val carModel = SceneCore.loadModel("car.glb")
val carEntity = Entity().apply {
setModel(carModel)
setPosition(0f, 0f, -1f) // 1 meter di depan kamera
}
scene.addEntity(carEntity)
ARCore for Jetpack XR
ARCore for XR menambahkan kemampuan persepsi dunia nyata. Fitur-fitur utamanya meliputi:
- Depth estimation: Mengukur jarak objek di dunia nyata.
- Persistent anchors: Menetapkan titik referensi virtual yang tetap di posisi tertentu.
- Hit testing: Menentukan titik di permukaan nyata yang disentuh oleh objek virtual.
- Plane detection: Mengidentifikasi bidang datar seperti meja atau lantai.
Dengan fitur ini, Anda dapat membuat aplikasi AR yang interaktif, misalnya menempatkan karakter virtual di atas meja atau menambahkan objek 3D yang bergerak mengikuti gerakan pengguna.
XR Runtime
XR Runtime adalah lapisan dasar yang mengelola siklus hidup perangkat, pembuatan sesi, dan konfigurasi sistem. Tanpa runtime, API tidak dapat berfungsi karena tidak ada mekanisme untuk memulai sesi XR, mengelola input, atau menyesuaikan rendering dengan perangkat.
Runtime juga menangani perbedaan antar perangkat XR—misalnya, headset dengan resolusi tinggi vs. kacamata XR dengan resolusi lebih rendah—sehingga kode Anda tetap berjalan konsisten.
Jetpack Compose for XR
Compose for XR akan segera hadir di versi beta. Pustaka ini memungkinkan pembuatan UI spasial menggunakan konsep Compose yang sudah dikenal. Dengan Compose, Anda dapat menempatkan tombol, teks, atau elemen UI lainnya di ruang 3D, menyesuaikan posisi, rotasi, dan ukuran sesuai kebutuhan.
Fitur Baru di Rilis Beta
Pengembangan beta ini tidak hanya menambahkan pustaka baru, tetapi juga memperbaiki API berdasarkan umpan balik dari pengembang preview. Berikut beberapa peningkatan utama:
- Dukungan pengujian yang diperluas: Sekarang Anda dapat menguji audio spasial, konfigurasi sesi, dan perangkat XR secara terpisah. Hal ini memudahkan deteksi masalah sebelum rilis.
- Integrasi Kotlin Coroutines: Fungsi
Session.createmenjadisuspend, memudahkan penulisan kode asinkron yang bersih. - Pembaruan terminologi:
AnchorEntitykini dinamaiAnchorSpace. Selain itu,ActivitySpacedanAnchorSpacemewarisiSpaceEntity, sehingga manajemen ruang menjadi lebih konsisten. - Perubahan nama kelas: Penyesuaian kecil pada nama kelas membantu mengurangi kebingungan saat menulis kode.
Perubahan ini dirancang agar pengembangan menjadi lebih mudah dan kode lebih mudah dipahami. Namun, tetap ada beberapa batasan, seperti belum adanya dukungan penuh untuk semua perangkat XR di luar Samsung Galaxy XR dan emulator Android XR.
Mulai Pengembangan: Langkah-Langkah
Berikut panduan singkat untuk memulai proyek XR Anda. Ikuti setiap langkah dengan teliti, dan Anda akan dapat melihat aplikasi XR berjalan di perangkat atau emulator.
1. Siapkan Proyek Android
Pastikan Android Studio terbaru (versi 2026.1 atau lebih baru) sudah terinstal. Buat proyek baru dengan template “Empty Activity” dan pilih bahasa Kotlin. Tambahkan repositori Google Maven ke file build.gradle (project) jika belum ada:
repositories {
google()
mavenCentral()
}
2. Tambahkan Dependensi XR
Di file build.gradle (module), tambahkan dependensi berikut di dalam blok dependencies:
dependencies {
implementation("androidx.xr.scenecore:scenecore:1.0.0-beta02")
implementation("androidx.xr.arcore:arcore:1.0.0-beta02")
implementation("androidx.xr.runtime:runtime:1.0.0-beta02")
implementation("androidx.xr.compose:compose:1.0.0-alpha17")
}
Pastikan Anda menggunakan versi beta yang tepat. Setelah menambahkan, sinkronkan proyek.
3. Konfigurasikan AndroidManifest
Tambahkan izin yang diperlukan untuk AR dan XR. Misalnya, akses kamera dan lokasi. Berikut contoh minimal:
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
4. Buat Sesi XR
Di dalam aktivitas utama, buat sesi XR menggunakan XRRuntime. Berikut contoh sederhana:
class MainActivity : AppCompatActivity() {
private lateinit var xrRuntime: XRRuntime
private lateinit var session: Session
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
xrRuntime = XRRuntime.getInstance(this)
session = runBlocking { xrRuntime.createSession() }
}
override fun onDestroy() {
session.close()
super.onDestroy()
}
}
Perhatikan bahwa createSession dipanggil dalam blok runBlocking karena merupakan fungsi suspend. Anda dapat menyesuaikan konfigurasi sesi sesuai kebutuhan.
5. Tambahkan Konten 3D
Gunakan SceneCore untuk memuat model 3D dan menambahkannya ke scene. Berikut contoh menambahkan mobil ke dalam sesi:
val scene = Scene()
val carModel = SceneCore.loadModel("car.glb")
val carEntity = Entity().apply {
setModel(carModel)
setPosition(0f, 0f, -1f)
}
scene.addEntity(carEntity)
session.setScene(scene)
6. Uji di Emulator atau Perangkat
Anda dapat menguji aplikasi di emulator Android XR (yang disediakan oleh Android Studio) atau di perangkat fisik seperti Samsung Galaxy XR. Pastikan perangkat sudah diatur untuk mode XR dan aplikasi memiliki izin yang diperlukan.
Jika menggunakan emulator, pilih “Android XR Emulator” saat membuat AVD. Pastikan Anda memilih sistem image yang mendukung XR.
7. Tambahkan UI Spasial dengan Compose for XR
Compose for XR memungkinkan pembuatan UI 3D. Berikut contoh menambahkan tombol “Tombol” di ruang 3D:
@Composable
fun XRButton() {
XRButton(
modifier = Modifier
.size(200.dp)
.position(0f, 0f, -1.5f),
onClick = { /* aksi */ }
) {
Text("Tombol")
}
}
Compose for XR masih dalam fase beta, jadi fungsi dan API mungkin berubah. Pastikan untuk memeriksa dokumentasi terbaru.
Dampak bagi Pengguna Indonesia
Dengan Jetpack XR SDK Beta, pengembang di Indonesia dapat menciptakan aplikasi XR yang lebih mudah diakses. Karena SDK dibangun di atas Android, ia dapat dijalankan di banyak perangkat yang sudah tersedia di pasar Indonesia, termasuk smartphone dan headset XR yang didukung. Misalnya, aplikasi edukasi dapat menampilkan model 3D interaktif, atau aplikasi e-commerce dapat menampilkan produk dalam ruang nyata pengguna.
Namun, masih ada batasan. Dukungan perangkat terbatas pada beberapa headset XR, dan belum ada dukungan penuh untuk semua fitur AR pada semua perangkat. Pengembang perlu menguji aplikasi di perangkat target secara menyeluruh.
Sumber Referensi
Artikel ini dirangkum dan dikembangkan setelah membandingkan informasi dari sumber berikut:
- Android Developers Blog: Jetpack XR SDK core libraries reach beta: The next milestone for Android XR — Android Developers Blog
- Microsoft Privacy Statement – Microsoft privacy — microsoft.com
- Was koche ich heute? — chefkoch.de



Posting Komentar