Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Які основні проблеми при використанні mvvmcross


Які основні проблеми при використанні mvvmcross


MVVMCross-популярна рамка для побудови міжплатформних програм за допомогою моделі-View-ViewModel (MVVM). Хоча він пропонує багато переваг, таких як зв'язування даних та введення залежності, є кілька проблем, пов’язаних із його використанням.

Дефекти в компонентах рамок

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

Швидкість запуску

Програми MVVMCross часто відчувають повільніші часи запуску порівняно з іншими рамками. Це багато в чому пояснюється механізмами на основі відбиття, що використовуються під час ініціалізації, які притаманні архітектурі рамки. Хоча ця повільність також поширена в програмах Xamarin взагалі, це може бути недоліком для користувачів, які очікують швидких запуску додатків [3].

Оновлення болів

Оновлення версій MVVMcross може бути складним завдяки значним змінам конвенцій та поведінки. Документація часто відстає від цих оновлень, що призводить до труднощів у пошуку рішень нових питань. Це призводить до тривалого, а іноді і неприємного процесу оновлення [3].

Якість документації

Якість документації MVVMcross - ще одна проблема. Він часто містить орфографічні помилки, не вистачає комплексних довідкових матеріалів і включає зламані посилання. Розробникам часто доводиться заглиблюватися у вихідний код рамки, щоб знайти точну інформацію, яка може зайняти багато часу і вимагає хорошого розуміння архітектури рамок [3].

застарілі зразки

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

Обмеження зв'язування даних

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

проблеми навігації та життєвого циклу

Навігація між ViewModels та управлінням своїм життєвим циклом може бути складною, особливо при роботі з поведінкою, що стосується платформи, такою, як Tombstoning на Android. MVVMCross надає методи життєвого циклу, щоб допомогти керувати цими сценаріями, але оволодіння їм вимагає хорошого розуміння як рамки, так і основної специфіки платформи [7].

Інверсія локатора управління та обслуговування

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

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

Цитати:
[1] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[2] https://github.com/mvvmcross/mvvmcross/issues/4201
[3] http://wojosoftware.com/software/mvvmcross/
[4] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup
[5] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[6] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[7] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[8] https://stackoverflow.com/questions/16301045/mvvmcross-v3-is-that-wrong-to-try-to-use-behaviours-and-storyboards-in-in-mu