MVVMcross cải thiện đáng kể việc sử dụng lại mã trong các ứng dụng đa nền tảng bằng cách tận dụng mẫu kiến trúc mô hình-View-ViewModel (MVVM). Đây là cách nó đạt được điều này:
1. Tách các mối quan tâm: MVVMCROSS thúc đẩy sự phân tách rõ ràng các mối quan tâm bằng cách chia ứng dụng thành hai phần chính: lõi và UI. Dự án cốt lõi, thường là thư viện lớp di động (PCL) hoặc thư viện tiêu chuẩn .NET, chứa tất cả các chế độ xem, mô hình và logic kinh doanh. Điều này cho phép sử dụng lại mã tối đa trên các nền tảng khác nhau, vì logic kinh doanh được tách rời khỏi mã dành riêng cho nền tảng [1] [2] [7].
2. ViewModels Trong dự án cốt lõi: Bằng cách đặt ViewModels vào dự án cốt lõi, MVVMcross cho phép các nhà phát triển chia sẻ các thành phần này trên nhiều nền tảng. Điều này có nghĩa là logic để xử lý các tương tác người dùng, thao tác dữ liệu và điều hướng có thể được sử dụng lại mà không cần sửa đổi trên các nền tảng khác nhau như iOS, Android và Windows [1] [3] [9].
3. Liên kết dữ liệu: MVVMCROSS hỗ trợ liên kết dữ liệu, tự động cập nhật giao diện người dùng khi các thay đổi xảy ra trong ViewModel. Tính năng này rất quan trọng để duy trì tính nhất quán trên các nền tảng và giảm nhu cầu cập nhật giao diện người dùng thủ công, tăng cường hơn nữa việc sử dụng lại mã [4] [5].
4. Tiêm phụ thuộc và plugin: MVVMCROSS bao gồm kiến trúc trình cắm và khả năng tiêm phụ thuộc (DI). Các tính năng này cho phép các nhà phát triển thực hiện các chức năng dành riêng cho nền tảng theo cách mà chúng có thể dễ dàng truy cập và tái sử dụng từ dự án cốt lõi. Điều này có nghĩa là trong khi lớp UI phải dành riêng cho nền tảng, nhiều chức năng cơ bản vẫn có thể được chia sẻ [3] [9].
5. Điều hướng và xem Người thuyết trình: MVVMCROSS cung cấp một hệ thống điều hướng đầu tiên ViewModel, cho phép điều phối điều hướng ứng dụng từ dự án cốt lõi. Điều này có nghĩa là luồng tương tác người dùng và chuyển đổi màn hình có thể được quản lý tập trung, giảm nhu cầu về mã điều hướng cụ thể của nền tảng [7].
6. Cấu trúc dự án hiệu quả: MVVMCROSS khuyến khích một cách tiếp cận có cấu trúc cho tổ chức dự án, với sự tách biệt rõ ràng giữa mã bất khả tri về nền tảng trong mã cốt lõi và cụ thể của nền tảng trong các dự án UI. Cấu trúc này tạo điều kiện cho việc duy trì và mở rộng các ứng dụng đa nền tảng dễ dàng hơn [2] [9].
Nhìn chung, MVVMcross tăng cường sử dụng lại mã bằng cách tập trung logic kinh doanh, tận dụng liên kết dữ liệu và cung cấp các công cụ để quản lý các chức năng cụ thể của nền tảng theo cách thống nhất. Cách tiếp cận này làm giảm đáng kể lượng mã trùng lặp và tăng tốc độ phát triển ứng dụng đa nền tảng.
Trích dẫn:[1] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[2] https://www.toptal.com/xamarin/cross-platform-apps-with-xamarin
.
.
[5] https://www.mvvmcross.com/documentation/fundaments/data-binding
[6] https://diglib.tugraz.at/download.php?id=576a78335451d&location=browse
[7] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
.
.
[10] https://stackoverflow.com/questions/22409697/maximizing-ui-code-reuse-with-xamarin-mvvmcross