Learn Data Binding

Mengenal Data Binding dan Cara Implementasinya pada Android

Belajar tentang Data Binding dan cara implementasinya

Abdhi
Abdhilabs

--

Photo by Markus Spiske on Unsplash

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. :)

--

--