Wat_is_react_native
Blog Geschatte leestijd: 3 minuten

Wat is React Native?

In Frontend development is kennis van React momenteel één van de meeste gezochte skills. Als je dan ziet dat er wordt gevraagd om kennis van React Native is het erg verleidelijk om aan te nemen dat React Native hetzelfde is als React. Maar niets is minder waar!

React Native maakt gebruik van ReactJS, maar het is een compleet ander beestje. React Native is namelijk een open-source framework dat door Meta (voorheen Facebook) werd ontwikkeld om applicaties te kunnen ontwikkelen voor het web, voor verschillende operating systems (mobiel, pc en tv) en voor het maken van Virtual Reality applicaties.

Om dit te bereiken werd er tot kort geleden gebruik gemaakt van een zogenaamde bridge die als vertaler tussen de JavaScript code en het native systeem werkt. Deze bridge optimaliseert de data die via JavaScript wordt doorgegeven en zet het om in JSON.

Onlangs (maart 2022) is die bridge vervangen door de JavaScript Interface (JSI). De JSI is vergelijkbaar met de bridge, maar een groot verschil is dat de code niet langer wordt omgezet in JSON. In plaats daarvan wordt is de JSI een laag die ervoor zorgt dat via de JavaScript Engine meteen de native code van het betreffende platform kan worden aangeroepen.
Het gebruik van de JSI in plaats van de bridge is (nog) niet verplicht, maar is beschikbaar via opt-in.

Voordelen van React Native

Nu je weet wat dit framework is, wil je natuurlijk ook weten wat de voordelen zijn van dit framework. Laten we ze op een rijtje zetten!

• Cross-platform: Met React Native hoef je geen aparte teams meer te hebben voor elk apart platform waarop een applicatie moet werken. Met één codebase ondersteun je ze allemaal.
• ReactJS: Omdat React Native gebruik maakt van ReactJS is het eenvoudig te leren voor mensen die al ervaring hebben met ReactJS.
• Hot Reload: De applicatie herlaadt meteen bij het maken van veranderingen. De applicatie hoeft niet eerst (opnieuw) gecompileerd te worden dus je kan meteen verder met ontwikkelen en testen van de applicatie.
• Onafhankelijkheid: Voor applicaties op iOS of Android geldt dat deze OTA (Over-The-Air) updates kunnen ontvangen zonder tussenkomst van de App Store of Play Store. De controle blijft dus in eigen handen en daarbij kunnen bugs ook een stuk sneller verholpen worden omdat de update niet eerst door het goedkeuringsproces van Apple of Android heen moet.
• Uniformiteit: Met React Native kan je ervoor zorgen dat de gebruikerservaring en de UI op elk verschillende platform of apparaat gelijk is. Of je de applicatie nu gebruikt op Android, iOS of het web, de ervaring is hetzelfde. Fijn voor de eindgebruiker terwijl de herbruikbaarheid ook veel extra werk voor de ontwikkelaar scheelt.
• Support: Met een grote partij als Meta als ontwikkelaar van React Native, kan je rekenen op uitgebreide beschikbaarheid van support.

Nadelen van React Native

Nu we de positieve kant hebben uitgelicht is het ook goed om te kijken wat de mogelijke nadelen zijn van het ontwikkelen in React Native. Waar moet je rekening mee houden als je aan de slag gaat?

• Beta: De meest recente versie van React Native (juni 2022) is 0.69.0. De ontwikkeling van het framework loopt goed door, maar het bevindt zich nog steeds in de beta fase. Er is veel support beschikbaar zoals onder de positieve punten werd benoemd, maar met beta versies kan je altijd tegen onverwachte dingen aanlopen.
• Snelheid: Applicaties die in native code worden geschreven voor Android (Java/Kotlin) of iOS (Swift) zijn nog altijd sneller dan React Native apps. Met Java, Kotlin en Swift kunnen hardware features van mobiele apparaten makkelijker worden aangesproken en gebruikt. Het interne communicatie-lijntje is net wat korter en effectiever en daardoor winnen native applicaties het van React Native.
• Effectiviteit: In het verlengde van het voorgaande punt ligt de effectiviteit. Een groot nadeel is namelijk dat de prestaties keihard achteruit hollen als de applicatie groter en complexer wordt. Geen probleem voor kleine simpele applicaties, maar voor de groei van een applicatie kan dit schadelijk zijn. Ook de grootte van de applicaties zelf kan heel snel oplopen. Overigens zouden deze punten (deels) moeten worden verholpen door de nieuwe architectuur met de introductie van JSI. De auteur van deze blog kan echter nog niet bevestigen of ontkennen dat dit zo is.
• Updaten: Het proces om een bestaande applicatie te updaten naar een nieuwere versie is helaas ook nog een complex proces.

Wanneer is het de beste optie?

Als je naar zowel de positieve als iets-minder-positieve kanten kijkt van React Native, wordt het al vrij snel duidelijk wanneer dit framework de beste optie voor je is.
Bouw je eenvoudige applicaties waarbij het belangrijk is om op verschillende apparaten dezelfde look en feel te behouden, dan is React Native mogelijk je allerbeste vriend.
Ook als je een eenvoudige applicatie snel op de (verschillende) markten wilt hebben kies je graag voor React Native. Voor grote en complexe projecten is het voor nu nog even beter om naar andere frameworks te kijken.

Meer artikelen