Ekspert artikel, Jonathan

Fra native til cross-platform appudvikling — er tiden endelig kommet til et skifte?

Native appudvikling har længe været standarden, på trods af at det ofte er dyrere, men cross-platform er under rivende udvikling og mange vælger nu at skifte. Betyder det, at det på den lange bane (og måske også den korte?) kan betale sig at genoverveje cross-platform — også hvis det betyder et skifte fra native?
1920X1080 Native Crossplatform 02

Der er tale om et paradigmeskifte

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

Det vil sige, en cross-platform app fungerer på både Android og iOS.

Koden skrives i en fælles kodebase, hvorefter den bliver compilet (oversat) til native kode.

Native appudvikling, derimod, er, når du udvikler apps, der kun er kompatible med det styresystem, du udvikler det til.

Det vil sige, vil du have din app på både Android og iOS, skal du udvikle den to gange.

Begge metoder har deres fordele og ulemper, der har tekniske og forretningsmæssige konsekvenser for ethvert appudviklingsprojekt.

Mange taler om et reelt paradigmeskifte, og der er faktisk tegn på, at det har stået på i en del år. Ser vi fx på udviklingen i popularitet på Google søgninger siden 2010 (hvor 100 er det mest populære, søgetermet nogensinde har været), er det tydeligt, at cross-platform stiger støt i popularitet.

Der er tale om et paradigmeskifte

Udviklingen er tydelig. Men hvad ligger til grund for den, og er det noget, du burde være opmærksom på?
Det forsøger jeg at give dig svaret på her.

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, såsom Android.

Til modsætning findes bl.a. React Native der, på trods af navnet, er cross-platform og udviklet til at fungere på flere forskellige systemer.

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

Du kommer ikke udenom det — appudvikling er en ressourcetung investering, uanset hvordan du vender og drejer det. Det gælder, hvad end du går den ’klassiske’ vej og udvikler appen native eller om du tager cross-platform vejen med fx Flutter eller React Native.

Den bedst kendte 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, men hvad med de mest omtalte ulemper (dårligere performance, mindre sikkerhed, begrænsninger i design) ved cross-platform?

Der er sket meget de seneste år. Den eksplosive vækst i popularitet kommer ikke ud af ingenting. Cross-platform appudvikling har på rigtig mange områder indhentet native udvikling på stort set alle parametre.

Men om du vælger native eller cross-platform har stor betydning for:

  • Investering og langsigtede omkostninger
  • Udviklingsprocessen
  • Udviklingstiden
  • Interne ressourcer

Lad os derfor starte med at dykke ned i de førnævnte myter, og hvorvidt de stadig holder stik.

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

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

En af de største årsager til, at native appudvikling i så lang tid har været standarden, er fordi cross-platform hurtigt fik et ry af, at det førte til dårligere performance.
Hvad end det passede engang, så er det i hvert fald ikke sådan længere.

Når det kommer til appudvikling, så 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
Billede 2, Performance

Kvaliteten af den bagvedliggende kode kommer fuldstændig an på de udviklere du har til at udvikle din app, hvad end de udvikler i native eller i cross-platform systemer såsom førnævnte Flutter og React Native.

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

I forhold til de værktøjer der bliver brugt 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.

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

Billede 3, App Sikkerhed

2. 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, såsom Flutter og React Native, gør det muligt for udviklerne at designe sikre apps. De kræver blot, at udviklerne gør noget andet, end når det gælder native appudvikling. Det er dog ikke alle, der er klar over det, hvorfor misforståelsen opstår.

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

Det passer faktisk, at ikke alle cross-platform frameworks giver udviklerne mulighed for at bygge apps med fuld adgang til hele mobilens (eller tablettens) funktioner.

Derfor er det vigtigt, hvis I overvejer at bruge indbyggede features i mobilen/device (fx kamera, fingeraftryksaflæser, etc.), at I vælger det rette cross-platform styresystem fra start, der gør det muligt.

Frameworks som React Native gør det bl.a. muligt at udvikle widgets og andre indbyggede features. Det kræver dog kendskab til det native sprog, det skal implementeres i.

Billede 3, Funktioner
Billede 5, Uoverskuelige

4. 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 netop størrelsen.

Udvikler du app native, som du gerne vil udgive alle de steder, folk normalt henter deres apps, kræver det som minimum to separate udviklerhold — et til Android og et til iOS.

Med cross-platform bliver alt udviklet i ét sprog i ét framework, der sidenhen bliver oversat til alle relevante styresystemer.

Det betyder:

  • færre ressourcer brugt på at koordinere forskellige udviklerhold
  • færre udviklere totalt
  • lavere risiko for udviklingsstop hvis en udvikler bliver syg, da alle arbejder i samme sprog
  • bedre muligheder for gamle Android og iOS udviklere at arbejde sammen på tværs

For at opsummere: De mest velkendte myter om cross-platform appudvikling passer grundlæggende ikke. Og det er mange organisationer og udviklere nu ved at få øjnene op for.

Derfor ser vi den eksplosive vækst i cross-platform appudviklingsprojekter.

Men det er ikke nødvendigvis grund nok i sig selv til at vælge cross-platform over native — eller sågar skifte fra native til cross-platform — er det?

Native appudvikling står og falder med nøglepersonalet

Har du uendelige ressourcer, tid og arbejdskraft til rådighed, er valget ikke svært: du vælger den klassiske løsning med native udvikling med verdens bedste udviklere fordelt på hvor end mange hold, det nu kræver at udgive jeres app på alle de platforme, I ønsker.

Virkeligheden er dog ofte en anden, og det er vigtigt at være opmærksom på nogle af de mere praktiske omstændigheder bag appudvikling:

  • den nødvendige ekspertviden

  • scoping

  • omkostninger og ressourcebrug

  • sårbarhed på personalefronten

  • projektkoordinering

  • løbende brugertests

  • opdatering

  • efterfølgende drift
Billede 6, Nøglepersonale

Så, lad os sige, I overvejer at udvikle (eller forny) jeres app in-house eller på anden vis administrere driften selv.

Ønsker I en native app i både Android og iOS, kræver det udviklere, der er velbefærdede i fx Kotlin eller Java for at arbejde i Android og Objective-C eller Swift for iOS.

Det kan have enorm betydning for forretningen.

Fordelen er, at du har erfarne folk, der arbejder på din app til to af de største platforme i verden.

Men på den anden side hænger erfarne udviklere ikke nødvendigvis på træerne. Og jo mere erfaren en udvikler er, jo sværere er det til gengæld at holde fast i dem.

Og hvad gør du, hvis pludselig en nøgleudvikler på Android holdet bliver syg eller stopper? Her er det ikke muligt ’bare’ at flytte arbejdskraft fra det ene hold til det andet, da det er sjældent, at iOS-udviklere taler samme sprog som Android udviklere og vice versa.

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 der er mange fortilfælde at læne sig op ad, og udviklere arbejder direkte i det framework, som appen publiceres 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 der er ikke 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 omkostninger nede, sparer udviklingstid, kræver færre ekspertressourcer, gør det lettere for udviklere at sparre sammen og forenkler koordineringsarbejdet.

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

  • en app i både Android og iOS
  • optimere udviklingstid og minimere omkostninger i det lange løb
  • én samlet kodebase til hele appen, hvor du har fuld kontrol over brugeroverflade elementer
  • alsidig fordeling af ressourcer og mindre afhængighed af nøglepersonale
  • en agil opsætning med mulighed for hurtigt at omstille i forhold til skift i markedet eller i brugerforventninger

Spar omkostninger eller nå længere for det samme

Konklusionen er ikke nødvendigvis tydelig og kommer selvfølgelig an på jeres situation og de ønsker, I har til jeres app.

Ud fra de seneste udviklinger på markedet og i teknologien er anbefalingen herfra, dog, at overveje cross-platform appudvikling på lige fod med native.

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

Hvad er formålet med din app? Med andre ord, hvad skal appen opnå?

Det er ikke nogen hemmelighed, at apps eksisterer i alle afskygninger og til stort set alle formål, men overordnet kategoriserer vi apps i 4 typer.

De er:

  • App som service, hvor appen udvider virksomhedens servicetilbud. Her er formålet ofte at yde en bedre service og derved styrke kundeloyaliteten. Et eksempel er den app, vi udviklede i samarbejde med Energi Fyn, der bl.a. giver kunder et bedre overblik over deres el- og varmeforbrug.

  • App som produkt, hvor appen er et produkt i sig selv. Formålet er at tilbyde et produkt som ethvert andet. Enten er appen gratis og finansieret via reklamer, et engangsbeløb eller via abonnement. Spotify er et klassisk eksempel herpå.

  • App som supplement til produkt, hvor appen udvider funktionaliteten af et andet produkt. Her er formålet at tilføje en digital dimension til (ofte) et fysisk produkt og derved forbedre det oprindelige produkt. Eksempler er IKEA Home Smart og andre apps, der gør det muligt at fjernstyre elektronikken i hjemmet.

  • App som internt værktøj, hvor appen er et værktøj ofte tiltænkt specifikke arbejdsopgaver. Formålet er her at effektivisere arbejdsprocesser i forretningen, hvad end det er administrative, lagermæssige eller andet. Et eksempel er den app vi udviklede i samarbejde med Plum Safety, der giver kunder og sikkerhedsansvarlige overblik over købte enheder, deres placering og hvornår produkter udløber.

Hvad skal appen opnå?

Skabe mere salg? Styrke kundeloyaliteten? Give eksisterende kunder en bedre oplevelse? Nå bredere ud i markedet? Udnytte brugerdata til remarketing? Vende op og ned på markedet med revolutionerende ny teknologi?

Små variationer i formål har store betydninger for udviklingen og for designet.

Uden et klart formål er det først og fremmest ikke tydeligt, hvilke funktioner og designelementer, der skal prioriteres. Og de funktioner der bliver udviklet, er uden retning eller klar målsætning.

Fx hvor vigtig er brugeroverfladen? Hvor meget forventes brugeren at navigere rundt i appen? Afhænger appen af kritiske, indbyggede funktioner såsom GPS-lokation eller fingeraftrykslæser? Hvad med MitID integration? Betalingsmulighed? Login, profiloplysninger, bookingsystem?

Selv apps der på overfladen måske minder meget om hinanden fra et brugerperspektiv, såsom Spotify, Mofibo, YouTube, Twitch og Netflix — de leverer alle indhold direkte til brugeren — er deres grundlæggende formål, og derfor også deres kodebase, vidt forskellig.

Så, hvad er formålet med din app — hvad skal den opnå?

Svaret er: adfærdsændringer

Adfærdsændringer, eller mennesker der gør en ting nu, men som du ønsker skal gøre noget andet — det er formålet med din app.

Uanset hvilken type app vi taler om, uanset design, uanset om det er native eller cross-platform, uanset forretningsmål, budget og hvor mange udviklerhold der arbejder på projektet, så er det ultimative formål at drive en adfærdsændring i brugeren.

Det forudsætter, at du har indblik i den samlede oplevelse:

  • Hvordan ser brugerrejsen ud for jeres kunder i øjeblikket?
  • Hvordan ønsker I, at appen skal ændre brugerrejsen?
  • Hvilke nye touchpoints opstår der?
  • Hvordan påvirker det brugerens motivation?

Sørg derfor for, at den tilgang I vælger til udvikling af jeres app, faktisk understøtter de funktioner og de formål (tekniske såvel som forretningsmæssige), I ønsker at nå.


Jonathan Bornemann

Managing Director & Partner
job@pentia.dk
+45 2990 7799

JOB Contact Black White