— Android, Mobile — 2 min read
Android Architecture là cách chúng ta sắp xếp, cấu trúc một dự án Android giúp cho việc scale và maintain trở nên dễ dàng hơn. Lập trình viên thường sử dụng nhiều thời gian để maintain hơn là xây dựng dự án. Do đó, việc áp dụng một Architecture Pattern đúng đắn rất có ý nghĩa và hữu ích sau này.
Trong Android, MVC được coi như một design pattern mặc định. Trong đó, Activity được coi như một Controller (C) và XML files là View (V). Ngược lại MVVM gom hết Activity và XML thành View và thêm một thành phần mới gọi là ViewModel chịu trách nhiệm quản lý business logic. Điều này giúp phân tách lớp UI và logic một cách rõ ràng.
Trong MVP, Presenter và View biết về sự tồn tại của lẫn nhau. Chúng tương tác với nhau thông qua một interface. Trong MVVM, chỉ View biết về sự tồn tại của View-Model. Ngược lại, View-Model không hề biết gì về sự tồn tại của View.
Đầu tiên là sự phân chia mối quan tâm (separation of concerns), như business logic, UI và data model nên được phân tách riêng biệt nhau. Tiếp theo là sự tách rời, không ràng buộc (decoupling) của code: Mỗi đoạn code nên hoạt động như một black box do đó việc thay đổi đoạn code ở một class sẽ không ảnh hưởng những phần khác của codebase.
Thuật ngữ “Clean Architecture” được giới thiệu bởi Robert C.Martin và ông có xuất bản 1 cuốn sách về nó. Ý tưởng chính của Clean Architecture là nó tách rời sự tương tác của chung ta với data thành những thực thể nhỏ hơn được gọi là “use cases”. Nó là cách tốt nhất để viết một đoạn code không bị ràng buộc (decoupled code).
Hầu hết mọi ứng dụng đều lưu trữ và truy vấn data từ một local storage hoặc từ remote server. Android repository sẽ quyết định việc sử dụng dữ liệu được lưu ở local hay remote server. Nó giúp bóc tách logic ở storage với những class bên ngoài.
References: