Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kaip „MVVMCross“ pagerina kodo pakartotinį naudojimą įvairių platformų programose


Kaip „MVVMCross“ pagerina kodo pakartotinį naudojimą įvairių platformų programose


„MVVMCross“ žymiai pagerina kodo pakartotinį naudojimą kryžminių platformų programose, pasinaudodamas „Model-View-ViewModel“ (MVVM) architektūriniu modeliu. Štai kaip tai pasiekia:

1. Susijaudinimo atskyrimas: MVVMCROSS skatina aiškų susirūpinimo atskyrimą, padalijant programą į dvi pagrindines dalis: pagrindinę dalį ir UI. Pagrindiniame projekte, paprastai nešiojamoje klasės bibliotekoje (PCL) arba .NET standartinėje bibliotekoje, yra visi „ViewModels“, „Model“ ir verslo logika. Tai leidžia maksimalų kodo pakartotinį naudojimą įvairiose platformose, nes verslo logika yra atsiejama nuo konkrečios platformos kodo [1] [2] [7].

2. „ViewModels in Core Project“: įdėdami „ViewModels“ pagrindiniame projekte, „MVVMCross“ leidžia kūrėjams dalytis šiais komponentais keliose platformose. Tai reiškia, kad vartotojų sąveikos, manipuliavimo duomenų ir navigacijos logika gali būti pakartotinai panaudota nepakeičiant skirtingose ​​platformose, tokiose kaip „iOS“, „Android“ ir „Windows“ [1] [3] [9].

3. Duomenų įrišimas: „MVVMCross“ palaiko duomenų surišimą, kuris automatiškai atnaujina vartotojo sąsają, kai pokyčiai vyksta „ViewModel“. Ši funkcija yra labai svarbi norint išlaikyti nuoseklumą visose platformose ir sumažina rankinių vartotojo sąsajos atnaujinimų poreikį, dar labiau patobulinti kodo pakartotinį naudojimą [4] [5].

4. Priklausomybės injekcija ir papildiniai: „MvvMCross“ apima papildinio architektūrą ir priklausomybės injekcijos (DI) galimybes. Šios funkcijos leidžia kūrėjams įgyvendinti konkrečias platformos funkcijas taip, kad jas būtų galima lengvai pasiekti ir pakartotinai panaudoti iš pagrindinio projekto. Tai reiškia, kad nors UI sluoksnis turi būti specifinis platformai, vis tiek galima pasidalyti daugybe pagrindinių funkcijų [3] [9].

5. Naršymo ir peržiūros laidos vedėjai: „MVVMCross“ pateikia galingą „ViewModel-First“ navigacijos sistemą, kuri leidžia organizuoti programų naršymą iš pagrindinio projekto. Tai reiškia, kad vartotojo sąveikos ir ekrano perėjimų srautą galima valdyti centralizuotai, sumažinant konkrečios platformos navigacijos kodo poreikį [7].

6. Efektyvi projekto struktūra: „MVVMCross“ skatina struktūrizuotą požiūrį į projekto organizaciją, aiškiai atskirti platformos agnostikos kodą pagrindiniame ir platformos specifiniame UI projektuose. Ši struktūra palengvina lengviau prižiūrėti ir išplėsti įvairių platformų programas [2] [9].

Apskritai, „MVVMCross“ padidina kodo pakartotinį naudojimą centralizuodama verslo logiką, pasinaudodama duomenų įrišimu ir pateikdamas įrankius, skirtus vieningai valdyti konkrečias platformai skirtas funkcijas. Šis metodas žymiai sumažina dubliuoto kodo kiekį ir pagreitina įvairių platformų programų kūrimą.

Citatos:
[1] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/August/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[2] https://www.toptal.com/xamarin/cross-platform-apps-with-xamarin
[3] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[4] https://tiefenauer.github.io/blog/mobile-app-development-with-xamarin-and-mvvmcross-part-1-introduction/
[5] https://www.mvvmcross.com/documentation/fundamentals/data-dinding
[6] https://diglib.tugraz.at/download.php?id=576a78335451d&location=browse
[7] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[8] https://www.reddit.com/r/swift/comments/yrqlhu/is_crossplatform_the_future_of_mobile_development/
[9] https://leaware.com/creating-cross-platform-xamarin-application-using-the-mvvmcross-framework/
[10] https://stackoverflow.com/questions/22409697/maximizing-ui-code-reuse-with-xamarin-mvvmcross