Wanneer je een app laat ontwikkelen is de keuze voor de techniek één van de belangrijkste keuzes die je moet maken. Maar uit welke smaken kun je kiezen en welke afwegingen maak je?
Verschil tussen React Native en native development
De belangrijkste afweging die je maakt is of je de app native laat ontwikkelen of dat je dat niet doet. Native ontwikkelen betekent dat de app direct wordt geprogrammeerd in Java (voor Android) of in Swift (voor iOs). Je hebt dan twee codebases, want je maakt dezelfde app feitelijk twee keer.
Een alternatief is dat je de app laat ontwikkelen met React Native. React Native is een JavaScript framework waarvan de codebase omgezet wordt naar een native app voor zowel Android als Apple. Er wordt dus één codebase gebruikt om een app te maken die geschikt is voor beide platformen.
Voordelen van apps maken in React Native
React Native kent een aantal voordelen ten opzichte van het laten maken van een app in Java of in Swift. De belangrijkste is de eerder genoemde codebase. Omdat je maar één codebase hebt, hoef je geen geld en energie te steken in twee varianten van de app in twee verschillende programmeertalen. Het scheelt simpelweg tijd wanneer je een app alleen maar in React Native hoeft te maken.
Daarnaast is React Native gebaseerd op JavaScript en React. JavaScript is een programmeertaal en React een JavaScript framework waarmee je gemakkelijk interactieve gebruikersinterfaces mee kunt maken. Beide zijn erg populair en worden heel veel wordt gebruikt bij het ontwikkelen van websites. Veel programmeurs kunnen dus programmeren in JavaScript en er zijn dus behoorlijk wat programmeurs die iets kunnen maken met React Native. Java en Swift daarentegen kennen een stijlere leercurve. Daardoor zijn er minder programmeurs die daarmee écht goed een native app van A tot Z kunnen bouwen.
Omdat er simpelweg meer programmeurs zijn die ontwikkelen in React Native en omdat het wat minder complex is, liggen de uurtarieven voor dat werk meestal ook iets lager. Native development in Java of Swift is net iets specialistischer waardoor de prijzen daarvoor logischerwijs ook wat hoger liggen.
Probleemloze integratie van React Native apps met andere digitale kanalen
Net als native apps, zijn React Native apps zeer flexibel. Je kunt makkelijk je app koppelen aan je website of aan ieder ander systeem. Zo kun je data uitwisselen tussen het ene en het andere kanaal. En dat is handig, bijvoorbeeld wanneer je jouw geregistreerde gebruikers ook toegang wilt geven tot jouw app. Maar ook wanneer je bepaalde content op je website publiceert, kun je die heel makkelijk in een app presenteren. Een app in React Native is daarmee net zo flexibel te integreren met andere systemen en technieken als een native app.
Zijn er ook beperkingen?
Met React Native kun je een volwaardige app bouwen die een hele goede ervaring voor de gebruiker neerzet, die toekomstbestendig is en die goed te onderhouden is. Er zijn uitzonderingen te bedenken waarin native development de voorkeur heeft.
Dat is met name het geval wanneer je een app hebt die heel intensief gebruik maakt van de bepaalde hardware in de smartphone. Denk aan de gyroscoop, microfoon of geavanceerde toepassingen met de camera zoals AR. Wanneer je in Java of Swift ontwikkelt heb je vaak net iets meer controle over de aansturing van deze onderdelen. Met Java en Swift kun je ‘dichter op de hardware’ programmeren dus wanneer je veel van de hardware vraagt in jouw app, heeft native development de voorkeur.
Games zijn ook een categorie apps die je het liefst native ontwikkelt. Spelletjes vereisen heel wat rekenkracht van de smartphone en moeten heel soepel werken voor de gebruiker, anders vermindert de gebruikerservaring. Iedere miliseconde in performance telt, dus je wilt zo efficiënt mogelijk programmeren. Games worden daarom dus bijna altijd native ontwikkeld.
Hoe kom je tot de juiste keuze?
De belangrijkste eerste stap is dat je een functioneel ontwerp maakt met wireframes van je app. Je weet dan exact welke schermen er in je app moeten komen en welke functionaliteiten er per scherm beschikbaar moeten zijn voor de gebruiker.
Samen met de use cases bekijk je dan met jouw internetbureau welke techniek het meest geschikt is. Wil je fancy dingen doen met AR, filters of met audio? Dan is native development waarschijnlijk de beste keuze voor jou. Wil je een branded content app, catalogus of interactief platform? Dan kan React Native je zomaar eens van een volwaardige app voorzien!