4 Langkah Mudah Mengimplementasikan MVVM dengan Kotlin
Diterjemahkan dari 4 Steps to MVVM in Android (Kotlin)
Saya merasa belum pernah ada yang menjelaskan MVVM dalam langkah-langkah yang mudah dan contoh yang sederhana, oleh karena itu saya memutuskan untuk menuliskannya. Di contoh ini kita akan membuat sebuah aplikasi sederhana untuk mendemonstrasikan MVVM dengan mengambil data hari libur nasional di Amerika Serikat dari API publik serta menampilkannya di RecyclerView.
4 Langkah Implementasi MVVM
- Buat Model (alias POJO)
- Buat Repositori (untuk mengambil datai dari API atau DB)
- Buat ViewModel (extend ViewModel, memanggil liveData dari Repository)
- Buat Activity (observe ViewModel & menampilkan data)
Saya mengasumsikan pembaca menggunakan AndroidX dan sudah meng-applied plugin ‘kotlin-android-extensions’, jika belum kunjungi halaman project ini di Github. Mari kita mulai.
Langkah 1: Buat Model (alias POJO)
Mari kita buat sebuah kelas Pojo untuk menyimpan nilai dari setiap hari libur.
Langkah 2: Membuat Repositori
Repositori adalah sebuah kelas dimana terjadi proses pengambilan data dari API atau DataBase.
Di dalam repositori, buat sebuah field MutableLiveData.
var mutableList: MutableLiveData<ArrayList<HolidayModelKotlin>> = MutableLiveData()
Ambil data dari API lalu masukkan ke dalam field tadi.
mutableList.value = list
Berikut contoh sebuah repositori yang utuh.
Langkah 3: Buat ViewModel
ViewModel hanyalah sebuah kelas yang dibuat dengan meng-extend ViewModel untuk memgang suatu suatu data, definisi resminya adalah
Kelas ViewModel didesain untuk memegang dan mengelola data yang berhubungan dengan UI dalam suatu proses yang sadar akan siklus hidup suatu Activity/Fragment. Hal ini memungkinkan data untuk tetap terjaga meskipun terjadi configuration changes seperti rotasi layar.
Membuat sebuah ViewModel dapat dilakukan dengan meng-extends suatu kelas dengan ViewModel, melakukan inisialisasi objek repositori di konstruktor dan membuat sebuah getter yang mengambil data dari repositori.
Langkah 4: Buat Activity
Di dalam Activity tersebut, buat sebuah objek ViewModel, lalu panggil getter untuk meng-observe data dengan LiveData seperti pada contoh di bawah:
Setiap kali data berubah, kita akan mendapatkan sebuah callback di dalam method onChanged. Di dalam method onChanged kita akan mengirimkan ArrayList ke dalam adapter untuk di tampilkan ke RecyclerView.
Untuk melihat kode yang lengkap, silahkan periksa package ‘kotlin’ di repositori Github berikut: