Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon MVVMCROSS xử lý mã cụ thể của nền tảng như thế nào


MVVMCROSS xử lý mã cụ thể của nền tảng như thế nào


MVVMcross được thiết kế để xử lý mã cụ thể của nền tảng một cách hiệu quả bằng cách tách logic ứng dụng thành hai phần chính: một dự án cốt lõi và các dự án dành riêng cho nền tảng. Dự án cốt lõi, thường là thư viện tiêu chuẩn .NET, chứa logic kinh doanh, xem các mô hình, mô hình và giao diện cho các dịch vụ dành riêng cho nền tảng. Điều này cho phép chia sẻ mã tối đa trên các nền tảng khác nhau như Android, iOS và Windows.

Các dự án dành riêng cho nền tảng

Mỗi dự án dành riêng cho nền tảng (ví dụ: Xamarin.Android, Xamarin.IOS) chứa giao diện người dùng và triển khai các dịch vụ dành riêng cho nền tảng. Các dự án này chịu trách nhiệm khởi tạo khung MVVMcross và đăng ký các dịch vụ dành riêng cho nền tảng bằng cách sử dụng lớp thiết lập. Lớp thiết lập hoạt động như một bootstrapper cho MVVMcross, cho phép các nhà phát triển tùy chỉnh hành vi của khung cho mỗi nền tảng.

Đảo ngược kiểm soát (IOC) và tiêm phụ thuộc

MVVMCROSS sử dụng đảo ngược đảo ngược của container (IOC) để quản lý các phụ thuộc trong suốt ứng dụng. Điều này cho phép các dịch vụ dành riêng cho nền tảng được đăng ký và đưa vào logic của dự án cốt lõi. Ví dụ: nếu một ứng dụng cần truy cập Dịch vụ vị trí GPS, dịch vụ GPS có thể được đăng ký trong lớp Cài đặt dành riêng cho nền tảng và sau đó được đưa vào các mô hình xem hoặc các phần khác của dự án cốt lõi.

Tùy chỉnh hành vi nền tảng

Các nhà phát triển có thể tùy chỉnh hành vi cụ thể của nền tảng bằng các phương thức ghi đè trong lớp Cài đặt. Chẳng hạn, trên Android, bạn có thể ghi đè các phương thức trong `mvxandroidsetup` để đăng ký các dịch vụ dành riêng cho Android hoặc xử lý các sự kiện vòng đời dành riêng cho Android. Tương tự, trên iOS, bạn sẽ sử dụng `mvxiossetup` để xử lý việc khởi tạo và đăng ký dịch vụ dành riêng cho iOS.

Xem người thuyết trình

MVVMCROSS cũng cung cấp cho người trình bày xem, chịu trách nhiệm quyết định cách trình bày các quan điểm trên mỗi nền tảng. Điều này cho phép tùy chỉnh logic trình bày UI, chẳng hạn như hiển thị chế độ xem một cách vừa hoặc là một phần của ngăn xếp điều hướng, tùy thuộc vào các quy ước của nền tảng.

plugin và tiện ích mở rộng

MVVMCROSS cung cấp một khung plugin cho phép các nhà phát triển dễ dàng tích hợp các plugin của bên thứ ba cho các chức năng chung như nội địa hóa, cảm biến, v.v. Các plugin này có thể được sử dụng trên nhiều nền tảng, làm giảm thêm nhu cầu về mã dành riêng cho nền tảng.

Tóm lại, MVVMcross xử lý mã dành riêng cho nền tảng bằng cách cung cấp một cách tiếp cận có cấu trúc để tách logic được chia sẻ khỏi các triển khai dành riêng cho nền tảng. Nó sử dụng IOC và tiêm phụ thuộc để quản lý các dịch vụ nền tảng, cho phép tùy chỉnh thông qua lớp thiết lập và hỗ trợ các plugin để mở rộng chức năng trên các nền tảng.

Trích dẫn:
[1] https://github.com/mvvmcross/mvvmcross
[2] https://dev.to/christian1006/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework-2920
[3] https://canbilgin.wordpress.com/tag/mvvmcross/
[4] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[5] https://stackoverflow.com/questions/14337063/platform-specific-ioc-in-mvvmcross
[6] https://stackoverflow.com/questions/61641185/platform-specific-service-causes-an-exception-mvvmcross-xamarin-ios
.
[8] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-packages
[9] https://www.codeproject.com/Articles/863695/Introduction-to-Mvvmcross-Platform
[10] https://www.mvvmcross.com/documentation/getting-started/getting-started
[11] https://www.mvvmcross.com/documentation/advanced/customizing-using-App-and-Setup