Jetpack Compose, perangkat UI Google untuk mengembangkan aplikasi Android, kini dalam versi alfa. Ini sepenuhnya dapat dioperasikan dengan Tampilan standar Android.
Saat mengembangkan aplikasi, ada banyak cara untuk melakukannya. Anda dapat memilih platform mana yang ingin Anda kembangkan, bahasa pemrograman apa yang ingin Anda gunakan, dan banyak lagi.
Kembali pada musim gugur 2019, Google diperkenalkan kerangka kerja baru untuk membangun UI di Android, menggunakan Kotlin. Hingga saat ini, aplikasi ini masih dalam tahap pengembangan, dengan seringnya terjadi perubahan yang mengganggu dan banyak fitur yang hilang. Namun saat ini, Google telah mendorong Jetpack Compose ke status rilis alfa, yang berarti Jetpack Compose selangkah lebih dekat untuk digunakan dalam proyek berkualitas produksi.
Apa itu Jetpack Compose?
Saat membuat aplikasi Android, biasanya ada dua komponen utama yang harus Anda tangani: kode, untuk hal-hal berbasis logika; dan XML, untuk tata letak. Secara default, Android menggunakan Java untuk kode dan kumpulan tag XML miliknya sendiri untuk tata letak.
Bagi banyak orang, Java dan XML baik-baik saja, terutama untuk aplikasi yang lebih sederhana. Namun kedua sistem memiliki keterbatasan dan gangguannya masing-masing. Dengan diperkenalkannya Kotlin sebagai resmi (dan direkomendasikan) untuk pengembangan Android, sisi pengkodean dalam pembuatan aplikasi Android bisa dibilang menjadi jauh lebih mudah. Dengan fitur praktis Kotlin seperti perlindungan null bawaan dan fungsi ekstensi, kode terlihat lebih bersih dan lebih mudah dibaca.
Namun Kotlin tidak mengubah apa pun dengan tata letak Android. Untuk membuat layout yang rumit, Anda masih perlu membuat file XML dan mendesainnya di sana. Hal ini memiliki beberapa kelemahan penting, termasuk pemisahan yang melekat antara kode dan XML. Misalnya, jika Anda memiliki string konstan dalam kode, Anda tidak bisa hanya mereferensikannya dari XML, jadi jika string tersebut berubah dalam kode, Anda harus ingat untuk memperbaruinya dalam XML juga.
Masuk ke Jetpack Compose. Ini adalah jawaban Google terhadap proses desain tata letak XML yang semakin kikuk di Android. Daripada mendesain UI aplikasi dalam XML, Anda bisa melakukannya langsung dari kode Anda. Meskipun tata letak berbasis kode dapat dibuat, tata letak tersebut biasanya kurang mudah dikelola dibandingkan XML dan melibatkan pustaka yang mudah rusak. Sebaliknya, Compose dirancang untuk bekerja langsung di dalam Kotlin: tidak ada lagi XML.
Jetpack Compose juga merupakan perubahan yang cukup radikal dari desain standar tata letak XML yang penting. Sebaliknya, ini lebih mirip dengan React atau Flutter, dengan tata letak deklaratif yang memperbarui dirinya sendiri ketika data berubah, daripada bergantung pada pengembang untuk mengimplementasikan logika tersebut.
Apa yang Didukung
Jadi Jetpack Compose sekarang dalam versi alfa. Maksudnya itu apa? Ya, banyak hal.
Interoperabilitas dengan Tampilan
Sama seperti Kotlin yang dapat dioperasikan sepenuhnya dengan Java, Jetpack Compose juga dapat dioperasikan sepenuhnya dengan Tampilan standar Android. Ini berarti beberapa hal.
Pertama, akan jauh lebih mudah untuk bermigrasi ke Jetpack Compose jika Anda mau. Daripada harus mengonversi semua Tampilan dan tata letak kustom ke Composable, Anda cukup membuat tata letak dan komponen baru di Compose. Punya perpustakaan yang menggunakan Tampilan "lama", namun aplikasi Anda dirancang dengan Compose? Tidak masalah. Anda dapat menambahkan Tampilan langsung ke fungsi Composable Anda. Anda belum beralih ke Compose, tetapi Anda ingin menggunakan perpustakaan yang mengandalkan Composable? Sekali lagi, tidak masalah. Cukup masukkan Composable ke dalam tata letak Anda.
Mengenai tema, ini tidak cukup plug-and-play seperti interoperabilitas tata letak. Namun, Google telah membuat perpustakaan untuk mengadaptasi tema XML standar Anda ke dalam tema yang kompatibel dengan Compose, membantu menjaga semuanya tetap terpusat dan menghindari duplikasi.
Animasi
Tidak banyak yang bisa dikatakan di sini, kecuali Jetpack Compose mendukung animasi, sama seperti framework View Android. Anda dapat memindahkan, mengubah ukuran, dan memutar sesuka hati Anda.
Daftar Malas
Daftar malas pada dasarnya adalah RecyclerView versi Compose. Itu hanya menata item sesuai kebutuhan, menghemat RAM dan meningkatkan kinerja. Tentu saja, karena Compose, daftarnya jauh lebih mudah diterapkan.
Batasan Tata Letak
Salah satu Tampilan yang lebih kuat di Android adalah ConstraintLayout. Hal ini memungkinkan Anda memosisikan, mengukur, dan memberi bobot pada Tampilan anak relatif satu sama lain, sekaligus membuat animasi tertentu menjadi lebih mudah. Jika Anda khawatir kehilangan fungsi ini di Compose, Anda tidak perlu khawatir, karena fungsi ini juga ada di sini.
Komponen UI Materi
Kumpulan Tampilan canggih lainnya adalah pustaka Komponen Material Google. Sebagian besar yang ada di sini adalah Tampilan dan tata letak standar yang dapat Anda temukan dalam kerangka Tampilan asli. Namun mereka diubah atau digabungkan untuk memberikan fungsionalitas tambahan dan membuat pembuatan tema lebih mudah, dan mereka juga telah beralih ke Compose.
Pengujian
Bagian penting dalam mengembangkan aplikasi adalah mengujinya. Untuk aplikasi sederhana, Anda dapat melakukannya secara manual dengan menginstal dan menggunakannya. Namun, proyek yang lebih kompleks bisa mendapatkan keuntungan besar dari kerangka pengujian otomatis yang melakukan sebagian besar kerja keras untuk Anda. Jetpack Compose mendukung pengujian otomatis sehingga Anda dapat membuat aplikasi Anda sestabil mungkin.
Fitur Aksesibilitas
Aksesibilitas adalah bagian penting dari masyarakat kita. Tanpa fitur aksesibilitas dalam teknologi kita, banyak orang tidak akan bisa menikmati manfaat yang diberikan oleh ponsel, televisi, dan apa pun lainnya. Jetpack Compose masih dalam versi alfa, sehingga dukungan aksesibilitas belum lengkap, namun Google mempertimbangkannya selama pengembangan, dan dukungan dasar sudah tersedia.
Studio Android
Namun, tidak semua fitur Jetpack Compose ada di Jetpack Compose itu sendiri. Android Studio dan Kotlin juga memiliki plugin dan perluasan untuk memudahkan Penulisan.
Plugin Kompiler Kotlin
Seperti halnya Kotlin JVM, terdapat plugin compiler di Android Studio untuk mengonversi fungsi Compose Anda dengan benar menjadi kode yang benar-benar dapat dipahami dan diikuti oleh Android.
Pratinjau Interaktif
Sama seperti tata letak XML standar, Android Studio dilengkapi dengan pratinjau tata letak untuk Jetpack Compose. Meskipun saat ini tidak senyaman pratinjau XML dalam beberapa aspek—Anda harus membangun proyek Anda pratinjau untuk diperbarui, dan membuat fungsi pratinjau khusus—ini memiliki satu keuntungan penting: interaktif pratinjau.
Pratinjau interaktif hanyalah pratinjau biasa, namun interaktif. Gila, aku tahu. Artinya, Anda sebenarnya dapat mengetik teks ke dalam kotak teks, mengklik tombol, dan berinteraksi dengan Composable, bahkan tanpa harus menerapkannya.
Penerapan Komposable Tunggal
Jika Anda benar-benar ingin menerapkan (yaitu memasang) tata letak Anda untuk melihat cara kerjanya pada perangkat sebenarnya, fitur ini mungkin dapat membantu Anda. Dengan tata letak XML normal, untuk melihat cara kerja tata letak di dunia nyata, Anda harus membuat dan menginstal seluruh aplikasi. Jika tata letak yang ingin Anda uji tidak ada di layar utama, Anda mungkin harus banyak mengetuk untuk membukanya.
Dan di situlah kemampuan untuk menerapkan hanya satu Composable berperan. Daripada harus membuat dan menginstal aplikasi, lalu menavigasi ke tata letak yang Anda uji, Anda cukup menerapkan tata letak tersebut. Android Studio akan membuat dan membuka Aktivitas wrapper yang hanya menampilkan Composable yang Anda terapkan. Hal ini dapat mempercepat pengujian dan desain, dan bahkan dapat membantu mengisolasi masalah yang terkait dengan interaksi elemen.
Penyelesaian Kode
Jika IDE Anda tidak memiliki penyelesaian kode, apakah itu IDE? Tidak. Tidak, bukan itu. Jadi, tentu saja Android Studio mendukung penyelesaian kode lengkap untuk Jetpack Compose.
Meskipun Jetpack Compose bukanlah segalanya, fitur dan perilaku di atas menunjukkan betapa hebatnya kerangka kerja ini yang diinginkan Google. Dan, meski masih dalam tahap alfa, ini selangkah lebih maju dari status "pengembangan" sebelumnya. Jika Anda benar-benar menunda penggunaan Jetpack Compose (seperti saya dulu), sekarang mungkin saat yang tepat untuk mencobanya lagi.