React Native vs native app udvikling

Der er 3 mest benyttede måder at udvikle mobile apps på; React Native, iOS native og Android native. Hvad er de forskellige fordele og ulemper, og hvad skal du vælge?

React Native

React Native er lavet af Facebook og bygger på Facebook’s eget JavaScript framework ved navn React(#1). React er skrevet i programmeringssproget JavaScript, og er cross platform — det vil sige man udvikler 1 app, som så fungerer på både iOS og Android.

Fordelene er at man kan udvikle til både iOS og Android på én gang, samt der kun er en kodebase i tilfælde af der kommer nogle fejl.

Ulemperne ligge blandt andet i at der ikke er mulighed for at udvikle og benytte mange af de sværere eller mere specialiserede fordele ved mobiltelefonerne. Det kan være kameraet skal have nogle specielle extra funktioner som filtre, eller der ønskes at benytte iOS’ nye AI og AR funktioner. Før i tiden var React Native ikke helt så hurtig som fx Swift, men dette ser ud til at have ændret sig til de er lige hurtige(#2 & #3). Det føles også pt. som om der ikke er så mange udviklere til React Native som der er til native Android og iOS.

iOS native udvikling

iOS native er apps udviklede specifikt og kun til Apple’s enheder(iPhones, iPads osv.). De udvikles i programmeringssproget Objective-C(Den gamle måde) og/eller Swift(Den nye måde) igennem udviklingsmiljøet(et program til macOS) Apple XCode. Det er Apple der står for programmeringssproget Swift og udviklingsmiljøet XCode.

Fordelene ved at udvikle til iOS på den native måde erdu kan benytte de nyeste teknologier fra Apple, der er et kæmpe fællesskab så det er nemt at løse næsten alle opgaver og der er masser af udviklere. En rigtig stor del af den danske befolking benytter iOS(#4), samt det er nemmere at få befolkningen til at bruge penge igennem App Store.

Ulemperne kan være at Swift stadigvæk er et programmeringssprog der bliver udviklet på, så dine apps skal have en mindre opdatering engang imellem — dette er også en fordel da dine apps bare bliver bedre og bedre. Når du udvikler iOS native, udvikler du kun til Apples enheder, så derfor får Android ikke mulighed for at benytte dine apps.

Android native udvikling

Android Native er apps kun udviklet til Android platformen — herunder dog alle Android’s forskellige styresystemer, og med det mener jeg Samsung, LG, Motorola m.f. Android er kodet i programmeringssproget Java(Klassiske) eller Kotlin(Helt nyt) og som regel igennem Android Studio programmet som er udviklet af Google. Google står bag Android styresystemet, men der er mange producenter af Android telefoner, og de er alle lidt forskellige.

Fordelene er som hos iOS og Swift/Obj-c at det er nemmere at tilgå alle Android’s funktioner såsom kamera og specielle avanceret animationer. Derudover er det nemt at udvikle så appen passer pefekt til Android platformen og dens brugeroplevelser — blandt andet material design hvor der findes masser kode udviklet af Google man kan benytte(#5). Der er en masse Android udviklere, samt programmeringssproget Java er stort udbredt blandt både nyuddannede og den generelle programmør.

Ulemper er at man kun udvikler til Android, og at der er mange ældre Android telefoner, der ikke har opdateret til de nyeste versioner, så det kræver som regel ens apps skal være bagud kompatibel til ældre versioner — det ser man i mindre grad hos iOS.

Hvad skal jeg vælge?

Hvis du skal have en hurtig prototype, der ikke nødvendigt passer perfekt til iOS eller Android platformen, så kan React Native være et godt valg.

Vil du have trofaste og stabile apps, som er specialiseret til at brugerne af hver platform for den bedste brugeroplevelse, så er native udviklingen fremgangsmåden at tage. Dette afhænger også af dit design, og fremgangsmåde i dine apps.

Vil du fremtidssikre kan native være måden at gøre det på, da både Google og Apple står bag native iOS og Android udviklingsmåden, og det er Facebook der bestemmer React Native, så det er ikke klart hvilken linje der er lagt og om de gider vedligeholde det(#6).

Man kan altid argumentere om React Native har et nyt library der kan gøre det samme osv. Jeg foreslår at læse reference #6 for at få mere viden omkring de forskellige fordele og ulemper.


Skrevet af @Tommy_Jepsen — https://www.superclass.dk

Besøg mig hos https://superclass.dk og lad os få en sludder hvis du har nogle spørgsmål, eller mangler en app at få designet 👍