MVVMCROSS parantaa merkittävästi koodin uudelleenkäyttöä alustojen välisissä sovelluksissa hyödyntämällä malli-näkymä-viwModel (MVVM) -arkkitehtuurikuviota. Näin se saavuttaa tämän:
1. Huolestumisen erottaminen: MVVMCross edistää huolenaiheiden selkeää erottelua jakamalla sovellus kahteen pääosaan: ytimeen ja käyttöliittymään. Ydinprojekti, tyypillisesti kannettava luokkakirjasto (PCL) tai .NET -standardikirjasto, sisältää kaikki näkymämallit, mallit ja liiketoimintalogiikan. Tämä mahdollistaa maksimaalisen koodin uudelleenkäytön eri alustojen välillä, koska liiketoimintalogiikka on erotettu alustakohtaisesta koodista [1] [2] [7].
2. Näkymämallit ydinprojektissa: Asettamalla näkymämodelit ydinprojektiin, MVVMCross antaa kehittäjille mahdollisuuden jakaa nämä komponentit useilla alustoilla. Tämä tarkoittaa, että käyttäjän vuorovaikutusten, tietojen manipuloinnin ja navigoinnin käsittelemisen logiikkaa voidaan käyttää uudelleen muuttamatta eri alustoilla, kuten iOS, Android ja Windows [1] [3] [9].
3. Tietojen sitominen: MVVMCross tukee datan sitomista, joka päivittää käyttöliittymän automaattisesti, kun muutokset tapahtuvat ViewModelissa. Tämä ominaisuus on ratkaisevan tärkeä johdonmukaisuuden ylläpitämiseksi alustojen välillä ja vähentää käyttöliittymäpäivitysten tarvetta parantaen edelleen koodin uudelleenkäyttöä [4] [5].
4. Riippuvuusinjektio ja laajennukset: MVVMCross sisältää plug-in-arkkitehtuurin ja riippuvuuden injektion (DI) -ominaisuudet. Näiden ominaisuuksien avulla kehittäjät voivat toteuttaa alustakohtaisia toimintoja tavalla, johon niihin pääsee helposti ja käyttää uudelleen ydinprojektista. Tämä tarkoittaa, että vaikka käyttöliittymäkerroksen on oltava alustakohtaista, monia taustalla olevia toimintoja voidaan silti jakaa [3] [9].
5. Navigointi- ja View-esittelijät: MVVMCross tarjoaa tehokkaan näkymämallin ensisijaisen navigointijärjestelmän, joka mahdollistaa sovellusnavigoinnin orkesterin ydinprojektista. Tämä tarkoittaa, että käyttäjän vuorovaikutusten ja näytönsiirtojen virtausta voidaan hallita keskitetysti vähentäen alustakohtaisen navigointikoodin tarvetta [7].
6. Tehokas projektirakenne: MVVMCross kannustaa jäsenneltyyn lähestymistapaan projektiorganisaatioon, ja selkeä erotus alusta-agnostisen koodin välillä ydin- ja alustakohtaisessa koodissa käyttöliittymäprojekteissa. Tämä rakenne helpottaa alustojen välisten sovellusten helpompaa ylläpitoa ja laajennusta [2] [9].
Kaiken kaikkiaan MVVMCross parantaa koodin uudelleenkäyttöä keskittämällä liiketoiminnan logiikkaa, hyödyntämällä tietojen sitomista ja tarjoamalla työkaluja alustakohtaisten toimintojen hallintaan yhtenäisellä tavalla. Tämä lähestymistapa vähentää merkittävästi kopioidun koodin määrää ja nopeuttaa alustojen välistä sovelluskehitystä.
Viittaukset:.
[2] https://www.toptal.com/xamarin/cross-platform-apps-with-xamarin
[3] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
.
[5] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[6] https://diglib.tugraz.at/download.php?id=576a78335451d&location=browse
.
[8] https://www.reddit.com/r/swift/comments/yrqlhu/is_crossplatform_the_future_of_mobile_development/
.
[10.