Compose untuk TV adalah pendekatan yang kami rekomendasikan untuk membuat antarmuka pengguna Android TV. Framework ini mendapatkan semua manfaat Jetpack Compose Android untuk aplikasi TV Anda, sehingga membuat UI yang indah dan fungsional untuk aplikasi Anda menjadi lebih mudah. Beberapa manfaat khusus menggunakan Compose untuk TV adalah:
- Fleksibilitas: Compose dapat digunakan untuk membuat jenis UI apa pun, mulai dari tata letak sederhana hingga animasi yang kompleks. Komponen dapat langsung difungsikan, tetapi juga dapat disesuaikan dan ditata agar sesuai dengan kebutuhan aplikasi Anda.
- Pengembangan yang Disederhanakan & Dipercepat: Compose kompatibel dengan kode yang sudah ada dan memungkinkan developer membuat aplikasi secara lebih efisien dengan lebih sedikit kode.
- Intuitif: Compose menggunakan sintaksis deklaratif yang memungkinkan Anda membuat perubahan pada UI, men-debug, memahami, dan meninjau kode.
Jika Anda tidak terbiasa menggunakan toolkit Jetpack Compose, lihat jalur Compose. Banyak prinsip pengembangan untuk Compose seluler juga berlaku untuk TV. Lihat Mengapa Compose untuk mengetahui informasi selengkapnya tentang keuntungan umum framework UI deklaratif. Untuk mempelajari lebih lanjut, lihat juga repositori contoh Compose untuk TV di GitHub.
Kompatibilitas
Compose untuk TV berfungsi di Android TV dengan API level 21 atau yang lebih baru. Penggunaan Compose untuk TV versi 1.0 memerlukan library androidx.compose dan Kotlin 1.7.10 versi 1.3.0.
Penyiapan
Menggunakan Jetpack Compose di Android TV mirip dengan menggunakan Jetpack Compose untuk
project Android lainnya. Perbedaan utamanya adalah Compose untuk TV menambahkan library
yang menawarkan komponen yang dioptimalkan untuk TV dan mempermudah pembuatan antarmuka pengguna
yang disesuaikan untuk TV. Terkadang, komponen tersebut memiliki nama yang sama dengan
komponen non-TV, seperti
androidx.tv.material3.Button
dan
androidx.compose.material3.Button
.
Dependensi toolkit Jetpack Compose
Agar dapat menggunakan Compose untuk TV, Anda harus menyertakan dependensi toolkit Jetpack Compose
dalam file build.gradle
aplikasi sebagai berikut:
Kotlin
dependencies { val composeBom = platform("androidx.compose:compose-bom:2024.04.01") implementation(composeBom) // General compose dependencies implementation("androidx.activity:activity-compose:1.8.2") implementation("androidx.compose.ui:ui-tooling-preview") debugImplementation("androidx.compose.ui:ui-tooling") // Compose for TV dependencies val tvCompose = "1.0.0-alpha10" implementation("androidx.tv:tv-foundation:$tvCompose") implementation("androidx.tv:tv-material:$tvCompose") }
Groovy
dependencies { def composeBom = platform('androidx.compose:compose-bom:2024.04.01') implementation composeBom // General compose dependencies implementation 'androidx.activity:activity-compose:1.8.2' implementation 'androidx.compose.ui:ui-tooling-preview' debugImplementation 'androidx.compose.ui:ui-tooling' // Compose for TV dependencies def tvCompose = '1.0.0-alpha10' implementation 'androidx.tv:tv-foundation:$tvCompose' implementation 'androidx.tv:tv-material:$tvCompose' }
Yang berbeda
Gunakan versi TV API jika memungkinkan.
Meskipun secara teknis dapat dilakukan, Compose Material versi seluler
tidak dioptimalkan untuk gaya interaksi unik di Android TV. Selain
itu, menggabungkan Compose Material dengan Compose Material dari Compose untuk TV dapat
menghasilkan perilaku yang tidak terduga. Misalnya, karena setiap library memiliki
objek MaterialTheme
sendiri, ada kemungkinan warna, tipografi, atau bentuk
menjadi tidak konsisten jika kedua versi tersebut digunakan.
Tabel berikut menguraikan perbedaan dependensi antara TV dan Seluler:
Dependensi TV (androidx.tv.*) |
Perbandingan | Dependensi Perangkat Seluler (androidx.compose.*) |
androidx.tv:tv-material | bukan | androidx.compose.material3:material3 |
androidx.tv:tv-foundation | selain juga | androidx.compose.foundation:foundation |
Bacaan lebih lanjut
Jelajahi panduan ini untuk mempelajari cara membuat pengalaman terbaik yang dioptimalkan untuk TV: