1. MVC (Model–View–Controller)
Konsep
Model: Menyimpan data dan logika bisnis.
View: Menampilkan data ke pengguna.
Controller: Menangani interaksi pengguna dan mengatur alur data antara Model dan View.
Karakteristik
Paling sederhana dan mudah dipahami.
Sering membuat Controller terlalu besar (God Class) dalam Android.
Contoh Singkat
2. MVP (Model–View–Presenter)
Konsep
Model: Logika bisnis dan data.
View: UI yang hanya menampilkan data.
Presenter: Menghubungkan View dan Model, mengatur logika aplikasi.
Karakteristik
View lebih bersih, tidak memuat logika.
Presenter lebih mudah dites (unit testing).
Contoh Singkat
3. MVVM (Model–View–ViewModel)
Konsep
Model: Data dan logika bisnis.
View: UI.
ViewModel: Menyediakan data ke View dan menangani logika UI menggunakan LiveData/StateFlow.
Karakteristik
Menggunakan data binding atau observable untuk sinkronisasi data.
Minim interaksi langsung antara View dan ViewModel.
Contoh Singkat
4. MVI (Model–View–Intent)
Konsep
Model: State tunggal yang mewakili UI.
View: Menampilkan state dan mengirim intent (aksi pengguna).
Intent: Representasi aksi pengguna.
Reducer: Mengubah state berdasarkan intent.
Karakteristik
Cocok untuk aplikasi kompleks dengan banyak perubahan state.
Semua state UI tersentralisasi dan terprediksi.
Contoh Singkat
Tabel Perbandingan
Arsitektur | Kelebihan | Kekurangan | Cocok Untuk |
|---|---|---|---|
MVC | Sederhana, mudah dipahami | Controller cepat membengkak | Proyek kecil / belajar |
MVP | View bersih, mudah dites | Presenter bisa membengkak | Proyek menengah |
MVVM | Sinkronisasi otomatis, minim boilerplate | Butuh pembelajaran LiveData/Flow | Proyek kecil–besar |
MVI | State terpusat, mudah diprediksi | Lebih kompleks & verbose | Aplikasi kompleks |
Seiten
Links
