Artikel

Fra native til cross-platform appudvikling: Er tiden kommet til et skifte?

For en god ordens skyld: Hvad er forskellen på cross-platform og native?

Cross-platform appudvikling (ofte i React Native eller Flutter) er, når du udvikler apps, der er kompatible på tværs af styresystemer.

Det betyder, at en cross-platform-app fungerer på både Android og iOS. Du skriver koden i en fælles kodebase, hvorefter du ’compiler’ (oversætter) til native kode.

Native appudvikling er derimod, når du udvikler apps, der kun er kompatible med det styresystem, du udvikler dem til. Så: Hvis din app skal fungere på både Android og iOS, skal du udvikle den to gange.

Begge metoder har deres fordele og ulemper, når du kigger på de tekniske og forretningsmæssige konsekvenser for dit appudviklingsprojekt.

React Native er ikke native?

Hvis du er forvirret, så er du ikke alene. En app er 'native', når den er udviklet specifikt til ét styresystem.

Samtidig findes der forskellige software frameworks – bl.a. React Native, som på trods af navnet er en cross-platform-teknologi – og dermed udviklet til at fungere på flere forskellige systemer.

Cross-platform har indhentet native på mange fronter, men er det nok?

Appudvikling er en investering, der trækker ressourcer. Det gælder uanset, om du udvikler appen native, eller om du går cross-platform-vejen med fx Flutter eller React Native.

Den umiddelbare fordel ved at gå cross-platform er, at du sparer udgiften ved at have to separate udviklerhold (et til iOS og et til Android), da cross-platform er bygget på én samlet kodebase.

Det er en stor fordel. Ingen tvivl om det … men hvad med de ulemperne? For er det ikke noget med, at cross-platform har dårligere performance, mindre sikkerhed og begrænsninger i design?

Der er sket meget de seneste år. Og også så meget, at cross-platform nu matcher native på langt de fleste parametre; den eksplosive vækst i popularitet kommer ikke ud af ingenting. Alligevel er der nogle sejlivede myter om cross-platform, og spørgsmålet er, om fordommene er velbegrundede.

I denne artikel dykker jeg ned i 4 af de største myter – og på om de rent faktisk holder stik.

Cross-platform appudvikling: De 4 største myter — holder de stik?

  1. Cross-platform apps har dårligere performance end native apps

Cross-platform har et ry for, at teknologien giver en dårlig performance. Måske passede det engang, men sådan er det ikke længere.

Når det kommer til appudvikling, afhænger performance og den overordnede kvalitet især af to ting:

  • Den bagvedliggende kode
  • De værktøjer, der bliver brugt til at udvikle appen.

 

Kvaliteten af den bagvedliggende kode kommer fuldstændig an på, hvor dygtige dine udviklere er, og hvilke betingelser de har at arbejde ud fra. Og det gælder uanset, om de udvikler i native eller i cross-platform-systemer.

… og der er rent faktisk højere risiko for at finde fejl i native-kode end i cross-platform-kode, da du med native typisk har med flere forskellige kodebaser at gøre.

Ift. de værktøjer du bruger under udviklingen, så tilbyder både native- og cross-platform-frameworks alle de nødvendige værktøjer for at give brugere en naturlig, brugervenlig oplevelse.

Kort sagt: Der er ingen reel forskel at se eller mærke på en native eller cross-platform app.

Fx kører både Facebooks og Instagrams apps  på cross-platform-systemet React Native, mens apps som Spotify og Pokémon Go er native.

  1. Cross-platform er mindre sikkert end native

Den her er ganske enkelt bare ikke sand.

Det er dog ret tydeligt, hvor misforståelsen opstår:

Alle moderne cross-platform frameworks gør det muligt at designe sikre apps. De kræver blot, at udviklerne gør noget andet, end når det gælder native-appudvikling. Men det er ikke alle, der ved, at cross-platform kræver nogle andre sikkerhedsmæssige foranstaltninger end native – og det er sandsynligvis derfor, at misforståelsen opstår.

  1. Med cross-platform går du glip af vigtige funktioner

Den her myte har en rem af sandhed i sig, for det er ikke alle cross-platform-frameworks, der giver udviklerne mulighed for at bygge apps med fuld adgang til hele mobilens (eller tablettens) funktioner.

Hvis du overvejer at bruge indbyggede features i mobilen/tabletten (som fx kameraet), er det derfor vigtigt, at du vælger et cross-platform-styresystem, der understøtter det.

Frameworks som React Native gør det bl.a. muligt at udvikle widgets og andre indbyggede features. Det kræver dog, at du kender det native-sprog, du skal implementere dem i.

  1. Cross-platform projekter er uoverskuelige at håndtere

Sandheden er det stik modsatte. En af de største forskelle på native og cross-platform appudvikling er størrelsen.

Udvikler du en app native – og vil du gerne udgive den alle de steder, hvor folk normalt henter deres apps? Så kræver det som minimum 2 separate udviklerhold — et til Android og et til iOS.

Med cross-platform bliver alt udviklet i ét sprog og i ét framework. Og så bliver det sidenhen oversat til alle relevante styresystemer.

Det betyder, at du:

  • skal bruge færre ressourcer på at koordinere forskellige udviklerhold.
  • skal bruge færre udviklere.
  • har lavere risiko for udviklingsstop, hvis en udvikler bliver syg, da alle arbejder i samme sprog.

En kort opsummering: De mest velkendte myter om cross-platform appudvikling passer ganske enkelt ikke. Og det har organisationer og udviklere gennemskuet. Derfor ser vi en eksplosiv vækst i cross-platform-appudviklingsprojekter.

… men er det nok i sig selv til at vælge cross-platform over native? Eller til endda at overveje at skifte til cross-platform, hvis du har en native-baseret app?

Dét stiller jeg skarpt på i resten af denne artikel.

Er du klar til at påtage dig ressourcebyrden ved native appudvikling?

Har du uendelige ressourcer, tid og arbejdskraft til rådighed? I så fald er valget ikke så svært: Du vælger den klassiske løsning med native-udvikling – og hyrer verdens bedste udviklere, som du fordeler på lige så mange hold, som det nu kræver at udgive din app på alle de platforme, du ønsker.

Men: Hvis du har et budget og en deadline, der skal overholdes, kan det være en god ide at have nogle af de mere praktiske omstændigheder bag appudvikling for øje, når du vælger app-teknologi:

  • nødvendig ekspertviden
  • ’scoping’
  • omkostninger og ressourcebrug
  • sårbarhed på personalefronten
  • projektkoordinering
  • løbende brugertests
  • opdatering
  • efterfølgende drift.

Så: Lad os sige, at du overvejer at udvikle (eller forny) din app in-house eller administrere driften selv på anden vis.

Hvis du ønsker en native app til Android og iOS, kræver det udviklere med nogle helt specifikke kompetencer. For at arbejde i Android skal de nemlig være velbevandrede i fx Kotlin eller Java – og for at arbejde i iOS skal de være skarpe på Objective-C eller Swift. Og det er sjældent at Android-udviklerne taler samme sprog som iOS-udviklerne, og vice versa.

Derfor kommer det hurtigt til at kræve en stor stab af erfarne udviklere in-house. Og erfarne udviklere er både svære at rekruttere og svære at fastholde, fordi mange bejler til dem.  

Det er en af årsagerne til, at native-appudvikling ofte er mindre fleksibel og mere ressourcekrævende end cross-platform, hvor du ikke er underlagt samme organisatoriske byrde, fordi alle udviklere taler og arbejder i samme sprog.

Hvornår bør du vælge native appudvikling?


Native appudvikling er den klassiske vej at gå.

Fremgangsmåden er forholdsvis ligetil, da du har mange fortilfælde at læne dig op ad, og dine udviklere arbejder direkte i det framework, som du publicerer din app i.

Derfor bør du overveje native appudvikling, hvis du

  • ønsker en app målrettet én specifik platform, såsom kun Android
  • laver et spil, der kræver ekstra meget af enhedens processor
  • allerede har erfarne udviklere til Android og iOS, og du ikke har tid eller ressourcer til at uddanne dem i cross-platform-udvikling. 

Hvornår bør du vælge cross-platform appudvikling?


Overordnet holder cross-platform appudvikling dine omkostninger nede, sparer udviklingstid, kræver færre ekspertressourcer, gør det lettere for dine udviklere at sparre med hinanden og forenkler koordineringsarbejdet.

Derfor bør du overveje cross-platform appudvikling, hvis du ønsker:

  • en app i både Android og iOS
  • at optimere udviklingstid og minimere omkostninger i det lange løb
  • én samlet kodebase til hele appen, hvor du har fuld kontrol over brugeroverflade-elementer
  • at fordele ressourcerne alsidigt og vil være mindre afhængig af nøglepersonale
  • en agil opsætning med mulighed for hurtigt at omstille dig ift. skift i markedet eller i dine brugeres forventninger.

Spar omkostninger – eller nå længere for det samme!

Er du stadig usikker på, om du skal gå native- eller cross-platform-vejen? Det kan jeg godt forstå. For selvom jeg har oplistet en række overordnede parametre, som du kan vælge teknologi ud fra, så kommer det endelige valg selvfølgelig an på din situation og de ønsker, du har til din app.

Men jeg vil anbefale dig at overveje cross-platform appudvikling på lige fod med native.

Især hvis dit mål er at spare omkostninger eller nå længere med det samme budget.

Jonathan Bornemann

Business Director & Partner, Mobile Experience