SystemetRådgivningUdviklingArbejdePriser
Tilbage til guides
5 min. · MOBIL

React Native (Expo) vs. native: når to codebaser holder op med at give mening

Performance-gabet lukkede for år tilbage. Native-features-gabet lukkede sidste år. For de fleste produkt-apps er to codebaser et budget, du bruger for evigt for et resultat, du ikke leverer hurtigere.

På denne side
  • Det gamle pitch, i dag
  • Performance-argumentet, i dag
  • Argumentet om "native funktioner"
  • Økonomien i to codebaser
  • Når native stadig vinder
  • Et simpelt beslutnings-framework
Opdateret 2026-04
TL;DR
  • På New Architecture med Hermes og JSI er performance-gabet lille nok til, at brugere ikke vil bemærke det i en produkt-app.
  • Expo Modules + config plugins lukker ~95 % af native-features-gabet. De sidste 5 % er sjældent på dit roadmap.
  • To codebaser betyder to af alting: teams, byg, udgivelser, bug-rapporter, design reviews. Omkostningen er permanent.
  • iOS og Android skal ikke se ens ud. Platform-konventioner adskiller sig med vilje.
  • Native vinder stadig til spil, pro audio/video, AR, dyb OEM-integration og meget langlivede enterprise-værktøjer.

Det gamle pitch, i dag

Hvert bureau, der stadig fakturerer pr. platform, vil sige det samme: "Native er mere performant, og du har brug for native til de funktioner, du vil have." For et par år siden var det en forsvarlig position. I dag er det mest en salgsposition.

React Native — specifikt Expo på New Architecture — har lukket gabet på begge argumenter til det punkt, hvor spørgsmålet for de fleste produkt-teams er vendt. Det er ikke længere "hvorfor skal vi vælge React Native?". Det er "hvad er den konkrete grund til, at vi betaler for to teams, to release-pipelines og to af hver bug?"

Performance-argumentet, i dag

Pitchet plejede at være simpelt: native kompilerer til native kode, JavaScript kører i en bro, ergo native er hurtigere. To ændringer brød det argument:

  • Hermes leverer ahead-of-time bytecode og en tunet GC til React Natives workload. Cold start og hukommelse er ikke længere en pinlighed.
  • JSI og New Architecture erstattede den asynkrone bro med synkrone, typede kald mellem JS og native. Serialiserings-skatten, der plejede at dominere benchmarks, er væk.

For en produkt-app — lister, formularer, navigation, netværkskald, animationer drevet på UI-tråden med Reanimated — er forskellen mellem Expo og et fuldt native byg, i reel brugertest, lille nok til, at ingen uden for engineering-teamet bemærker det.

To codebaser er en afrundingsfejl i kode og en multiplikator i alt andet.

Argumentet om "native funktioner"

Den anden halvdel af pitchet er, at React Native ikke kan nå platformen. Det var sandt i 2017. I 2026 er det stort set falsk, på grund af to ting:

  • Expo Modules lader dig skrive et lille Swift- eller Kotlin-modul og forbruge det fra JS med typesikkerhed. Du forlader ikke Expo for at lave native arbejde; du udvider det.
  • Config plugins lader det native modul ændre iOS- og Android-projekterne ved prebuild-tid, uden at du nogensinde ejecter fra managed Expo eller redigerer Info.plist / AndroidManifest.xml i hånden.

Mellem first-party Expo SDK'et og community-økosystemet er ~95 % af de native funktioner, en produkt-app har brug for, allerede pakket: kamera, filsystem, secure storage, biometri, push, baggrundsopgaver, in-app-purchases, App Clips, App Intents, Live Activities, widgets, foreground services, share extensions. De sidste 5 % kan du bygge med Expo Modules på dage, ikke uger.

Økonomien i to codebaser

Omkostningscasen for cross-platform handler sjældent om kodelinjerne. Den handler om alt det, der pakker dem ind.

  • Ét team, ikke to. Én ansættelses-funnel, ét sæt konventioner, én code review-kultur. Senior-generalister bliver engagerede, fordi de ikke er låst ind i én platform.
  • Ét designsystem. En token-ændring leveres til begge platforme i én PR. To codebaser betyder to fortolkninger af hver design-ændring, der driver fra hinanden hvert kvartal.
  • Én udgivelseskadence. Én CI-pipeline, én OTA-kanal via EAS Update, én changelog. Native teams, der udgiver månedligt på iOS og kvartalsvis på Android, er ikke usædvanlige; brugere bemærker det.
  • Én bug, ikke to rapporter. En regression i en delt komponent rettes én gang. I to codebaser er hver bug potentielt to bugs.
  • Én observability-historie. Crash reporting, analyse, feature flags, A/B-testing koblet op én gang med et delt hændelses-skema.

Når teams sammenligner "Expo-udvikleromkostning" vs. "iOS + Android-udvikleromkostning" og kalder det uafgjort, tæller de som regel kun de udviklere, der skriver skærmene. Den reelle omkostning lever i den anden kopi af alt rundt om skærmene.

iOS og Android skal ikke se ens ud

Cross-platform betyder ikke pixel-identisk på begge OS'er. Det er en UX-skat. Back-gesture, share sheet, modal-præsentation, navigationsovergange, standard-haptics, placeringen af primære handlinger, selv hvordan en date picker skal føles — det adskiller sig mellem iOS og Android med vilje, og din app skal respektere de konventioner.

Når native stadig vinder

Der er en reel liste af tilfælde, hvor du stadig skal gå native, og en ærlig cross-platform-fortaler vil sige det:

  • Spil og grafiktunge kreative værktøjer. Brug en game engine; spørgsmålet bliver Unity / Godot / native, ikke Expo vs. native.
  • Pro audio- og video-apps med sub-frame latency-krav.
  • AR/VR og ML-on-device, hvor du lever inde i ARKit-/ARCore-/CoreML-API'er.
  • Dyb OEM-integration — CarPlay/Android Auto first-class apps, watchOS-komplikationer med rig logik, accessibility-apps der genopbygger store dele af system-UI'en.
  • Meget langlivede enterprise-apps, hvor køberens indkøbsafdeling vil kræve et native byg, fordi deres RFP-skabelon siger det.

Et simpelt beslutnings-framework

Hvis du kan svare ja til nogen af disse, er native i det mindste værd at kigge hårdt på:

  • Er appen primært en realtids-grafik-, audio- eller AR-oplevelse?
  • Har appen brug for en funktion, der afhænger af bleeding-edge platform-API'er inden for måneder efter OS-udgivelsen, før nogen Expo-wrapper eksisterer?
  • Leverer du mindre end én udgivelse pr. kvartal og er ligeglad med iterationshastighed?
  • Er der en regulatorisk eller indkøbsmæssig grund, der specifikt kræver native?

Hvis det ærlige svar på alle fire er nej — tilfældet for det overvældende flertal af startup-, scale-up- og produkt-apps — betaler du for to codebaser af vane, ikke teknisk nødvendighed.

What to actually do
  • Vælg som standard Expo på New Architecture for enhver ny produkt-app.
  • Budgettér for ét eller to Expo Modules over appens levetid, ikke for to fulde codebaser.
  • Design til platform-konventioner, ikke til paritet. iOS og Android skal føles som sig selv.
  • Vælg kun native, når app-typen reelt kræver det (spil, pro media, AR, dyb OEM).
  • Behandl ethvert bureau, der ikke kan formulere dette trade-off ærligt, som en salgsledet butik.

Vil du have denne slags vurdering på dit projekt?

Jeg læser hver e-mail inden for én arbejdsdag. Tag et projekt, et tilbud eller et system, du sidder fast i.

Se Enterprise Starter
Relaterede guides
  • 9 min.

    15 ting hvert Contentful enterprise-projekt får galt i de første 6 uger

    De 15 produktions-huller hvert enterprise Contentful + Next.js-build rammer i de første seks uger — og hvordan du lukker hver enkelt uden at brænde et sprint. En pre-kickoff-checkliste til tech-leads på en Contentful enterprise starter.

  • 13 min.

    REST + GraphQL-hybrider til multi-locale CMS-drevne sites

    Hvorfor hverken kun REST eller kun GraphQL er det rigtige valg til et enterprise multi-locale CMS-site, og hvordan du splitter efter ansvar i stedet. Inkluderer cirkulære referencer på fulde REST-payloads, bundle-omkostningen ved GraphQL på klienten, beslutningsmatricen pr. kaldsted, den samlede fetcher, granulære cache-tags, blok-som-fragment-mønsteret, locale-fallback i ét round-trip, Live Preview der overlever, Server Actions til CMA-skrivninger, Algolia Sync API-undtagelsen og migrationsrækkefølgen.

  • 3 min.

    Konsulent-playbook'en

    Sådan fungerer digitale bureauer, sådan prissætter de, og her er, hvor danske kunder typisk betaler for meget.

Uafhængig teknologirådgivning og udvikling. København, Danmark.

Njalsgade 21F, 2. sal, København

CVR 45 44 13 93

nicklas@ceero.eu

WhatsApp +45 31 33 25 99

Arbejde

  • Enterprise Starter
  • Rådgivning
  • Udvikling
  • Arbejde
  • Kontakt

Ressourcer

  • Artikler
  • Guides
  • Gratis værktøjer
  • Om os

Andre steder

  • Sparro
  • Invigilo
  • e-sign
  • Privatlivspolitik

© 2026 Ceero ApS · CVR DK45441393. Alle rettigheder forbeholdes.

Bygget i København med Next.js, Contentful og nul konsulent-bullshit.