React Native
– det kloge valg?
Siden Apple frigav iPhonen og muligheden for at bygge apps, har den digitale forståelse i forbrugerens bevidsthed ændret sig markant. Firmaer ønsker at være tæt på forbrugeren og ønsker at give dem, deres kunder, og medarbejdere unikke værktøjer til at løse specifikke problemer, som gør hverdagen lettere for brugeren.
App Store blev lanceret 10. juli 2008 med 500 apps. I dag er der 1.96 millioner apps tilgængelig i Apples App Store og 2.87 millioner apps på Google Play.
Der er stor konkurrence på markedet og det kræver at man kan implementere features og funktioner uden alt for meget “overhead”.
Tilbage til begyndelsen
Fra begyndelsen har man skulle bruge Apples og Googles udviklingssprog; hhv. Objective-c (i dag Swift) og Java (i dag Kotlin) for at kunne udgive en app. Disse sprog er kompilerede sprog og virker kun på den enkelte platform, men har til gengæld adgang til den “rå” cpu/gpu kraft på telefonen, hvilke i nogle tilfælde kan være nødvendigt.
Problemet ved disse sprog er, at du skal skrive din app 2 gange. Det betyder, at du kan gange dit udviklingsbudget med 2 – det tager groft sagt dobbelt så lang tid at udgive en feature til dit produkt, da du skal udvikle det 2 gange hver eneste gang. Ofte er det også forskellige personer der udvikler hhv. til iOS og til Android, hvilket i sig selv kan introducere en række potentielle fejlkilder.
Prøv bare at ansætte 2 tømrer til at bygge et skab – ligner skabene 100% hinanden, når de er færdige? Har de, de samme fejl eller mangler? Når du har to kodesprog, har du en risiko for at få introduceret 2 sæt bugs; 1 sæt pr. platform.
Er der nogen måde vi kan minimere denne risiko?
Ja, gennem høj grad af projektledelse og QA kan du minimere fejlkilder. Du kan også have den samme udvikler til at lave begge platforme – men der findes ikke så mange udviklere, der både kan Swift og Kotlin. Har du dog en udvikler, der kan lave både Swift og Kotlin, vil udfordringer her være, at du forlænger din udviklingstid med x2, da begge apps ikke bliver bygget samtidig.
Spar tid
Er der andre måder vi kan minimere risikoen? Ja, vi kan benytte et framework som gør, at du kun skal skrive appen i et sprog. Det løser følgende udfordringer;
- Forkorter udviklingstiden markant.
- Dit udviklingsbudget er nærmest halveret.
- Du har kun 1 kodebase at vedligeholde.
- Samme person kan udvikle begge apps på samme tid.
- Du har kun brug for 1 omgang projektledelse.
- Du har kun brug for 1 omgang QA.
- Nye features kan leveres på samme tid.
Hvilket framework skal man så vælge? Der findes en hel del forskellige på markedet, og det handler om at vælge det rigtige til opgaven.
- Ionic
- React Native
- Flutter
- Xamarin
- Adobe Phonegap
Vi har erfaringer med flere af ovenstående og anbefaler at man, som markedet ser ud nu, benytter React Native.
Til Energi Fyn har vi eksempelvis bygget en React Native app, som bruges af mange tusinde kunder hver dag.
Nem tilgængelighed
React Native udvikles i javascript, som er nemt at gå til, og communitiet er stort. Det betyder, at der kommer ofte opdateringer og rettelser til frameworket. Det gør det også væsentlig nemmere for udviklere at finde hjælp og svar på internettet, da rigtig mange bruger frameworket. React Native kan også bruges på web og du kan derfor dele kode mellem din hjemmeside og dine apps.
Nedenfor ser et lille udpluk af en række kendte apps, som benytter React Native:
- Bloomberg
- Skype
- Tesla
- Discord
Myter om React Native
Vi bliver ofte mødt med en række påstande om React Native, som kunder har hørt rundt omkring – en slags myter, om man vil. Måske du kan genkende nogle af dem?
- Du skal vente længe på opdateringer til f.eks iOS 14
- Da ReactNative er open source og udviklere skaren er enormt stort, så er react teamet ude med support for alle de nye features inden de lanceres til offentligheden
- React Native har ikke adgang til kernen af telefonen
- Det er muligt med React Native at programmere sine egne native moduler. Det er f.eks også denne måde, at Push notifikationer er lavet på
- Det er muligt med React Native at programmere sine egne native moduler. Det er f.eks også denne måde, at Push notifikationer er lavet på
- Kun til prototyper
- React Native er udviklet til at kunne bruges i produktion til større apps og det er allerede gennemtestet og prøvet af mange firmaer
- Du kan ikke lave accessibility med React Native
- React Native supporter 100% accessibility og gør det nemt for udviklere at overholde de nye krav som alle offentlige institutioner skal efterleve i Danmark
- Ligesom en hjemmeside
- React kan bruges både til at lave Web og Apps men hele fidusen med React Native er, at den benytter sig af native komponent under overfladen. Det vil sige, at din app føles og performer som en rigtig app, da alle skærme, knapper, tekster, billeder ikoner osv håndteres direkte på den enkelte platform – og altså ikke i et WebView som f.eks Ionic.
Er React Native så det kloge valg?
Der skal selvfølgelig altid laves en individuel teknisk afklaring fra projekt til projekt, men i mange tilfælde vil React Native være det kloge valg.
Vi du vide mere om React Native er det rette for din løsning eller har du blot nogle spørgsmål, så kontakt os i dag – Rasmus vil mere end gerne svare på dem alle.