MVVMCross on suunniteltu käsittelemään alustakohtaista koodia tehokkaasti erottamalla sovelluslogiikka kahteen pääosaan: ydinprojekti ja alustakohtaiset projektit. Ydinprojekti, tyypillisesti .NET-standardikirjasto, sisältää liiketoimintalogiikan, näkymämallit, mallit ja rajapinnat alustakohtaisille palveluille. Tämä mahdollistaa maksimaalisen koodin jakamisen eri alustoilla, kuten Android, iOS ja Windows.
alustakohtaiset projektit
Jokainen alustakohtainen projekti (esim. Xamarin.android, xamarin.ios) sisältää käyttöliittymän ja alustakohtaisten palvelujen toteuttamisen. Nämä projektit ovat vastuussa MVVMCross-kehyksen alustamisesta ja alustakohtaisten palvelujen rekisteröinnistä asennusluokan avulla. Asennusluokka toimii bootstrapperina MVVMCrossille, jolloin kehittäjät voivat mukauttaa kehyksen käyttäytymistä jokaiselle alustalle.
Controlin (IOC) ja riippuvuusinjektio
MVVMCROSS käyttää ohjauksen (IOC) inversion (IOC) -säiliön inversiota riippuvuuksien hallintaan koko sovelluksen. Tämä mahdollistaa alustakohtaisten palvelujen rekisteröinnin ja injektoinnin ydinprojektin logiikkaan. Esimerkiksi, jos sovelluksen on käytettävä GPS-sijaintipalveluita, GPS-palvelu voidaan rekisteröidä alustakohtaiseen asennusluokkaan ja injektoida sitten näkymämalleihin tai muihin ydinprojektin osiin.
Platform -käyttäytymisen mukauttaminen
Kehittäjät voivat mukauttaa alustakohtaisen käyttäytymisen ohittamalla menetelmät asennusluokassa. Esimerkiksi Androidilla voit ohittaa menetelmät `mvxandroidSetup` -sovelluksessa android-spesifisten palvelujen rekisteröimiseksi tai android-spesifisten elinkaaritapahtumien käsittelemiseksi. Samoin iOS: ssä käyttäisit `mvxiossetup` käsittelemään iOS-erityisiä alustus- ja palveluiden rekisteröintiä.
Näytä esittelijät
MVVMCross tarjoaa myös näkymäesittelijöitä, jotka vastaavat siitä, miten näkymät esitetään jokaisella alustalla. Tämä mahdollistaa käyttöliittymän esityslogiikan mukauttamisen, kuten näkymien näyttämisen modaalisesti tai osana navigointipinoa, alustan yleissopimuksista riippuen.
laajennukset ja laajennukset
MVVMCROSS tarjoaa laajennuskehyksen, jonka avulla kehittäjät voivat helposti integroida kolmansien osapuolien laajennukset yleisiin toimintoihin, kuten lokalisointiin, antureihin ja muihin. Näitä laajennuksia voidaan käyttää useilla alustoilla, mikä vähentää edelleen alustakohtaisen koodin tarvetta.
Yhteenvetona voidaan todeta, että MVVMCross käsittelee alustakohtaisen koodin tarjoamalla jäsennelty lähestymistapa jaetun logiikan erottamiseen alustakohtaisista toteutuksista. Se käyttää KOK- ja riippuvuuden injektiota alustapalvelujen hallintaan, sallii mukauttamisen asennusluokan kautta ja tukee laajennuksia toimintojen laajentamiseksi alustojen välillä.
Viittaukset:[1] https://github.com/mvvmcross/mvvmcross
.
[3] https://canbilgin.wordpress.com/tag/mvvmcross/
.
[5] https://stackoverflow.com/questions/14337063/platform-spesific-ioc-in-mvvmcross
.
.
.
[9.
[10.
.