.NET MAUI eller React Native?

Av Weapp · Oppdatert

.NET MAUI lar .NET-miljøer bygge apper i C# og gjenbruke eksisterende kompetanse, som er rammeverkets sterkeste argument. React Native har likevel et større økosystem, et betydelig bredere rekrutteringsgrunnlag og flere ferdige biblioteker. MAUI kan være et rasjonelt valg når teamet er dypt C#-fokusert og backend allerede er .NET. For de fleste veier React Natives økosystem og bemanningssituasjon tyngst over tid.

For et .NET-miljø føles valget noen ganger selvsagt: Dere kan C#, backend er bygget i .NET, så hvorfor ikke bygge appen i .NET MAUI og gjenbruke alt? Det er et fornuftig resonnement som noen ganger holder, men like ofte veier andre faktorer tyngre. Her er sammenligningen mellom MAUI og React Native sett fra kundens side, med vekt på det som faktisk avgjør totalkostnaden.

Argumentet for MAUI: gjenbruk C#-kompetansen

MAUIs sterkeste kort er at et team som allerede jobber i C# og .NET, kan bygge apper uten å bytte språk. Dere beholder verktøy, mønstre og mye av tankesettet, og dere kan dele noe kode med en .NET-backend. For et team med dyp C#-kompetanse og ingen JavaScript-erfaring senker det terskelen merkbart.

Men vær ærlig om hvor langt argumentet bærer. Apputvikling har sine egne mønstre (livssykluser, navigasjon, særegenheter ved hver plattform) uansett hvilket språk du skriver i. Å slippe å lære et nytt språk er en reell gevinst, men den er mindre enn den kan virke, og den må veies opp mot det dere får i den andre vektskålen. Gjenbruken av kompetanse er en gyldig grunn, ikke et trumfkort.

Der React Native leder: økosystem og rekruttering

På to punkter som betyr mye over tid, har React Native et klart forsprang.

Aspekt.NET MAUIReact Native
SpråkC#JavaScript/TypeScript
ØkosystemMindre, yngrenpm, hele webens utvalg
RekrutteringMindre rekrutteringsgrunnlag for C#-apperStort rekrutteringsgrunnlag, felles med web
Ferdige bibliotekerFærre, oftere egenutviklingMange, ofte én kommando unna
Deler kode med.NET-backendWebteam og webkodebase

Økosystemet avgjør hvor mye dere slipper å bygge selv. React Native lener seg på npm og verktøy som Expo, så det finnes ofte velprøvde løsninger for kart, betaling og autentisering. MAUIs utvalg er mindre, og det betyr oftere eget arbeid. Eget arbeid er timer på fakturaen.

Rekrutteringen avgjør hvor lett dere kan bemanne og erstatte folk. React- og JavaScript-utviklere er blant de største utviklergruppene, og webutviklere kan gå over til apper. Det finnes mange C#-utviklere, men de som spesifikt har bygget apper i MAUI eller Xamarin, er betydelig færre. Det er en reell sårbarhet for en virksomhet som skal eie appen i flere år.

Totalkostnad når backend allerede er .NET

Her ligger den interessante avveiingen. At backend er .NET, er et fornuftig argument for MAUI, men ikke et avgjørende, for en React Native-app snakker helt utmerket med en .NET-backend via vanlige API-er. Teknologiene i frontend og backend trenger ikke å matche.

Regn derfor på helheten, ikke bare på oppstarten. MAUI kan gi dere en raskere og billigere start hvis teamet allerede er C#-tungt. React Native kan gi lavere kostnad over tid gjennom et rikere økosystem, mindre egenutvikling og en bemanningssituasjon som holder når nøkkelpersoner byttes ut. Hvilken vei som blir billigst, avhenger av hvor lenge appen skal leve og hvor mye den skal videreutvikles.

Et konkret scenario

Si at dere er et etablert .NET-konsulenthus med ti C#-utviklere og en .NET-backend, og at dere skal bygge en intern app for en kunde. Her kan MAUI være rasjonelt: Teamet er på hjemmebane, appen er avgrenset, og felles språk med backend senker terskelen. Rekrutteringsargumentet veier lite når dere bemanner med egne folk.

Anta i stedet at dere skal bygge en langlivet forbrukerapp som skal videreutvikles i årevis og bemannes bredt over tid. Da veier React Natives økosystem og rekrutteringssituasjon tyngre, selv om dere må lære JavaScript underveis. Poenget: Svaret avhenger av appens levetid og av hvordan den skal bemannes, ikke bare av hvilket språk dere tilfeldigvis kan i dag.

Vi i Weapp bygger apper i React Native nettopp av disse grunnene, men drøfter gjerne hva som passer situasjonen deres. Se på tjenestene våre eller ta kontakt, så ser vi på det ut fra forutsetningene deres.

Ofte stilte spørsmål

Hva er .NET MAUI?

.NET MAUI (Multi-platform App UI) er Microsofts rammeverk for å bygge apper til iOS, Android, Windows og Mac fra én felles C#-kodebase. Det er etterfølgeren til Xamarin.Forms og retter seg først og fremst mot team som allerede jobber i .NET-verdenen og vil bruke samme språk og verktøy for appene som for backend.

Holder argumentet om å gjenbruke C#-kompetansen?

Delvis. Et team som jobber i C# og .NET til daglig, kan komme i gang med MAUI uten å lære et nytt språk og kan dele noe kode med en .NET-backend. Men apputvikling har egne mønstre uansett språk, så gevinsten er mindre enn den kan virke. Gjenbruken av kompetanse er et reelt, men ikke avgjørende argument. Vei det opp mot økosystem og rekruttering.

Hvilket økosystem er størst?

React Native, med klar margin. Det lener seg på npm og webens enorme pakkeutvalg i tillegg til verktøy som Expo, så det finnes ofte ferdige løsninger for kart, betaling og autentisering. MAUIs økosystem er mindre og yngre, og det betyr oftere at teamet må bygge eller tilpasse selv. Det arbeidet koster timer.

Hvilket er lettest å rekruttere til?

React Native. JavaScript- og React-utviklere er blant de største utviklergruppene, og mange webutviklere kan gå over til apper. Det finnes riktignok mange C#-utviklere, men de som spesifikt har bygget apper i MAUI eller Xamarin, er en klart mindre gruppe. Det påvirker hvor lett du kan bemanne og erstatte folk i appteamet over tid.

Spiller det noen rolle at backend allerede er .NET?

Det er et fornuftig argument for MAUI, men ikke et avgjørende. En React Native-app snakker utmerket med en .NET-backend via vanlige API-er, og teknologiene trenger ikke å matche. At backend er .NET, senker terskelen for å velge MAUI hvis teamet uansett er C#-tungt, men det tvinger ikke frem valget. Se på helheten: Økosystem, rekruttering og vedlikehold veier tungt.