Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Каковы основные различия между использованием mvvmcross и xamarin.forms


Каковы основные различия между использованием mvvmcross и xamarin.forms


MVVMcross и Xamarin.forms-это две различные технологии, используемые в кроссплатформенном разработке мобильных приложений, каждая из которых служит различным целям и предлагает уникальные преимущества.

Обзор Xamarin.forms

Xamarin.forms-это структура, разработанная Microsoft, которая позволяет разработчикам создавать кроссплатформенные приложения с использованием общей базы C# Code и XAML для пользовательского интерфейса. Это позволяет разработчикам писать один раз и работать на нескольких платформах, включая iOS, Android и UWP. Xamarin.forms идеально подходит для проектов, где желателен согласованный пользовательский интерфейс на разных платформах, и он упрощает процесс разработки, предоставляя унифицированный API для компонентов пользовательского интерфейса. Тем не менее, эта последовательность достигается за счет гибкости, так как пользовательский интерфейс ограничен подмножества общих элементов с каждой платформы, что может привести к ограничениям в достижении натурального вида и ощущения или усовершенствованной настройки пользовательского интерфейса [4] [7].

Обзор MVVMcross

MVVMcross-это кроссплатформенная структура MVVM (модель-ViewModel), которая поддерживает Xamarin.ios, xamarin.android, xamarin.forms и другие платформы. Он фокусируется на отделении бизнес -логики от пользовательского интерфейса, что позволяет разработчикам разделить значительную часть своего кода на разных платформах. MVVMcross предоставляет такие функции, как связывание данных, навигация, инверсия контроля и инъекция зависимостей, которые облегчают разработку сложных применений. В отличие от Xamarin.forms, MVVMcross не обеспечивает конкретную структуру пользовательского интерфейса; Вместо этого он позволяет разработчикам выбирать, как они хотят реализовать пользовательский интерфейс для каждой платформы, предлагая большую гибкость в достижении нативного опыта пользовательского интерфейса [7] [10].

Ключевые различия

1. Реализация пользовательского интерфейса:
- xamarin.forms: использует общий уровень пользовательского интерфейса на всех платформах, который упрощает разработку, но может ограничить настройку и натуральный вид.
- MVVMcross: позволяет использовать нативную реализацию пользовательского интерфейса на каждой платформе или общего пользовательского интерфейса с Xamarin.forms, обеспечивая большую гибкость в достижении конструкций пользовательского интерфейса, специфичной для платформы.

2. Обмен кодом:
- Обе фреймворки включают обмен кодом, но MVVMcross фокусируется на обмене бизнес -логикой (ViewModels), одновременно позволяя различным реализациям пользовательского интерфейса. Xamarin.forms делится как пользовательским интерфейсом, так и бизнес -логикой.

3. Навигация и привязка данных:
- MVVMcross предоставляет надежную навигационную систему и возможности привязки данных, которые работают в разных структурах пользовательского интерфейса, включая Xamarin.forms. Xamarin.forms опирается на свои собственные механизмы навигации и связывания данных.

4. Сложность проекта:
- Для сложных проектов, требующих расширенной настройки пользовательского интерфейса или функций, специфичных для платформы, MVVMcross может быть более подходящим из-за его гибкости. Для более простых проектов, где достаточно согласованного пользовательского интерфейса, Xamarin.forms могут быть более простыми для реализации.

5. Подход к разработке:
- Xamarin.forms часто предпочитает разработчики, знакомые с XAML и .NET, поскольку он обеспечивает унифицированный опыт разработки. MVVMcross полезен для проектов, в которых бизнес -логика должна быть отделена от пользовательского интерфейса, что позволяет обеспечить больше контроля над реализацией пользовательского интерфейса на каждой платформе.

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

Цитаты:
[1] https://visualstumagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx
[2] https://github.com/rogerwcpt/xamarin-mvvvm-frameworks
[3] https://www.mvvmcross.com/documentation/tutorials/tipcalc/a-xamarin-forms-version
[4] https://stackoverflow.com/questions/38450264/xamarin-forms-vs-xamarin-mvvmcross
[5] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework/
[6] https://canbilgin.wordpress.com/tag/mvvmcross/
[7] https://www.mvvmcross.com/documentation/getting-started/getting-started
[8] https://www.reddit.com/r/csharp/comments/a9mph1/mvc_or_mvvm_for_xamarin/
[9] https://canbilgin.wordpress.com/2017/03/26/xamarin-forms-application-with-mvvmcross/
[10] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/