Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Как MVVMcross улучшает повторное использование кода в кроссплатформенных приложениях


Как MVVMcross улучшает повторное использование кода в кроссплатформенных приложениях


MVVMcross значительно улучшает повторное использование кода в кроссплатформенных приложениях, используя архитектурный шаблон модели View-ViewModel (MVVM). Вот как это достигает этого:

1. Разделение проблем: MVVMcross способствует четкому разделению проблем, деляя приложение на две основные части: ядро ​​и пользовательский интерфейс. Основной проект, как правило, портативная библиотека классов (PCL) или стандартная библиотека .NET, содержит все модели ViewModels, модели и бизнес -логику. Это позволяет использовать максимальное повторное использование кода на разных платформах, так как бизнес-логика отделена от кода, специфичной для платформы [1] [2] [7].

2. ViewModels в основном проекте: размещая ViewModels в основной проект, MVVMcross позволяет разработчикам девеловать эти компоненты на нескольких платформах. Это означает, что логика для обработки взаимодействий пользователей, манипуляции с данными и навигации может быть повторно использована без модификации на разных платформах, таких как iOS, Android и Windows [1] [3] [9].

3. Привязка данных: MVVMcross поддерживает привязку данных, которая автоматически обновляет пользовательский интерфейс, когда изменения происходят в ViewModel. Эта функция имеет решающее значение для поддержания согласованности между платформами и снижения потребности в ручных обновлениях пользовательского интерфейса, дальнейшее улучшение повторного использования кода [4] [5].

4. Инъекция зависимостей и плагины: MVVMcross включает в себя плагин-архитектуру и впрыскивание зависимостей (DI). Эти функции позволяют разработчикам реализовать функциональные возможности для конкретной платформы таким образом, чтобы их можно было легко получить доступ и повторно использоваться из основного проекта. Это означает, что, хотя уровень пользовательского интерфейса должен быть специфичным для платформы, многие базовые функциональные возможности все еще могут быть разделены [3] [9].

5. Навигация и просмотр докладчиков: MVVMcross предоставляет мощную навигационную систему ViewModel-первого, которая допускает оркестровку навигации приложений из основного проекта. Это означает, что поток взаимодействий пользователей и экранов может управляться центрально, что снижает необходимость в коде навигации для конкретной платформы [7].

6. Эффективная структура проекта: MVVMcross поощряет структурированный подход к организации проекта, с четким разделением между кодом-агентом-агентом в основном и платформе в проектах пользовательского интерфейса. Эта структура облегчает обслуживание и расширение кроссплатформенных приложений [2] [9].

В целом, MVVMcross усиливает повторное использование кода за счет централизации бизнес-логики, используя привязку к данным и предоставляя инструменты для управления функциональными возможностями, специфичными для платформы единым образом. Этот подход значительно уменьшает объем дублированного кода и ускоряет разработку кроссплатформенных приложений.

Цитаты:
[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
[3] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[4] https://tiefenauer.github.io/blog/mobile-app-development-with-xamarin-and-mvvmcross-part-1-Introduction/
[5] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[6] https://diglib.tugraz.at/download.php?id=576a78335451d&location=browse
[7] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[8] https://www.reddit.com/r/swift/comments/yrqlhu/is_crossplatform_the_future_of_mobile_development/
[9] https://leaware.com/creating cross-platform-xamarin-applications-using-the-mvvmcross-framework/
[10] https://stackoverflow.com/questions/22409697/maximizing-ui-code-reuse-with-xamarin-mvvmcross