Inovasi teknologi pengembangan aplikasi mobile bergerak dengan sangat cepat. Setiap tahun selalu saja ada tren baru. Beberapa tahun terakhir ini, declarative UI dan reactive programming menjadi tren yang cukup menguasai berita dunia mobile. Untuk menjawab tren yang lebih dulu populer di framework lain seperti di React Native, Flutter, dan iOS (dengan Swift UI), maka Google merilis Jetpack Compose untuk Android.
Jetpack Compose adalah library UI baru dari Google yang pertama kali diperkenalkan pada event I/O 2019. Library ini bertujuan untuk mempermudah developer dalam membuat UI yang cantik dan responsif dengan kode yang lebih ringkas. Pada bulan Februari 2021 yang lalu, Jetpack Compose masuk ke tahap Beta. Ini artinya, Compose sudah API complete alias tidak akan ada perubahan atau penghapusan API yang berarti. Google menargetkan Compose untuk mencapai versi stabil 1.0 di akhir tahun.
Karena masih dalam pengembangan, Jetpack Compose belum tersedia di Android Studio versi stabil. Untuk menggunakannya, developer harus menggunakan versi Canary dari Android Studio Arctic Fox.
Table of Contents
Android UI Tanpa Layout XML
Aplikasi native Android saat ini dikembangkan dengan menuliskan UI dalam kode XML dan logic program dalam bahasa pemrograman Kotlin atau Java. Jetpack Compose memungkinkan kita untuk menulis kode UI maupun kodę logic menggunakan satu bahasa, yaitu Kotlin. Namun, mengingat umurnya yang sudah belasan tahun, mungkin sudah jutaan aplikasi Android yang dikembangkan dengan menggunakan cara lama yaitu dengan layout XML. Oleh karena itu, Google membuat Jetpack Compose agar dapat digunakan bersamaan dengan layout XML.
Baca Juga: Cara Membuat Sebuah Aplikasi Android dengan Android Studio
Dalam pemrograman Android, interoperability akan menentukan seluas apa implementasi sebuah teknologi baru. Dengan membuat Jetpack Compose interoperable dengan penggunaan layout XML, setiap developer Android akan memiliki keleluasaan dalam mengimplementasikannya. Untuk aplikasi baru developer dapat menggunakan Compose seutuhnya. Sementara untuk aplikasi lama, developer tetap bisa membiarkan layout lama menggunakan XML dan untuk layout yang baru menggunakan Compose tanpa mengubah seluruh layout-nya.
Live Preview yang Canggih
Dalam pemrograman Android, setiap kali mengubah UI dalam kode XML, kita wajib menjalankan ulang aplikasi baik ke emulator maupun perangkat asli. Jetpack Compose memungkinkan kita untuk melakukan preview dari layout yang dibuat secara utuh (satu halaman) atau sebagian saja (per komponen) langsung dari dalam Android Studio.
Lebih dari sekedar menampilkan tampilan statis, Android Studio bahkan mampu memberikan interactive preview. Preview yang ditampilkan mampu memberikan feedback layaknya aplikasi yang telah dijalankan di emulator.
Tidak Bergantung Pada Versi Android Tertentu
Google mengembangkan Compose independen dari versi Android manapun. Hal ini dilakukan untuk mengurangi tingkat fragmentasi yang dialami oleh Android. Seperti yang sama-sama kita ketahui, Android seringkali mengalami perubahan API dari satu versi ke versi yang baru. Beberapa perubahan tersebut berpengaruh pada sistem operasi Android yang digunakan. Sebagai contoh, saat menggunakan Android sebelum Lollipop, kita mendapatkan UI yang begitu berbeda dengan Android pasca Lollipop. Compose dikembangkan agar setiap aplikasi yang menggunakannya memiliki UI yang konsisten tanpa developer harus melakukan tweaking manual dari satu versi Android ke versi yang lain.
Baca Juga: 3 Bahasa Pemrograman untuk Pengembangan Android Application
Declarative UI
Jetpack Compose adalah jawaban Google atas tren declarative UI. Declarative UI adalah sebuah konsep dimana developer mendeklarasikan UI dengan memanggil kumpulan fungsi tertentu dimana UI tersebut akan bereaksi terhadap suatu state (data). Apabila ada state yang berubah, maka komponen yang menggunakan state tersebut akan secara otomatis dipanggil/di-render ulang.
Jetpack Compose vs Flutter
Flutter adalah UI toolkit yang juga dikembangkan Google untuk membangun aplikasi di Mobile, Web dan Desktop. Apabila pernah melihat atau menulis kode Flutter, maka kode-kode Compose akan terlihat cukup mirip. Hal tersebut dikarenakan Compose dan Flutter menerapkan konsep declarative UI yang sama.
Meskipun memiliki kemiripan struktur program dan beberapa komponen dengan nama yang sama, namun keduanya sangatlah berbeda. Flutter merupakan framework yang sudah production ready dan ditulis dalam bahasa pemrograman Dart, sedangkan Jetpack Compose ditulis dengan Kotlin dan hanya untuk pemrograman native Android.
Karena Compose ditulis dengan Kotlin untuk pemrograman native Android, maka ia mendapatkan akses langsung ke API native seperti Jetpack Navigation Architecture, ViewModel, LiveData / Flow, Paging, Hilt, dan lain sebagainya. Sementara itu, Flutter dikembangkan dengan adanya layer tambahan, sehingga untuk bisa menggunakan fitur Native kita harus membuat platform channel.
Sumber Belajar
Google secara konsisten terus merilis tutorial dalam bentuk artikel, codelabs, serta seri video Youtube untuk memperkenalkan Jetpack Compose. Tutorial tertulis dalam bentuk artikel dapat ditemui lewat laman developer.android.com atau codelabs.developer.google.com. Sementara itu untuk video tutorial diunggah secara berkala di kanal Youtube Android Developers.
Contoh dalam bentuk project utuh juga telah disediakan melalui Github Jetpack Compose Samples. Terdapat delapan aplikasi aplikasi yang terdiri atas aplikasi baca berita, online chat, survey, podcast listener, financial app, hingga eCommerce.