MVVMCROSS ja Xamarin.Formit ovat kaksi erillistä tekniikkaa, jota käytetään alustojen välisessä mobiilisovellusten kehittämisessä, jokainen palvelee erilaisia tarkoituksia ja tarjoaa ainutlaatuisia etuja.
Xamarin.Forms
Xamarin.Forms on Microsoftin kehittämä kehys, jonka avulla kehittäjät voivat luoda alustojen välisiä sovelluksia käyttämällä jaettua C# CodeBase- ja XAML-sovelluksia käyttöliittymään. Sen avulla kehittäjät voivat kirjoittaa kerran ja ajaa useilla alustoilla, mukaan lukien iOS, Android ja UWP. Xamarin.Forms on ihanteellinen projekteille, joissa halutaan johdonmukaista käyttöliittymää alustojen välillä, ja se yksinkertaistaa kehitysprosessia tarjoamalla yhtenäisen sovellusliittymän käyttöliittymäkomponenteille. Tämä johdonmukaisuus on kuitenkin joustavuuden kustannuksella, koska käyttöliittymä rajoittuu jokaisen alustan yleisten elementtien osajoukkoon, mikä voi johtaa rajoituksiin natiivien ulkoasun ja tunteen edistyneiden käyttöliittymän räätälöinnin saavuttamisessa [4] [7].
Yleiskatsaus MVVMCrossista
MVVMCROSS on alustojen välinen MVVM (malli-viw-viwodel) -kehys, joka tukee xamarin.ios, xamarin.android, xamarin.forms ja muita alustoja. Se keskittyy liiketoimintalogiikan erottamiseen käyttöliittymästä, jolloin kehittäjät voivat jakaa merkittävän osan koodistaan eri alustoilla. MVVMCross tarjoaa ominaisuuksia, kuten datan sitominen, navigointi, kontrollin inversio ja riippuvuusinjektio, jotka helpottavat monimutkaisten sovellusten kehittämistä. Toisin kuin Xamarin.forms, MVVMCross ei pane täytäntöön tiettyä käyttöliittymäkehystä; Sen sijaan se antaa kehittäjille mahdollisuuden valita, kuinka he haluavat toteuttaa käyttöliittymän jokaiselle alustalle tarjoamalla enemmän joustavuutta natiivien käyttöliittymien kokemusten saavuttamisessa [7] [10].
Tärkeimmät erot
1. UI -toteutus:
- Xamarin.Forms: Käyttää jaettua käyttöliittymäkerrosta alustojen välillä, mikä yksinkertaistaa kehitystä, mutta voi rajoittaa räätälöintiä ja alkuperäistä ulkoasua.
- MVVMCROSS: Mahdollistaa alkuperäisen käyttöliittymän toteutuksen jokaisella alustalla tai jaetun käyttöliittymän kanssa Xamarin.Forms -sovelluksen kanssa tarjoamalla enemmän joustavuutta alustakohtaisten käyttöliittymäkuvioiden saavuttamisessa.
2. koodinjako:
- Molemmat kehykset mahdollistavat koodin jakamisen, mutta MVVMCross keskittyy liiketoimintalogiikan (ViewModels) jakamiseen sallimalla erilaiset käyttöliittymä toteutukset. Xamarin.Forms jakaa sekä käyttöliittymän että liiketoimintalogiikan.
3. Navigointi ja tietojen sitominen:
- MVVMCross tarjoaa vankan navigointijärjestelmän ja tietojen sitomisominaisuudet, jotka toimivat eri käyttöliittymäkehyksissä, mukaan lukien Xamarin.forms. Xamarin.Forms luottaa omaan navigointiinsa ja tietojen sitoutumismekanismeihin.
4. projektin monimutkaisuus:
- Monimutkaisissa projekteissa, jotka vaativat edistyneitä käyttöliittymän räätälöintiä tai alustakohtaisia ominaisuuksia, MVVMCross saattaa olla sopivampi joustavuutensa vuoksi. Yksinkertaisemmille projekteille, joissa johdonmukainen käyttöliittymä on riittävä, Xamarin.Formit voivat olla yksinkertaisempia toteuttaa.
5. Kehityslähestymistapa:
- XAML- ja .NET -tuntevat kehittäjät mieluummin Xamarin.Forms -ohjelmat, koska se tarjoaa yhtenäisen kehityskokemuksen. MVVMCROSS on hyödyllinen hankkeille, joissa liiketoimintalogiikka on erotettava käyttöliittymästä, mikä mahdollistaa enemmän käyttöliittymän toteutuksen hallintaa jokaisella alustalla.
Yhteenvetona voidaan todeta, että vaikka molemmat puitteet tukevat alustojen välistä kehitystä, Xamarin.Forms keskittyy käyttöliittymän kerroksen jakamiseen alustojen välillä, kun taas MVVMCross korostaa liiketoiminnan logiikan jakamista ja mahdollistaa joustavammat käyttöliittymävakuutukset. Valinta niiden välillä riippuu projektin vaatimuksista, jotka koskevat käyttöliittymän mukauttamista, monimutkaisuutta ja koodien jakamista koskevaa strategiaa.
Viittaukset:[1] https://visualStudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx
[2] https://github.com/rogerwcpt/xamarin-mvvvm-frameworks
[3] https://www.mvvmcross.com/documentation/tutorials/tipcalc/a-xamarin-forms-version
[4] https://stackoverflow.com/questions/38450264/xamarin-forms-vs-xamarin-mvvmcross
.
[6] https://canbilgin.wordpress.com/tag/mvvmcross/
.
[8] https://www.reddit.com/r/csharp/comments/a9mph1/mvc_or_mvvm_for_xamarin/
[9] https://canbilgin.wordpress.com/2017/03/26/xamarin-forms-application-with-mvvmcross/
[10] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/