React Native - En gemensam kodbas för Android och iOS

Utvecklare
App
Android
iOS
React Native
Artikel | React Native - En gemensam kodbas för Android och iOS

Vi på Itiden har sedan flera år arbetat med React Native för att bygga appar för så väl eget bruk som för våra kunder. Att kunna använda i stort sätt samma app-kodbas för iOS som för Android sparar både utvecklingstid och underhållskostnad.

I denna artikel kikar vi närmre på vad React Native egentligen är, hur det funkar, samt fördelar och nackdelar med detta ramverk.

Vad är React Native?

React Native är ett open source-ramverk utvecklat av Meta, och lanserades redan 2015. Bakgrunden var att man ville minska arbetsbördan det innebär med två separat kodbaser för iOS och Android, när funktionerna ändå skulle vara samma.

Vanligtvis skrivs apparna i Javascript eller TypeScript med hjälp av React-bibliotek. För att det ska fungera med en gemensam kodbas för två tillsynes helt åtskilda språk som Swift (iOS) och Kotlin (Android) ändå är, kan React använda operativets egna komponenter. Detta resulterar i att appen därmed blir en riktigt native-app, där både prestanda och funktioner gör det omöjligt att särskilja från appar skrivan i respektive språk. Utöver att React använder enhetens egna native UI-komponenter, kan även de flesta av enhetens inbyggda funktioner som exempelvis GPS, filsystem, notis-system, kamera mfl, användas utan att behöva bygga egna lösningar.

Detta har bidragit till att React Native idag är ett relativt vanligt sätt att bygga appar på, och används i flera av de absolut mest använda mobilapparna idag, som exempelvis, Facebook, Instagram, Visual Studio Code Web Client, Discord och Shopify.

Fördelar med React Native

Vi har redan nämnt ett par av fördelarna med att använda React Native, men där finns mer att hämta. Nedan listar vi några av det störstas fördelarna.

  • Gemensam kodbas gör utvecklingen snabbare och underhållsarbetet mindre.

  • Jämfört med många andra cross-plattform lösningar är att prestandan är nästintill identisk med en äkta native-app, då operativets egna UI-komponenter används.

  • Ett stort utbud av komponenter gör att chansen att hitta en färdig funktion är stor, och du behöver därmed inte utveckla funktioner från början.

  • Tack vare ett enormt community är det lätt att hitta information och lösningar, och plattformen är välunderhållen och utvecklas i rask takt, inte minst av Meta själva.

  • Utöver Android och iOS-appar kan man även bygga applikationer för webben, Apple TV, Mac OS och Windows med React Native.

Alternativen

Även om React Native täcker i princip alla tänkbara områden för apputveckling finns där alternativ som kan vara värda att utvärdera om man står inför utmaningen med att bygga en app.

Native (Swift/Kotlin)

Det finns tillfällen då det kan vara värt att utveckla helt “native” för respektive OS. Det kan röra sig om att direkt få tillgång till nya funktioner i operativsystemet, utan att vänta på att stöd läggs in i React Native. Även om prestandan man får med React Native är extremt snarlik den man får i en app skriven i Swift eller Kotlin så finns där exempel på när man med fördel bör använda sig av systemets egna språk. Som ett exempel kan avancerade 3D-spel nämnas, där varje promille av prestandan räknas.

Apple Music byggd i Swift

Flutter

Flutter är ett cross-plattformsalternativ till React Native utvecklat av Google, och är utvecklat med samma mål och syfte, det vill sig en gemensam kodbas för flera plattformar. Där React Native vanligtvis använder sig av TypeScript, Javascript eller React, använder Flutter istället av sitt egna språk, Dart, samt ett deklarativt UI-ramverk som renderas i den egna motorn Skia.

Fördelen med React Native jämför med Flutter är likheterna med JS/React som vanligtvis även används för webbutveckling, vilket gör att startsträckan för en webbutvecklare blir kortare.

Superlist är ett exempel på en app byggd i Flutter.

Därför väljer vi React Native för utveckling av mobilappar

Även om det finns fördelar med både Native och Flutter överväger React Natives fördelar alternativen för oss. Att snabbt kunna komma igång i ett projekt och kunna förlita sig på operativets egna funktioner, för två helt olika operativsystem, har förenklat utvecklingen för oss.

Det faktum att prestandan i en majoritet av fallen är fullt jämförbar med alternativen, samt likheten med webbutveckling har gjort att vi enkelt kan skala upp utvecklingsteamen i projekten vid behov, och samtidigt leverera appar som är både stabila och säkers.

🔗 Länkar till appar vi byggt med React Native

Fler artiklar