MVVMcross-это мощная кроссплатформенная структура MVVM, которая предлагает несколько преимуществ для разработки кроссплатформенных приложений, особенно при использовании с Xamarin. Вот некоторые из ключевых преимуществ использования MVVMcross:
шаблон MVVM и повторное использование кода
MVVMcross позволяет разработчикам реализовать шаблон модели-ViewModel (MVVM), который полезен для отделения логики приложений от пользовательского интерфейса. Это разделение позволяет повторно использовать бизнес -логику на разных платформах, таких как iOS, Android и Windows, путем размещения ViewModels в портативную библиотеку классов (PCL) или .NET стандартная библиотека [1] [2]. Этот подход значительно улучшает повторное использование кода, так как можно использовать одну и ту же ViewModel на нескольких платформах, причем каждая платформа реализует свой собственный пользовательский интерфейс.Привязка данных
MVVMcross поддерживает связывание данных, что имеет решающее значение для шаблона MVVM. Привязка данных позволяет автоматически обновляться элементам пользовательского интерфейса при изменении основных данных, снижая необходимость в ручном обновлении и коде шаблона [3] [5]. Эта функция помогает поддерживать чистое разделение проблем между пользовательским интерфейсом и бизнес -логикой.инъекция зависимостей и инверсия контроля
MVVMcross включает в себя встроенную инверсию контрольного контейнера (МОК), который поддерживает инъекцию зависимости. Это позволяет разработчикам легко управлять зависимостями между компонентами и услугами. Используя инъекцию конструктора, ViewModels может получать сервисы для специфичных для платформы без необходимости знать детали реализации, облегчая написание кроссплатформенного кода [2] [5].плагины и функциональность, специфичная для платформы
MVVMcross предлагает архитектуру плагина, которая позволяет разработчикам создавать и использовать функции, специфичные для платформы без дублирования кода. Эти плагины могут быть легко установлены через Nuget и предоставлять функции, такие как доступ к камере, GPS или операции базы данных, которые реализованы по -разному на каждой платформе [1] [2]. Этот подход упрощает интеграцию сервисов, специфичных для платформы, в кроссплатформенные приложения.тестируемость
Одним из значительных преимуществ использования MVVMcross является улучшенная тестируемость ViewModels. Поскольку ViewModels содержат бизнес-логику и отделена от пользовательского интерфейса, их можно легко протестировать независимо от кода пользовательского интерфейса, специфичной для платформы [2] [5]. Это облегчает запись модульных тестов для логики приложения.Навигация и просмотр докладчиков
MVVMcross предоставляет мощную навигационную систему ViewModel, которая включает в себя просмотр. Эти компоненты помогают управлять тем, как представления представлены на разных платформах, что позволяет получить большую гибкость в навигации и презентации пользовательского интерфейса [8].Гибкость и расширяемость
MVVMcross поддерживает как к Xamarin Native, так и к Xamarin.forms подходы к разработке, предлагая гибкость при выборе того, как реализовать уровень пользовательского интерфейса [9]. Кроме того, его природа и активное сообщество с открытым исходным кодом гарантируют, что его можно расширить и настроить для удовлетворения конкретных потребностей проекта.В целом, MVVMcross улучшает кроссплатформенную разработку за счет повторного использования кода, упрощения реализаций, специфичных для платформы, а также улучшения обслуживания и тестируемости приложений.
Цитаты:[1] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[2] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[3] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[4] https://stackoverflow.com/questions/32220007/what-does-mvvmcross-do-that-xamarin-dosnt-already
[5] https://www.cms.lk/mvvmcross-a-cross-platform-mobile-platform-for-xamarin/
[6] https://www.velvetech.com/blog/5-reasons-use-mobile-cross-platform-development/
[7] https://www.toptal.com/app/xamarin-mvvmcross-ciasharp-cross-platform
[8] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[9] https://www.mvvmcross.com/documentation/getting-started/getting-started