Tidligere i høst fortalte kode24 om hvilke teknologier norske utviklere snuser på for å lage iOS- og Android-apper i 2020.
I tillegg til rene native-apper i Swift og Kotlin, nevnte mange teknologier som React Native, Xamarin, Flutter og Ionic - som lar deg skrive én kodebase til flere plattformer.
- Men man bør spørre seg hva slags kompetanse man sitter på, og hvilke ambisjoner man har, sier CTO Håvard Fossli i Agens i ukas episode av podcasten vår kode24-timen.
Her er hans viktigste grunner til at Agens, selskapet bak store apper og spill som Norsk Tipping, NRK Radio, Skate City og Fantorangen, sverger til native-utvikling på både iOS og Android.
Og hvorfor du bør tenke deg godt om før du velger noe annet.
Sparte mindre tid
Agens har flere apper ute i produksjon som er koda i React Native - ett av mange alternativer til å skrive native-kode.
Hvordan lager vi apper i 2020?
- Alt annet enn PWA er tullete.
Blant annet den raske feedbacken fra utviklerverktøyene, den deklarative koden og selvfølgelig det å kunne dele koden mellom både iOS og Android lokket dem inn i React-verktøyet.
- Hypotesen var at det skulle være dobbelt så effektivt, når man skriver koden én gang. Men i realiteten erfarte vi at det kanskje bare var rundt 20 prosent raskere, sier Fossli i kode24-timen.
Utviklerne måtte nemlig bruke mye tid på ting de slipper ved ren native-kode. Blant annet dårligere og utdaterte pakker, og det å ikke kunne bruke alt Android og iOS serverer på gullfat til native-utviklere.
- Man bruker mye tid på å fighte med problemer som kommer nettopp på grunn av den ekstra abstraksjonen React Native gir, mener CTO-en.
- Du kan sitte en hel dag for å forstå hvorfor noe ikke fungerer. Vi trodde React Native skulle modnes fortere enn det har gjort, men dessverre har det gått mye tregere enn vi håpa på.
«Du kan sitte en hel dag for å forstå hvorfor noe ikke fungerer.»
Fikk dårligere ytelse
Selv om ikke Agens sparte så mye tid som de trodde, sparte de altså tid, de kunne bruke utviklere som var mer komfortable i Javascript og React enn Kotlin og Swift og selskapet sier seg alt i alt fornøyd med resultatet.
- Lær deg SwiftUI og Jetpack Compose!
- Men oppstartstida til appene blir tregere, ytelsen dårligere og de spiser batteri. Dermed endte vi med noe som ikke gikk så mye raskere å lage, hvor vi brukte mye tid på ting som vi ikke burde brukt tid på, og i tillegg gjorde vi tradeoffs på oppstartstid og ytelse, oppsummerer Fossli.
- Spørsmålet er om det er verdt det.
Agens-CTO-en påpeker dessuten at React Native på mange måter er en av de bedre verktøyene, da appene bruker plattformenes native-komponenter. Mens Flutter, som blant annet Coop går for, tegner alt opp i et OpenGL-canvas, som et slags spill. Da blir brukeropplevelsen merkbart dårligere, mener Fossli.
- Jeg er litt skuffa over at Flutter hele tida kommer opp på vektskåla blant de som vurderer teknologi. Der gjør man noen store tradeoffs, sier Fossli.
Advarer mot å glemme kontekst
Poenget til Fossli er ikke å sable ned alt annet enn native-kode. Selv om apputvikling i to helt seperate løp kan ta mindre tid enn mange tror, blant annet ved å la en felles backend ta de tyngste løftene, er det ikke alle forunt å sitte på utviklere med Swift- og Kotlin-kompetanse.
«Det er problematisk å vurdere disse teknologiene helt uten kontekst.»
Poenget til Fossli er heller å advare mot å blindt putte React Native, Flutter, Xamarin, Ionic og de andre hybridløsningene på vektskåla.
- Jeg ville sett på to ting: Kompetansen til utviklerne, og ambisjonene med appen, gjentar han.
Er ambisjonene høye, får man i CTO-ens øyne det klart beste resultatet ved ren native-kode. Men han slår altså også et slag for å vurdere kompetanse: Har du en gjeng som kan React til fingerspissene, kan det være riktig å velge React Native. På samme måte kan C#-kompetanse bety at du bør vurdere Xamarin.
- Det er problematisk å vurdere disse teknologiene helt uten kontekst, oppsummerer han.
- Hva er konteksten? Hvilke ambisjoner har dere? Hvilken kompetanse sitter dere på? Det må være utgangspunktet. Og så kan man begynne å putte teknologiene på vektskåla.
Alt vi lurer på om å lage iPhone-apper
Når bør man lage en app, hvordan, og hvorfor ikke med React Native? 🤔 Vi spurte ut Petter Holstad Wright fra Shortcut.