Android Project Pattern

Contoh jenis Android Project Pattern adalah:

MVP(Model View Presenter)
-Model adalah interface yang mendefinisikan bagaimana data ditampilkan
-View adalah pasif interface yang menampilkan data dan mengarahkan user command ke presenter untuk merubah data pada view
-Presenter sebagai middle man menerima data dari model lalu format tampilan untuk ditampilkan ke view

MVVM(Model-View-View Model)
-Model: representasi konten
-View: yang diperlihatkan ke user
-ViewModel: terdapat binder sebagai komunikasi antara view dan data binder
Contoh MVVM pada android: roboBinding, ngAndroid, Bindroid
Keuntungan penggunaan MVVM dalam android:
-Pemisahan coding lebih baik, terutama pada class Activity dan Fragment, method onCreate dapat disederhanakan lebih lanjut
-Dengan data binding, saat compile-time lebih aman daripada findViewById, juga lebih cepat terutama pada view hierarki yang kompleks karena findViewById menjelajah satu satu dari hierarki
-Android data binding library support binding dua arah, dapat merubah pada view atau model dan langsung tercermin pada lainnya

Langkah-langkah data binding MVVM pada android studio
-Untuk enable data binding di android studio pada build gradle app di dalam tag android menambah tag dataBinding{enabled=true}
-Membuat Model class, untuk kerapian buat di package model, misal ObjectModel, pada model mendefinisikan data/variabel/method

-Lanjut ke ViewModel, membuat ObservableField<>() untuk setiap variabel pada model. Membuat ObjectModel dalam ObjectViewModel. Pada konstruktor ObjectViewModel instansiasi ObjectModel, lalu variabel pada ViewModel diset(method set)dengan ObjectModel.variabel

-Untuk View,dibuat layout xml terlebih dahulu(misal nama activity_object). label yang ditambahkan adalah <data><variable name=”a” type=”alamat.class.ObjectViewModel”</data>. Nanti pada label lain dapat mereferensi <data> dengan memanggil “@{name.variabelnya}. Lalu dibuat class View/MainObject extend AppCompatActivity sebagai class yang dipanggil saat aplikasi nyala. Mendefinisikan namalayoutBinding(contoh ActivityObjectBinding) dan ViewModelObject. Override onCreate, didalam method untuk ActivityObjectBinding = DataBindingUtil.setContentView(this, R.layout.activity_object); dan ViewModelObject diinisialisasi dengan new, terakhir set ActivityObjectBinding dengan ViewModelObject

-Untuk fragment/item menu pada list view menggunakan DataBindingUtil.inflate

-Membuat Model class, untuk kerapian buat di package model, misal ObjectModel, pada model mendefinisikan data/variabel/method
-Lanjut ke ViewModel, membuat ObservableField<>() untuk setiap variabel pada model. Membuat ObjectModel dalam ObjectViewModel. Pada konstruktor ObjectViewModel instansiasi ObjectModel, lalu variabel pada ViewModel diset(method set)dengan ObjectModel.variabel
-Untuk View,dibuat layout xml terlebih dahulu(misal nama activity_object). label yang ditambahkan adalah <data><variable name=”a” type=”alamat.class.ObjectViewModel”</data>. Nanti pada label lain dapat mereferensi <data> dengan memanggil “@{name.variabelnya}. Lalu dibuat class View/MainObject extend AppCompatActivity sebagai class yang dipanggil saat aplikasi nyala. Mendefinisikan namalayoutBinding(contoh ActivityObjectBinding) dan ViewModelObject. Override onCreate, didalam method untuk ActivityObjectBinding = DataBindingUtil.setContentView(this, R.layout.activity_object); dan ViewModelObject diinisialisasi dengan new, terakhir set ActivityObjectBinding dengan ViewModelObject
-Untuk fragment/item menu pada list view menggunakan DataBindingUtil.inflate

Show your support

Clapping shows how much you appreciated Yoshua Aditya Kurnia’s story.