Please enable JavaScript.
Coggle requires JavaScript to display documents.
31/03/2025 - Coggle Diagram
31/03/2025
Mô hình kiến trúc Android
MVP
View: hiểu thị dữ liệu cho người dùng, giao tiếp với presenter qua interface
View thường là activity hay fragment
Presenter: đống vai trò trung gian model và view, xử logic lấy dữ liệu model hiển thị lên view
Model: Chứa logic xử lí dữ liệu, chịu trách nhiệm lấy, lưu trữ và xử lí dữ liệu
Ví dụ: các đối tượng dữ liệu, repository, API service, database helper
Nhược điểm: tăng số lượng code do cần nhiều interface và class. Cần cẩn thận quản lí vòng đời của View và Presenter
ví dụ
Model
định nghĩa dữ liệu
class DAO: giao tiếp với cơ sở dữ liệu
class Database: cung cấp Database
Quản lý phiên bản và migration
Cung cấp DAO để thao tác dữ liệu thuận tiện
Định nghĩa cơ sở dữ liệu SQLite dễ dàng hơn
Đảm bảo chỉ có một instance duy nhất trong ứng dụng
class Repository: xử lí dữ liệu, call API, lưu dữ liệu vào DB
View
interface để Presenter giao tiếp với View
Activity/ Fragment: để hiển thị dữ liệu từ Presenter
Presenter
Điều phối dữ liệu từ Model giao tiếp với View
hỗ trợ
class RetrofitClient: Tạo Retrofit instance (thành phần thuộc network)
ApiService: Định nghĩa API Endpoint
Adapter: xử lí hiển thị danh sách trong RecyclerView
xml: layout
MVVM
View: giao diện người dùng (Activity, Fragment, compose), chỉ hiển thị dữ liệu
ViewModel: xử lí logic giao diện
Model: Xử lí dữ liệu: API, Room DB, logic nghiệp vụ
Lưu ý: ViewModel không nên chứa tham chiếu tới view/Context
Repository nên dùng coroutine hoặc flow để xử lí bất đồng bộ
Ví dụ
MVVM
ViewModel
View
Model
Class định nghĩa kiểu dữ liệu
repository
network
MVC
Model: Chứa logic xử lí dữ liệu, giao tiếp với cở sở dữ liệu hoặc API
data class: chứa, khai báo các thuộc tính của một đối tượng
class Repository: chứa các phương thức xử lí dữ liệu của đối tượng, call APi hay querry dữ liệu local
View: Chứa các thông tin hiển thị giao diện người dùng
Controller: Xử lí logic điều khiển kết nối View với Model
Nhược điểm: Activity, Fragment đóng vai trò Controller dẫn đến chứa nhiều logic, không phù hợp với LiveData
Nền tảng Android
Android Framework
Window Manager: Kiểm soát giao diện
Content Providers: Quản lí truy cập dữ liệu
Activity Manager: Quản lí vòng đời ứng dụng
Notification Manager: Hiển thị thông báo
View System: Thành phần UI
Android sử dụng nhân Linux để quản lí tiến trình, bộ nhớ, và phần cứng
Coroutin
Flow
concurrency