Порівнюючи використання MVVMcross з Xamarin.Forms та Kexamarin Native, виникає кілька ключових відмінностей, насамперед з точки зору гнучкості інтерфейсу, підходу до коду та підходу до розробки.
Гнучкість та контроль інтерфейсу інтерфейсу
- xamarin.forms: Ця рамка забезпечує спільний рівень інтерфейсу інтерфейсу на платформах, що спрощує розробку, дозволяючи один раз писати код інтерфейсу та розгорнути його на декількох платформах. Однак цей спільний інтерфейс може обмежити налаштування функцій, що стосуються платформи, вимагаючи власних рендерерів для більш вдосконалених елементів інтерфейсу [7] [9]. MVVMcross можна використовувати з Xamarin.forms для управління логікою та навігацією бізнесу, але інтерфейс користувача залишається стандартизованим на різних платформах [1] [10].
- Ксамарін рідний: Використовуючи Xamarin Native з Mvvmcross, ви маєте повний контроль над інтерфейсом користувача для кожної платформи. Це дозволяє здійснювати специфічні для платформи впровадження інтерфейсу, максимізуючи рідний вигляд та відчуття кожної платформи. Хоча такий підхід вимагає більше зусиль для розробки окремих шарів інтерфейсу для iOS та Android, він пропонує більшу гнучкість та налаштування [7] [9].
Спільний доступ та повторне використання коду
- xamarin.forms: З Xamarin.forms ви можете поділитися не лише логікою бізнесу (через mvvmcross), але і код інтерфейсу інтерфейсу на платформах. Це спрощує розробку та зменшує кількість коду, необхідного для підтримки. Однак інтерфейс користувача обмежується загальним набором елементів, які працюють на всіх платформах [4] [10].
- Ксамарін Рідний: У рідній установці Xamarin з MVVMCross ви можете поділитися бізнес -логікою (ViewModels) на платформах, але ви повинні реалізувати інтерфейс окремо для кожної платформи. Такий підхід дозволяє більше повторно використовувати коду в логіці презентації та логіці інтерфейсу UI при використанні MVVMcross, але все ще вимагає розробки інтерфейсу інтерфейсу [9].
підхід до розробки
- xamarin.forms: Розвиток з Xamarin.forms та Mvvmcross часто віддають перевагу розробникам без великого мобільного досвіду, оскільки це спрощує міжплатформне розвиток інтерфейсу. Рамка обробляє значну частину основної складності, що дозволяє розробникам зосередитись на спільній логіці та інтерфейсі [4] [10].
-Рідний Xamarin: Рідний розвиток Xamarin з MVVMcross, як правило, віддає перевагу розробникам, які хочуть тонкозернистого контролю над інтерфейсом інтерфейсу та зручніше з розробкою, що стосується платформи. Такий підхід вимагає більшого досвіду в галузі розвитку iOS та Android, але пропонує більшу гнучкість у розробці та впровадженні інтерфейсу [7] [9].
навігація та обов'язки
- xamarin.forms з mvvmcross: Навігація в xamarin.Forms з Mvvmcross управляється на рівні ViewModel, що дозволяє чистити поділ проблем. MVVMcross забезпечує розширені можливості зв'язування, такі як значення резервного відбиття, хоча йому не вистачає деяких функцій, таких як властивість джерела, знайдена у стандартних ксеарінах.forms [2] [10].
- Ксамарін Уродженець з MVVMCross: У рідних проектах Xamarin Mvvmcross обробляє навігацію та поєднання перегляду/перегляду моделів, що забезпечує послідовну архітектуру MVVM на платформах. Ця установка дозволяє розробникам використовувати специфічні для платформи навігаційні схеми, зберігаючи спільний діловий логічний рівень [3] [9].
Підсумовуючи це, хоча обидва підходи можуть використовувати MVVMcross для архітектури MVVM, Xamarin.forms пропонує спільний рівень інтерфейсу інтерфейсу з меншим контролем щодо функцій інтерфейсу інтерфейсу, тоді як Xamarin Native забезпечує повний контроль над налаштуванням інтерфейсу, але вимагає більшої кількості зусиль для розробки окремих реалізацій інтерфейсу.
Цитати:[1] https://www.mvvmcross.com/documentation/platform/xamarin.forms/xamarin-forms
[2] https://www.xamarinhelp.com/use-xamarin-forms-mvvm-framework/
[3] https://canbilgin.wordpress.com/tag/mvvmcross/
[4] https://www.mvvmcross.com/documentation/getting-started/getting-started
[5] https://www.reddit.com/r/androiddev/comments/6cseds/what_are_the_disadvantages_of_xamarin_for_android/
[6] https://canbilgin.wordpress.com/2017/03/26/xamarin-forms-application-with-mvvmcross/
[7] https://stackoverflow.com/questions/38450264/xamarin-forms-vs-xamarin-mvvmcross
[8] https://mentormate.com/blog/6-reasons-mvvmcross-speeds-xamarin-development-personalizes-ux/
[9] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[10] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx