Heyyoo gengs! Kembali bersama saya. Kali ini saya ingin mengenalkan tentang MVVM pada Kotlin.
MVVM (Model-View-ViewModel) adalah salah satu Architectural Patterns yang membagi tanggung jawab kepada tiga komponen, yaitu Model, View dan ViewModel. View bertanggung jawab untuk semua hal yang berhubungan dengan UI seperti menampilkan loading, dialog, toast dll. Model merupakan komponen yang bertanggung untuk menyediakan data yang dibutuhkan. Terakhir ViewModel merupakan komponen inti dari Architectural Patterns ini, tugasnya menyimpan dan mengambil data dari Model untuk nantinya ditampilkan oleh View.
Komponen dari MVVM terdiri dari sebuah model, view, dan viewmodel.
Model: adalah kelas yang digunakan untuk membuat data. Salah satu dari strategi implementasi model adalah membuat model terbuka via observables agar terpisah antara ViewModel atau observer / consumer.
View: Tugas dari View pada MVVM adalah untuk mengamati sebuah ViewModel observable guna mendapatkan data yang akan mengupdate UI/ tampilan.
ViewModel: ViewModel berinteraksi dengan model dan juga menyiapkan observables yang akan diobservasi oleh View. ViewModel dapat menyediakan hooks untuk View dan pass events kepada model.
Salah satu implementasi strategi dari ViewModel adalah memisahkannya dengan View. Contohnya, ViewModel tidak seharusnya tahu dengan siapa View berinteraksi.
Keuntungan menggunakan Architecture Pattern MVVM
Maintainability
- Maintainability
Memisahkan berbagai jenis kode dengan bersih, dan membuatnya mudah untuk masuk ke bagian-bagian tertentu tanpa khawatir jika ada perubahan. Anda pun bisa tetap gesit mengembangan aplikasi dan terus bergerak demi cepatnya rilis.
- Testability
Bagaimana jika Anda menerapkan MVVM dengan benar pada tiap dependensi internal dan eksternal dengan benar di setiap bagian kode? Itu akan memudahkan Anda melakukan pengujian. Pastikan bahwa saat menulis, pengujian berfungsi dengan benar dan tetap bekerja meski ada perubahan dalam pemeliharaan.
- Extensibility
Terkadang ketika Anda ngoding, Anda sering menulis kode yang berulang ulang. Dengan MVVM, Anda memiliki peluang lebih baik untuk membuat bagian-bagian itu reusable. Dengan MVVM, Anda juga memiliki kemampuan untuk mengganti atau menambah potongan kode baru yang sifatnya similar atau sama di dalam arsitektur.
Tujuan yang jelas dari pattern MVVM adalah abstraksi dari View yang mengurangi jumlah business logic dalam kode-belakang. Namun, berikut adalah beberapa keunggulan solid lainnya:
- ViewModel lebih mudah untuk unit test.
- Anda dapat mengujinya tanpa otomatisasi dan interaksi UI yang belum sempurna.
- Presenter dan logikanya memiliki hubungan yang tidak erat. Masih ada hubungan, tetapi ketika presenter atau logika diubah, tak ada efek banyak pada pasangannya.
Okey, sekian dulu pembahasan saya tentang Mengenal MVVM pada Kotlin.
Sampai jumpa pada kesempatan berikutnya. Bye…