.NET MAUI vs. React Native: Hvad skal I vælge?

Af Weapp · Opdateret

.NET MAUI lader .NET-huse bygge apps i C# og genbruge eksisterende kompetencer, og det er dets stærkeste argument. React Native har et større økosystem, en betydeligt bredere rekrutteringsbase og flere færdige biblioteker. MAUI kan være rationelt når teamet er dybt C#-fokuseret og backend allerede er .NET. For de fleste vejer React Natives økosystem og bemandingssituation tungest over tid.

For et .NET-hus føles valget nogle gange indlysende: I kan C#, jeres backend er bygget i .NET, så hvorfor ikke bygge appen i .NET MAUI og genbruge det hele? Det er et rimeligt ræsonnement som nogle gange holder, men lige så ofte vejer andre faktorer tungere. Her er sammenligningen mellem MAUI og React Native set fra kundens side, med fokus på det der faktisk afgør totalomkostningen.

Argumentet for MAUI: genbrug C#-kompetencen

MAUI’s stærkeste kort er at et team der allerede lever i C# og .NET, kan bygge apps uden at skifte sprog. I beholder værktøjer, mønstre og en stor del af tankegangen, og I kan dele noget kode med en .NET-backend. For et hus med dyb C#-kompetence og ingen erfaring med JavaScript sænker det tærsklen mærkbart.

Men vær ærlig om hvor langt argumentet rækker. App-udvikling har sine egne mønstre (livscyklusser, navigation, platformsærheder) uanset hvilket sprog du skriver i. At slippe for at lære et nyt sprog er en reel gevinst, men den er mindre end den lyder, og den skal vejes op mod det I får i den anden vægtskål. Genbruget af kompetencer er en gyldig grund, ikke et trumfkort.

Hvor React Native fører: økosystem og rekruttering

På to punkter der betyder meget over tid, har React Native en klar fordel.

Aspekt.NET MAUIReact Native
SprogC#JavaScript/TypeScript
ØkosystemMindre, yngrenpm: hele webverdenens udvalg
RekrutteringSmallere pulje til app-C#Stor pulje, fælles med web
Færdige bibliotekerFærre, oftere egenudviklingMange, ofte én kommando væk
Deler kode med.NET-backendWebteam og webkodebase

Økosystemet afgør hvor meget I slipper for at bygge selv. React Native læner sig op ad npm og værktøjer som Expo, så afprøvede løsninger til kort, betaling og autentificering ligger ofte klar. MAUI’s udvalg er mindre, og det betyder oftere eget arbejde. Og eget arbejde er timer på fakturaen.

Rekrutteringen afgør hvor let I kan bemande og erstatte. React- og JavaScript-udviklere er en af de største udviklergrupper, og webudviklere kan skifte over. Der er rigeligt med C#-udviklere, men dem der specifikt har bygget apps i MAUI eller Xamarin, er betydeligt færre. Det er en reel sårbarhed for en virksomhed der skal eje appen i flere år.

Totalomkostning når backend allerede er .NET

Her ligger den interessante afvejning. At jeres backend er .NET, er et rimeligt argument for MAUI, men ikke et afgørende, for en React Native-app taler glimrende med en .NET-backend via almindelige API’er. Teknologierne i frontend og backend behøver ikke at matche.

Regn derfor på helheden, ikke kun på opstarten. MAUI kan give jer en hurtigere og billigere start hvis teamet allerede er C#-tungt. React Native kan give en lavere omkostning over årene gennem et rigere økosystem, mindre egenudvikling og en bemandingssituation der holder når nøglepersoner udskiftes. Hvilken vej der bliver billigst, afhænger af hvor længe appen skal leve og hvor meget den skal videreudvikles.

Et konkret scenarie

Lad os sige at I er et etableret .NET-konsulenthus med ti C#-udviklere og en .NET-backend og skal bygge en intern app til en kunde. Her kan MAUI være rationelt: Teamet er på hjemmebane, appen er afgrænset, og at dele sprog med backend sænker tærsklen. Rekrutteringsargumentet vejer let når I bemander med eksisterende medarbejdere.

Antag i stedet at I skal bygge en langlivet forbrugerapp der skal videreudvikles i årevis og bemandes bredt over tid. Så vejer React Natives økosystem og rekrutteringssituation tungere, også selvom I må lære JavaScript undervejs. Pointen: Svaret afhænger af appens levetid og af hvordan den skal bemandes, ikke kun af hvilket sprog I tilfældigvis kan i dag.

Hos Weapp bygger vi apps i React Native netop af de grunde, men vi drøfter gerne hvad der passer til jeres situation. Se vores ydelser eller kontakt os, så tager vi det ud fra jeres forudsætninger.

Ofte stillede spørgsmål

Hvad er .NET MAUI?

.NET MAUI (Multi-platform App UI) er Microsofts framework til at bygge apps til iOS, Android, Windows og Mac fra en fælles C#-kodebase. Det er efterfølgeren til Xamarin.Forms og henvender sig først og fremmest til teams der allerede arbejder i .NET-verdenen og vil bruge samme sprog og værktøjer til deres apps som til deres backend.

Holder argumentet om at genbruge C#-kompetencen?

Delvist. Et team der lever i C# og .NET, kan komme i gang med MAUI uden at lære et nyt sprog og kan dele noget kode med en .NET-backend. Men app-udvikling har sine egne mønstre uanset sprog, så gevinsten er mindre end den lyder. Genbruget af kompetencer er et reelt, men ikke afgørende argument. Vej det op mod økosystem og rekruttering.

Hvilket økosystem er størst?

React Native, med klar margin. Det læner sig op ad npm og webverdenens enorme udvalg af pakker plus værktøjer som Expo, så færdige løsninger til kort, betaling og autentificering ligger ofte klar. MAUI’s økosystem er mindre og yngre, og det betyder oftere at teamet selv må bygge eller tilpasse. Det arbejde koster timer.

Hvilket er nemmest at rekruttere til?

React Native. JavaScript- og React-udviklere er en af de største kompetencegrupper, og mange webudviklere kan skifte over til apps. Der er ganske vist rigeligt med C#-udviklere, men dem der specifikt har bygget apps i MAUI eller Xamarin, er en klart smallere gruppe. Det påvirker hvor let du kan bemande og erstatte folk i appteamet over tid.

Betyder det noget at vores backend allerede er .NET?

Det er et rimeligt argument for MAUI, men ikke et afgørende. En React Native-app taler fint med en .NET-backend via almindelige API’er, og teknologierne behøver ikke at matche. At backend er .NET, sænker tærsklen for at vælge MAUI hvis teamet alligevel er C#-tungt, men det tvinger ikke valget igennem. Se på helheden: Økosystem, rekruttering og vedligeholdelse vejer tungt.