Cross-platform eller Native?

Ska man ta fram en generell app som fungerar för både iOS och Android? Eller en mer specialanpassad app för varje operativsystem?

Det tråkiga svaret på den frågan är: Det beror på.

För att försöka bringa lite klarhet i frågan så tänker jag att vi ställer oss frågorna "för vem väljer vi teknik?", "vad ska vi bygga?" och "vilka kommer att använda appen?".

För vem väljer vi teknik?

Det första vi ska ha klart för oss är att slutanvändaren inte bryr sig överhuvudtaget hur en app är gjord. Så för vems skull väljer vi vilken teknik vi ska använda för att bygga appen?

För beställarens skull väljer vi teknik utifrån kostnad och kvalitet. Enkelt. Eller? Kostnaden kan man tyvärr inte räkna ut så enkelt som att:

Native = 2 st utvecklare

Cross platform = 1 st utvecklare

Native kanske kan göras av en utvecklare medan Cross Platform kanske kräver tre stycken (React Native + iOS + Android). Ovanstående uträkning kan såklart stämma men det är bland annat beroende på appens komplexitet och utvecklarens kunskaper inom respektive plattform.

Ytterligare en sak som bör vägas in är hur enkelt det är att hitta nya utvecklare. Alltså hur stort communityn är kring tekniken. Tekniken kan vara världens bästa men det hjälper ju inte om det bara är ett fåtal som kan den.

Vad ska vi bygga?

Vad ska vi bygga för typ av app? Har appen höga krav på säkerhet? Kommer den att vara processorintensiv?

Om appen kommer använda sig av specifik plattformsberoende teknik (t ex AI, AR) eller om en central del av appen förlitar sig på viss hårdvara som kan skilja sig mellan plattformarna bör man fundera på om det är värt att skriva den i React Native. Det kan det mycket väl vara ändå, men risken är att det blir för många "specialare" per plattform.

När man skriver en app i React Native så använder man sig ofta av flera tredjepartsbibliotek (dependencies) som i sin tur använder sig av andra. Det kan resultera i att man inte har full inblick i vad för kod man använder sig av. Problemet kan naturligtvis finnas i en app som är helt skriven i Swift eller Kotlin också, men oftast använder man sig inte av kod skriven av en tredjepartsutvecklare i samma utsträckning.

Vilka kommer att använda appen?

Som en del av vår process när vi väljer teknik är att ta reda på vilka som är målgruppen. Kommer appen att användas av iOS- eller Android-användare eller båda? Oftast är svaret på denna fråga: båda.

Eftersom vi vill jobba mot en MVP (Minimum Viable Product) där vi skapar en app som enbart innefattar den mest fundamentala funktionaliteten föredrar vi att fokusera på en plattform först vilket oftast blir iOS eftersom vi då inte behöver ta hänsyn till flera tillverkare. Detta gäller även om vi väljer att skriva appen i React Native.

Sammanfattning

  • Har ni höga krav på säkerheten (t ex bank, rättsväsende eller sjukvård)?
  • Kommer ni att vilja använda er av AR/AI eller annan specifik teknik?
  • Har ni höga krav på prestandan?

Är svaret Ja på ovanstående frågor så lutar det åt att ni behöver en native app. I annat fall så vill ni förmodligen ha en app skriven i React Native.

Gillar du vad du ser?

Bli uppringd

(Vanligtvis inom en timma)