Az MVVMCross népszerű keret a platformok közötti alkalmazások felépítéséhez a Model-View-ViewModel (MVVM) mintázat felhasználásával. Noha számos előnyt kínál, például az adatkötési és a függőségi injekciót, számos kihívást jelent a használatával.
Hibák a keretkomponensekben
Az MVVMCross egyik fő kihívása a hibák jelenléte néhány összetevőben, különös tekintettel az Android és iOS nézetekkel, amelyek támogatják az adatkötést. Ezek a hibák problémákhoz vezethetnek az UI -val, és további hibakeresési erőfeszítéseket igényelhetnek. Mivel az MVVMCross nyílt forráskódú, a felhasználók hozzájárulhatnak a javításokhoz, de ez nem mindig lehet egyértelmű a fejlesztők számára, anélkül, hogy a keret belső részéről széles körű ismereteket ismernének [3].
indítási sebesség
Az MVVMCross alkalmazások gyakran lassabb indítási időket tapasztalnak meg, mint más keretekhez. Ez nagyrészt az inicializálás során alkalmazott reflexió-alapú mechanizmusoknak köszönhető, amelyek a keret építészetének rejlik. Noha ez a lassúság általában a Xamarin alkalmazásokban is gyakori, ez hátrányt jelenthet azoknak a felhasználóknak, akik várják a gyors alkalmazás indítását [3].
Frissítse a fájdalmakat
Az MVVMCross verziók frissítése kihívást jelenthet az egyezmények és viselkedés megnevezésének jelentős változásai miatt. A dokumentáció gyakran elmarad ezeknek a frissítéseknek, ami nehézségekhez vezet az új kérdésekre vonatkozó megoldások megtalálásában. Ez hosszú és néha frusztráló frissítési folyamatot eredményez [3].
Dokumentáció minősége
Az MVVMCross dokumentáció minősége egy másik kihívás. Gyakran helyesírási hibákat tartalmaz, nincs átfogó referenciaanyagok, és törött linkeket tartalmaznak. A fejlesztőknek gyakran belemerülniük kell a keret forráskódjába, hogy pontos információkat találjanak, amelyek időigényesek lehetnek, és a keret építészetének megfelelő megértését igénylik [3].
elavult minták
Az MVVMCross a mintaprojektek tárolóját biztosítja, de ezek közül a minták közül sok elavult és nem kompatibilis a keret legújabb verzióival. Ez megnehezíti az új fejlesztők számára az indulás vagy a meglévő fejlesztők alkalmazkodását a keretrendszer változásaihoz. Csak néhány mintát tartanak fenn aktívan, ami korlátozza azok hasznosságát a tanulás és a hibaelhárítás szempontjából [3].
Adatkötési korlátozások
Míg az MVVMCross támogatja az adatkötést, bizonyos kötési módokat, például az egyszeri kötést, ritkábban használják, és nem megfelelőek minden forgatókönyvhöz. Ez az üzemmód nem figyeli aktívan a ViewModel változását, ami a nézetben elavult adatokhoz vezethet, ha nem megfelelően kezelik [1].
Navigációs és életciklus -problémák
A navigáció a ViewModels és az életciklusuk kezelése között összetett lehet, különösen akkor, ha olyan platform-specifikus viselkedéssel foglalkoznak, mint például az Android-on. Az MVVMCross életciklus -módszereket biztosít e forgatókönyvek kezelésére, de ezek elsajátításához mind a keret, mind a mögöttes platformplaton jól megértését igényli [7].
A vezérlés és a szolgáltatás lokátor inverziója
Míg az MVVMCross beépített szolgáltatási lokátor mintája és a vezérlés (NOB) támogatása erőteljes szolgáltatások, alapos beállításhoz és kezelést igényelnek. A szolgáltatások regisztrálása és a függőségek megoldása összetetté válhat, ha nem megfelelően szervezett, különösen nagyobb alkalmazásokban [3] [6].
Összefoglalva: míg az MVVMCross számos előnyt kínál a platformok közötti fejlesztéshez, számos kihívást jelent a hibákkal, a teljesítménygel, a dokumentációval és a bonyolultsággal kapcsolatban. E kihívások kezelése megköveteli a keret és annak alapjául szolgáló technológiák mély megértését.
Idézetek:[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-andsetup
[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-th-to-try-tous-behaviours--d-doryboards-in-a-mu