Diary of Duc

Android MVVM cùng Data binding

2019-07-29

MVVM là 1 design pattern trong Android, mục đích cải thiện kiến trúc của ứng dụng, dễ dàng phát triển, gỡ lỗi, testing,…


MVVM là : Model, ViewModel, View
* Model là các class chứa Data, business logic.
* ViewModel: Là class định nghĩa bussiness của View, không bị rằng buộc với View.
* View: Là Activity, Fragment.

Trong MVVM Nhiều View cùng tham chiếu được tới 1 ViewModel, 1 View chỉ có thế tham chiếu tới 1 ViewModel

Data binding là 1 thư viện, giúp rằng buộc dữ liệu giữa View và class logic Kotlin, Java.

Nói thế chắc chả hiểu lắm, chúng ta đi viết 1 màn hình đăng ký đơn giản.


Cấu trúc package

Tạo cấu trúc package như hình dưới:

Model

Trong package Models, tạo RegisterDataModel.kt định nghĩa cấu trúc data. Thông tin nhập vào chỉ có username, password, country:

Tạo Register.kt định nghĩa business cho Chức năng đăng nhập:

ViewModel

Trong package viewmodels, tạo RegisterViewModel.kt định nghĩa business view:

@Bindable là chú thích nơi data sẽ rằng buộc.

Định nghĩa 1 custom thuộc tính toastMessageAction, ta sẽ Toast message của nó ra màn hình:

View

Trong package views
Ta rằng buộc data giữa View với ViewModel:

Đoạn này định nghĩa ViewModel được sử dụng:

Đoạn này sẽ rằng buộc Editext với dữ liệu trong ViewModel, giá trị của Editext là giá trị của RegisterViewModel.username, khi 1 trong 2 thay đổi thì phía còn lại cũng thay đổi:

Đoạn này sử dụng custom thuộc tính bind:toastMessageAction:

Trong MainActivity.kt, ta định nghĩa layout và ViewModel được sử dụng:



Tags: android

URL QR