MVXView ja `MVXViewController` kasutamisel võib tekkida mitu levinud lõkse. Nende probleemide mõistmine võib aidata arendajatel neid vältida ja tagada sujuvam areng.
1. Tüüpi teisendamise probleemid **
Üks levinum probleem on tüübi teisendamine. MVVM -i mustris ei pruugi UI -s määratletud atribuudid olla otseselt tarbitavad. Näiteks võib pildiomadus olla baitmassiiv, kuid kasutajaliides eeldab seda pildi allikana. MVVMCROSS pakub selliste konversioonide käsitlemiseks liidest `imvxValueConverter`, kuid see nõuab valamist, mis võib olla tülikas. Klass geneeriline `mvxValueConverter` aitab teil selgesõnaliselt määratleda sisend- ja väljundtüübid [1].2. elutsükli juhtimine **
Alustades MVVMCROSS 5.0 -ga, on ViewModels ühendatud vaate elutsükliga, pakkudes selliseid meetodeid nagu "ilmumine ()`, "ilmunud ()`, "kadumine ()` ja "kadunud ()`. Ehkki need meetodid pakuvad rohkem kontrolli ViewModeli oleku üle, pole need 100% usaldusväärsed ja neid võivad mõjutada platvormipõhised sündmused või kohandatud rakenduse loogika [2] [7]. Nende elutsükli sündmuste nõuetekohase käitlemise tagamine on ülioluline.3. sidumisprobleemid **
Sidumisprobleemid võivad tekkida, eriti kohandatud vaadete või juhtelementide kasutamisel. Näiteks kui enne ViewModeli andmete kättesaadavust luuakse kohandatud juhtelement, võib dataContExt olla null. Diiviala kasutamine aitab selle lahendada, viivitades sidumisega, kuni andmed on saadaval [4].4. ViewModels korduvkasutatavus **
MVVMcrossi vaatemodellid, eriti iOS -is, võivad tihedalt ühendada konkreetsete vaadetega, vähendades nende korduvkasutatavust. See juhtub siis, kui ViewModels haldab vaatepõhist loogikat, näiteks siltide vormindamise või tabeli vaadete andmeallikad. Selle vältimiseks hoidke ViewModels keskendunud äriloogikale ja kasutage muundureid või muid mehhanisme vaatepõhiste teisenduste käsitlemiseks [3].5. platvormipõhine navigeerimine **
MVVMCROSS toetab platvormidevahelist navigeerimist, kuid igal platvormil on ainulaadsed esitusmustrid. Näiteks iOS-is võib ekraanivoogude süžeeskeemide kasutamine vastuolus MVVMCROSSi platvormiülese lähenemisviisiga. Parim on käsitleda navigeerimisloogikat ViewModelis ja kasutada platvormipõhiseid saatejuhte, et hallata vaateid kuvamise kohta [5] [9].6. linkeri ohutus **
MVVMCROSS ei ole linkeriohutu, see tähendab, et raamistiku osad võib linkeri koostamise ajal välja võtta. See võib põhjustada käitumisvigu. Selle vältimiseks peate vihjama linkeri, et säilitada raamistiku vajalikke osi [6].Olles nende potentsiaalsete lõksudest teadlik, saavad arendajad MVXViewControlleri "MVXView" ja "MVXViewControlleri" kasutamise keerukuses paremini navigeerida.
Tsitaadid:]
[2] https://www.mvvmcross.com/mvvmcross-5-release/
[3] https://www.danielhall.io/the-problems-with-mvvm-on-ios
]
[5] https://kerry.lothrop.de/ios-ui-with-mvvmcross/
[6] https://github.com/mvvmcross/mvvmcross/issues/4286
]
]
[9] https://www.mvvmcross.com/documentation/fundamentals/view-presenters