
Cara Konfigurasi Android Kotlin dengan Data Binding
Kotlin sekarang telah mendapat support langsung dari Google, yeah akhirnya… :D Jika Anda belum membaca artikel saya tentang sebelumnya tentang Konfigurasi Android Studio dengan Kotlin silahkan luangkan waktu Anda sejenak untuk membacanya. Atau Anda dapat langsung menggunakan Android Studio 3.0 yang sudah support Kotlin secara langsung.
Pada kali ini saya akan berbagi pengalaman saya menggunakan Kotlin dan Data Binding pada sebuah project. Jadi mari kita mulai! :D
Pada artikel sebelumnya kita telah mempunyai sebuah project, selanjutnya yang harus kita lakukan menambahkan sebuah plugin baru pada file “build.gradle” pada modul Anda.
apply plugin: 'kotlin-kapt'
...Langkah selanjutnya untuk menggunakan data binding adalah dengan menambahkan databinding pada file “build.gradle” seperti berikut :
android {
....
dataBinding {
enabled = true
}
}dependencies {
....
kapt "com.android.databinding:compiler:$gradle_version"
....}
dan jangan lupa untuk synchronize file gradle Anda.
Catatan : versi data binding harus sama dengan gradle versi yang Anda gunakan pada project.
Konfigurasi data binding pada layout
Tata letak layout yang menggunakan data binding akan sedikit berbeda dari biasanya disini dimulai dengan tag root layout diikuti oleh elemen data dan elemen root view. Contoh layout akan terlihat seperti ini:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable name="user" type="com.skyshi.User"/>
</data>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{user.firstName}"/>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{user.lastName}"/>
</LinearLayout>
</layout>Variable dalam data menggambarkan sebuah properti yang dapat digunakan pada layout ini.
<variable name="user" type="com.skyshi.User"/>Ekspresi dalam layout ditulis dalam properti atribut menggunakan sintaks “@ {}”. Di sini, text pada TextView akan berisi properti FirstName dari data object User:
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{user.firstName}"/>Data Object
Data object User yg merupakan plain-old Java object (POJO) pada Kotlin dapat kita tulis dengan sangat ringkas menjadi seperti berikut :
class User(
var firstName: String = "",
var lastName: String = ""
)Ungkapan @{user.firstName} yang digunakan untuk widget TextView android:text akan mengakses field firstName di objek User.
Binding Data
Secara default, class Binding akan dihasilkan berdasarkan nama file layout, mengubahnya menjadi kasus Pascal dan mencantumkan “Binding” untuknya. File layout di atas adalah main_activity.xml sehingga class yang dihasilkan adalah MainActivityBinding. Class ini menyimpan semua binding dari properti layout (misalnya variabel User) ke tampilan layout dan mengetahui bagaimana menetapkan nilai untuk ekspresi yang terhubung.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding: MainActivityBinding = DataBindingUtil.setContentView(this, R.layout.main_activity)
val user = User("Test", "User")
binding.setUser(user)
/* atau dapat menggunakan */
binding.setVariable(BR.user, user)}
Sekarang semuanya sudah siap untuk menjalankan App ini dan Anda akan melihat data User pada tampilan aplikasi. Mudah bukan? :D
Terima kasih telah membaca artikel ini. Pastikan untuk klik ❤ di bawah untuk merekomendasikan artikel ini jika menurut Anda artikel ini bermanfaat. Ini berarti banyak bagi saya.
