MVVMCROSS on alustojen välinen kehys, joka helpottaa sovellusten kehittämistä käyttämällä Model-View-ViewModel (MVVM) -kuviota. Sen avulla kehittäjät voivat luoda löysästi kytkettyjä, ylläpidettäviä ja testattavia mobiiliratkaisuja erottamalla sovelluslogiikka kahteen pääosaan: ydinprojektiin ja käyttöliittymän projektiin.
Core -projekti
Ydinprojekti on tyypillisesti .NET -standardikirjasto, joka sisältää kaiken jaetun koodin, mukaan lukien:- ViewModels: Nämä ovat vastuussa käyttäjän vuorovaikutusten ja liiketoimintalogiikan käsittelystä.
- Mallit: Edusta koko sovelluksessa käytettyjä tietorakenteita.
- Palvelut: Tarjoa pääsy tietoihin, verkkopalveluihin tai muihin ulkoisiin resursseihin.
- Muuntimet: Käytetään tietotyypin muunnoksiin.
- Sovellusluokka: Tämä vastaa sovelluksen liiketoimintalogiikan ja View -mallien alustamisesta. Se käsittelee myös räätälöityjen esineiden rekisteröintiä ohjausastian (IOC) inversioon.
- AppStart: Valinnaisesti käytetty määrittämään, mikä näkymämalli esitetään ensin, kun sovellus alkaa.
UI -projekti
UI-projekti on alustakohtainen ja sisältää käyttöliittymäelementit ja alustakohtaisen koodin. Jokaiselle kohdealustalle (esim. IOS, Android) on erillinen käyttöliittymäprojekti. Nämä projektit sisältävät:- Näkymät: Jokainen näkymä on vastuussa vastaavan näkymämallin esittämisestä. Näkymät on suunniteltu käyttämällä natiivialustatyökaluja (esim. XAML Xamarin.forms, AXML Androidille).
- Alkuperäisen sovelluksen käsittelijä: Tämä käsittelee alkuperäisiä elinkaaritapahtumia. Esimerkiksi Androidissa se olisi "maincive" tai `mainapplication` -luokka, kun taas iOS: lla se olisi" appDelegate "-luokka.
- Asennusluokka: Tämä vastaa bootstrapping mvvmcross- ja foller-erityisten palvelujen rekisteröinnistä. Se alustaa MVVMCross-kehyksen ja asettaa IOC-säiliön alustakohtaisilla toteutuksilla.
Ydin- ja käyttöliittymän välinen vuorovaikutus
MVVMCrossin ytimen ja käyttöliittymien välistä vuorovaikutusta helpottaa MVVM -kuvio ja kehyksen KOK -säiliö. Näin he ovat vuorovaikutuksessa:- ViewModel Binding: Käyttöliittymäprojektit käyttävät MVVMCROSS: ää näkymien sitomiseen näkymiin malleihin. Tämä tehdään tyypillisesti käyttämällä nimeämiskäytäntöä tai koristamalla näkymiä määritteillä, kuten `[mvxviewFor (typeOf (HomeViewModel)))]`.
- Palvelun injektio: Ydinprojekti määrittelee palvelujen rajapinnat, jotka toteutetaan eri tavalla jokaisella alustalla. Nämä palvelut on rekisteröity IOC-säilöön ja injektoidaan näkymämalleihin, mikä mahdollistaa alustakohtaisen toiminnallisuuden kopioimatta koodia.
- Navigointi ja esitys: MVVMCross tarjoaa mekanismeja navigointiin näkymämallien välillä ja näkymien esittämisen välillä. Kehys käyttää esittelijöitä (esim. "ImvxioSViewPresenter`," imvxandroidViewPresenter ") hallitaksesi kuinka näkymät näkyy jokaisella alustalla.
Erottamalla sovelluslogiikka ydin- ja käyttöliittymäprojekteihin MVVMCross antaa kehittäjille mahdollisuuden maksimoida koodin uudelleenkäyttöalustojen välillä ja mahdollistaa silti alustakohtaisen räätälöinnin ja optimoinnin [1] [3] [5].
Viittaukset:.
[2] https://canbilgin.wordpress.com/tag/mvvmcross/
.
.
[5] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
.
[7] https://www.mvvmcross.com/documentation/tutorials/tipcalc/the-core-project
[8] https://canbilgin.wordpress.com/2017/03/26/xamarin-forms-application-with-mvvmcross/