Learn Data Binding
Mengenal Data Binding dan Cara Implementasinya pada Android
Belajar tentang Data Binding dan cara implementasinya
Pada kesempatan kali ini aku mau share pengalamanku tentang Data Binding pada Android. Nah mungkin, kalian pernah bertanya-tanya tentang Data Binding itu apa? Fungsinya apa sih? Terus keuntungan kita pakai Data Binding apa? Kemudian bagi kalian yang masih bingung implementasinya, aku akan bahas pada tulisan kali ini. CMIIW.
Pengenalan
Okay, aku jelasin terlebih dahulu apa itu Data Binding. Kemudian kita coba implementasikan.
Data Binding
Data Binding itu merupakan sebuah support library dari Google. Selengkapnya, Library Data Binding adalah support library yang memungkinkan kalian mengikat komponen UI dalam tata letak ke sumber data di aplikasi kalian menggunakan format deklaratif, bukan secara terprogram. Nah bagi yang masih bingung, intinya Data Binding itu mengikat si UI untuk di panggil pada class tertentu.
Fungsi
- Mempersingkat coding
- Mengurangi IllegalStateException ketika kita memanggil id dari sebuah Widget(TextView, ImageView, dsb) — Kotlin
- Menghilangkan findViewById pada class — Java
Keuntungan
Keuntungannya bisa kalian simpulkan sediri berdasarkarkan fungsi di atas yaa. :)
Implementasi
Sekarang kita lanjut implementasinya. Untuk implementasinya, di sini aku pakai project yang sebelumnya pernah di buat. Ini nih :
Sekarang pertanyaannya adalah :
Apasih yang harus kita persiapkan?
Aktivasi
Untuk implementasinya sendiri, kita tidak perlu menyiapkan atau menambahkan dependencies apapun. Cukup mengaktifkannya saja, dengan cara seperti berikut :
...
apply plugin: 'kotlin-kapt'
android {
...
dataBinding{
enabled true
}
}
Kalo sudah, klik ‘Sync Now’ di pojok kanan atas pada IDE.
Adapter
Di sini kita akan menambahkan sebuah file BindingAdapter.kt
. Nah BindingAdapter ini akan kita gunakan untuk men-set adapter si RecyclerViewnya.
import androidx.databinding.BindingAdapter
import androidx.recyclerview.widget.RecyclerView
@BindingAdapter("app:setAdapter")
fun RecyclerView.adapter(data: List<Data.Dummy>) {
val adapterData = DataAdapter()
adapterData.diffUtil.submitList(data)
adapter = adapterData
}
Layout
Sekarang kita akan menambahkan sebuah tag <layout>
dan elemen <data>
pada layout activity_main.xml, menjadi seperti berikut ini :
app:setAdapter : merupakan generate dari BindingAdapter yang sudah kita buat sebelumnya.
Class
Setelah kita edit file layout activity_main.xml
nya, mari kita lanjut pada class MainActivity.kt
. Pada file ini kita akan rubah menjadi seperti berikut :
ActivityMainBinding : merupakan sebuah class generated yang meng-extend ViewDataBinding, jadi class ini muncul ketika kita mengimplementasikan data binding layout pada activity_main.xml
.
Nah sampai di sini bisa coba kalian jalankan aplikasinya. Jika tidak ada error, berarti anda telah berhasil dalam meng-implementasikan Data Bindingnya. Selamaaat. :)
Oh iya, kalian juga bisa mencoba implementasikan Data Bindingnya pada item_list.xml
, kemudian setBinding nya pada class DataAdapter. Kalau ada yang dibingungkan, kalian dapat menghubungi saya di semua social media. Selamat mencobaaa. :)