Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Як mvvmcross підтримує конкретний код платформи


Як mvvmcross підтримує конкретний код платформи


MVVMCross підтримує специфічний для платформи код за допомогою декількох механізмів, що дозволяє розробникам створювати міжплатформні програми, одночасно використовуючи функції рідної платформи. Ось детальний огляд того, як MVVMCross сприяє конкретному коду платформі:

1. Розділення проблем **

Програми MVVMCross, як правило, структуровані на дві основні частини: основні проекти проекту та проекти інтерфейсу платформи. Основний проект, часто реалізований як бібліотека портативних класів (PCL) або стандартна бібліотека .NET, містить логіку бізнесу, моделі, моделі перегляду та інтерфейси для специфічних для платформи послуг. Це розділення дозволяє максимально повторно використовувати коду на платформах, зберігаючи специфічний для платформи код, ізольований у проектах інтерфейсу [2] [7].

2. Інверсія контролю (МОК) та введення залежності **

MVVMCross використовує контейнер IOC для управління залежністю. Це дозволяє розробникам реєструвати специфічні для платформи послуги в проектах, що стосуються платформи, та вводити їх у моделі перегляду основних проектів. Наприклад, якщо додаток повинен отримати доступ до камери, основний проект може визначити інтерфейс доступу до камери, і кожен проект, що стосується платформи, може забезпечити власну реалізацію цього інтерфейсу. Потім контейнер МОК вирішує ці залежності під час виконання, гарантуючи, що використовується правильна послуга, специфічна для платформи [2] [8] [11].

3. Служби з специфічними для платформи **

Служби, специфічні для платформи, реалізовані в рідних проектах інтерфейсу. Ці послуги зареєстровані в класі налаштування кожного проекту платформи. Клас налаштування відповідає за завантаження MVVMCross та реєстрацію специфічних для платформи послуг з контейнером МОК. Це дозволяє моделям перегляду в основному проекті використовувати функціональні можливості, що стосуються платформи, без безпосередньо посилань на API, що стосуються платформи [2] [7].

4. Рамка плагіна **

MVVMCross включає плагінову рамку, яка дозволяє розробникам легко інтегрувати функції, що стосуються платформи, у свої програми. Плагіни можуть забезпечити такі функції, як розташування GPS, локалізація, датчики тощо. Ці плагіни зареєстровані в контейнері МОК, що дозволяє моделям перегляду доступу до специфічних для платформи функцій за допомогою введення залежності. Ця рамка також підтримує макетні реалізації для тестування [4] [11].

5. настроюється двигун зв'язування **

MVVMCross забезпечує налаштований двигун прив’язки, який дозволяє розробникам створювати спеціальні прив’язки для конкретних переглядів платформи. Ця функція особливо корисна при роботі з нативними елементами управління, які не підтримують стандартні механізми зв'язування даних. Визначаючи власні прив’язки, розробники можуть забезпечити належне підключення моделей їх переглядів до конкретних переглядів платформи [4].

6. Платформа ведучі **

MVVMCross використовує специфічні для платформи ведучих (наприклад, `imvxioiewiewpresenter`,` imvxandroidviewpresenter`), щоб керувати тим, як відображаються перегляди на кожній платформі. Ці присутні дозволяють налаштувати логіку презентації, що дозволяє розробникам адаптувати поведінку інтерфейсу до вимог конкретної платформи [3].

Підводячи підсумок, MVVMCross підтримує специфічний для платформи код, надаючи структурований підхід до відокремлення ділової логіки від впровадження специфічної платформи, використання IOC та вприскування залежності для управління послугами та пропонування настроюваних рамок прив'язки та плагінів для інтеграції нативних функцій. Це дозволяє розробникам максимізувати повторне використання коду, все ще забезпечуючи досвід роботи з платформи.

Цитати:
[1] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-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://github.com/mvvmcross/mvvmcross
[5] https://www.codeproject.com/articles/863695/introduction-to-mvvmcross-platform
[6] https://mentormate.com/blog/6-reasons-mvvmcross-speeds-xamarin-development-personalizes-ux/
[7] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[8] https://stackoverflow.com/questions/14337063/platform-scific-ioc-in-mvvmcross
[9] https://www.mvvmcross.com/documentation/getting-started/getting-started
[10] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework/
[.