MVVM (Model - View - ViewModel) adalah pola arsitektur pemrograman sebuah aplikasi yang memisahkan UI logic dari business logic atau sederhananya bagian code yang mengurusi data dipisahkan dari code yang mengurusi UI. Dengan memisahkan kedua bagian code tersebut, code UI akan lebih sederhana dan lebih muda dimaintenance karena tidak tercampur dengan code untuk menangani data. Model Model adalah class-class tanpa tampilan visual untuk menangani data. Termasuk dalam model ini adalah DTO (Data Transfer Object), DAO (Data Access Object), POJO (Plain Old Java Objects), dan entity objects. View View bertugas mengatur UI, termasuk layout dan logic yang berhubungan dengan UI. ViewModel ViewModel mengimplementasikan data dan perintah-perintah yang terhubung ke View untuk memberi notifikasi ke View apabila terdapat update / perubahan data melalui change notifications events. Pada pemrograman Android (native SDK) MVVM pattern diimplementasikan dalam Android Architecture Components .