Native vs Cross Platform
Udviklingen af apps har rykket sig lige så meget som smartphones de seneste mange år. Oprindeligt var det nødvendigt at implementere applikationer med helt forskellige kodebaser til hver enhedstype – i dag giver cross-platform applikationer muligheden for at implementere apps til alle enhedstyper med samme kodebase.
Tid: 15 min læsetid
Emne: Udvikling af Apps
Forfatter: Iterator IT
Cross-platform apps er apps udviklet til både at kunne fungere på Android og iPhone. Cross-platform apps har den store fordel af de at de deler kodebase til begge platforme, og dermed er billigere at udvikle og supportere end Native Apps. Native Apps er apps der er udviklet specifikt til enten iOS eller Android. Udvikling af disse apps foregår derfor i programmeringssprog som Swift eller Kotlin, der er bundet meget tæt til styresystemet. Dette gør det nemmere, at opnå god performance – omvendt skal man også udvikle to særskilte apps, hvilket som minimum fordobler arbejdsmængden.
Der er mange forskellige holdninger til, om man skal lave Apps som Native eller Cross-Platform. Samtidig er der rigtig mange historier og misforståelser omkring hvad man kan og ikke kan. I denne artikel vil vi prøve at skabe lidt klarhed over landskabet i App-udvikling – og hvorfor vi som regel anbefaler cross-platform udvikling
Cross-Platform Apps
Cross Platform Apps kan deles op i to kategorier. Den ene er de såkaldte Hybrid Apps, som fungerer ligesom et website. Appen starter reelt et website der er lavet så det ligner og virker som en app på smartphonen. Teknologier som Cordova og Ionic anvendes til at få adgang til hardwaren på din smartphone, som f.eks. Kameraet eller Bluetooth. Fordelen ved Hybrid Apps er, at man har gode muligheder for at dele kode med website-projekter, da de reelt anvender de samme teknologier. Det kan f.eks. hvis man har en webportal til sit system, og ønsker at udbyde en app med de samme funktioner.
Den anden kategori er Apps der er skrevet i Cross Platform teknologier, men som er baseret på native kode og bygges og fungerer ligesom native apps på smartphonen. Disse Apps kan være lavet i teknologier som React Native eller Flutter. Den samme kode virker på både iOS og Android, men når koden bygges og samles til en applikation, bliver det omsat til en native App-pakke til hver platform, præcis ligesom native kode. Derfor er der i teorien heller ingen begrænsninger for performance og adgang til hardware. Sammenlignet med Native Apps, stilles der dog lidt større krav til programmøren, da valg af teknologier og tredjepartsbiblioteker har større indvirkning på f.eks. performance. Grundlæggende bliver det vigtigt at udvikleren “gør det rigtigt” – til gengæld vil man så også kunne opnå lige så god performance som en native app.
Eksempler på kendte cross-platform apps er Facebook, Instagram, Skype, Tesla & AirBnb.
Fordele ved Cross Platform Apps
- En kodebase til begge platforme
- Lavere udviklingsomkostninger og nemmere testprocedurer
- Billigere og simplere vedligeholde
- Hurtig levering
Ulemper ved Cross Platform Apps
- Det kræver kompetente udviklere til at tage teknologi valg
- Der tilføjes et ekstra lag på hybrid apps, som gør det mindre hardware nært
Native Apps
Native apps er udviklet specifikt til den enkelte platform – iOS eller Android. Det sikrer høj performance da det er mere hardware nært, og er ofte et anbefalet valg af mange udviklingshuse idet det er en gammel og velkendt teknologi. Ulempen er at det kræver to opdelte kodebaser, og man udvikler reelt set to separate apps. Dette resulterer i større udviklingsomkostninger – ofte omkring en faktor 2. Efterfølgende er der også to kodebaser der skal vedligeholdes og videreudvikles.
Skal man udvikle spil til Smartphones, er det oplagt at arbejde med Native Apps. Avanceret 3D grafik, hvor man er helt nede og arbejde med grafikprocessoren, skal ofte hjælpes af nogle meget avancerede algoritmer og frameworks. Disse er veludviklede og ofte kun tilgængelige for de native programmeringssprog.
Eksempler på kendte native apps er Angry birds, generelt de fleste spil, Uber og Waze
Fordele ved Native apps
- Høj performance
- Funktionaliteterne kan spille bedre sammen med devicet
- Det er her de fleste udviklere har deres erfaring
Ulemper ved native apps
- Dyrt og tidskrævende
- Opdelt kodebase
- Større vedligehold
Hvad skal man vælge?
Der har i mange år været en konsensus om, at hvis man anvender Cross-Platform teknologier, går man på kompromis med performance, hardwareadgang og dermed også funktioner. Dette var delvist sandt for 2-3 år siden, men de seneste år, har Facebook satset hårdt på deres React Native, og Google har introduceret Flutter på markedet. Dette har fundamentalt ændret Appudvikling hvor man nu kan bygge Apps der virker på begge platforme, men som underliggende virker fuldstændig ligesom Native Apps.
Facebooks egne Apps som Facebook, Messenger og Instagram er alle bygget i React Native. Når en stor spiller som Facebook beslutter sig for at anvende Cross Platform Apps, skaber det stor innovation og udvikling i Cross Platform teknologierne, og det har været medvirkende til at denne type teknologier i dag er på niveau med de native.
Vi anbefaler oftest vores kunder at arbejde med Cross-platform apps. Ofte er det et spørgsmål om religion samt hvilken metode udviklerne har erfaring med. Dog er det ofte vores vurdering at i langt størstedelen af alle use cases vil der kunne udvikles i en cross-platform app som er lige så god som en native app, såfremt at man har valgt de rigtige teknologier.
Er det et decideret spil med 2 eller 3D grafik og avancerede animationer, bør man lave Native Apps. De fleste frameworks til spil er lavet til Native udviklingssprogene, og nogle endda til C++, som går udenom styresystemet og direkte til f.eks. grafikprocessoren. Det er en helt anden boldgade, og stiller helt andre krav til både udviklingsprocess og programmører.
Iterator IT
Iterator IT er et af Danmarks førende IoT udviklingshuse, vi har især specialiseret os indenfor Industri 4.0. Vi kender derfor også til de komplekse forretningsmodeller der findes i Industrien. Vi har igennem flere år hjulpet industrivirksomheder med at, udvikle deres Industri 4.0 projekt. Her har vi ikke blot taget over, når softwaren skulle udvikles, men vi har hjulpet virksomheder fra bunden med at, kigge på de forskellige elementer af virksomheden, indtil vi har fundet en konkret use case, der har kunne skabe værdi for virksomheden. I nogle tilfælde har vi også været den primære drivkraft, som har styret projektet i mål sammen med en projektleder i virksomheden.
Vi bygger softwaren til projektet, dvs. cloudløsningen og det visuelle til platforme eller applikationer. Men vi har dygtige og erfarne samarbejdspartnere, som igennem mange har udviklet hardware. Derfor er vi også i stand til at tilbyde end-to-end IoT løsninger.
Er I i tvivl om hvad industri 4.0 kan gøre for jer, så er I meget velkommen til at kontakte os enten via vores kontaktformular her eller ring til Casper på +45 31 39 05 69