De Voor & Nadelen van React Native development

React Native, werd naast PWA (Progressive Web Apps), een revolutie genoemd in platformonafhankelijke app-ontwikkeling en het leveren van geweldige mobiele ervaring. Deelbare coderepository? Herbruikbare componenten? Dat klinkt absoluut verleidelijk.

Stephan Moerman

React Native is geprezen om zijn "Learn once, write anything."-Doelstelling, wat inhoudt dat je een native look van je app voor zowel iOS als Android krijgt, en je kunt ook platformspecifieke modules toevoegen.

Voor een ontwikkelaar met ervaring in JavaScript en React zelf, is het eenvoudig om React Native op te nemen en er direct aan verder te bouwen.

Over een paar weken is een van onze React Native apps, Haven, beschikbaar in een open beta. We zijn enorm trots op de manier waarop de app loopt en we kunnen niet wachten om meer react native apps te bouwen. Onze ontwikkelaars en sommige van onze klanten zijn volledig aan boord van de React Native-trein en in dit bericht ga ik je precies vertellen waarom: vanuit het perspectief van een bedrijfseigenaar en een JavaScript-ontwikkelaar.

Is React Native de keuze voor je volgende app?

Bouw een product dat je gebruikers graag gebruiken. Bouw een zeer snelle native app voor Android, iOS en zelfs het web en werk samen met onze ontwikkelaars en ontwerpers om het maximale uit uw app-idee en React Native te halen.

Bedrijfsperspectief op React Native

In tegenstelling tot andere platformonafhankelijke frameworks zoals Ionic, benadrukt het Facebook-team dat ze de verschillen tussen verschillende platforms erkennen en RN (React Native) dat weerspiegelt. Daarom kun je nog steeds modules opnemen die specifiek zijn voor iOS en Android, zoals statusbalken, navigatie of toegang tot native elementen zoals camera's en contacten die zijn gebouwd volgens het platform.

Met behulp van libraries zoals React Native for Web of ReactXP kan een ontwikkelaar een platformonafhankelijke app bouwen die ook op het web wordt uitgevoerd, dus het is helemaal niet nodig om afzonderlijke apps te bouwen. We hebben ReactXP in een van onze projecten gebruikt en het voelde echt alsof we de webversie gratis kregen. Dat is best verbazingwekkend.

Onthoud wel dat het gebruik van React Native NIET betekent dat je geen hulp van een native ontwikkelaar nodig hebt. Als je app veel verschillende native-functies bevat, is het mogelijk dat sommige apps aan hun kant wat extra aandacht en werk nodig hebben.

Vervolgens, als het gaat om een teamcreatie...
Je front-end webontwikkelaar kunnen daadwerkelijk een mobiele ontwikkelaar worden zonder de noodzaak om iOS's Swift of Java/Kotlin voor Android te leren. Met enige kennis over native UI-elementen, React en sommige platformspecifieke patronen is React Native gemakkelijk op te halen. Dat is een game changer in termen van het bouwen van een team, want je app vereist slechts één in plaats van twee (of zelfs drie als je ook het web wilt veroveren).

Je kunt JS-ontwikkelaars inhuren die in staat zullen zijn om voor alle platforms te leveren. Daarom is het veel gemakkelijker voor hen om kennis uit te wisselen, een code-evaluatie uit te voeren en de code te begrijpen. Wat een verschil maakt het in termen van tijd en kosten! Om nog maar te zwijgen van het feit dat React Native alles te maken heeft met het tot stand brengen van wendbaarheid van webontwikkeling tot platformonafhankelijke ontwikkeling, met native resultaten.

Over de performance…
Sommigen beweren dat niets de prestaties van native apps zal overtreffen. Het kan zelfs waar zijn, maar producten gebouwd met React Native zijn bijna identiek in hoe ze presteren. Soms zelfs beter. In zijn geweldige artikel waarin Native iOS en RN worden vergeleken, zegt John Calderaio:

"(Volgens) de gegevens die ik verzamelde door beide CPU's, GPU's en geheugen van de applicatie te meten tijdens de taken op elk van de vier tabbladen, zijn de apps ook bijna identiek in hoe ze preseteren. (...) React Native, won twee van de drie categorieën en staat op de eerste plaats als het beter presterende platform. "
Samenvatting: voordelen en nadelen voor bedrijven

Voordelen:

  • Tijd- en kostenefficiëntie
  • Native look en feel van je apps
  • Deelbare codebase voor iOS, Android en het web (met ReactXP en React Native for Web)
  • Eén team voor meerdere platforms
  • Geweldige performance

Nadelen:

  • Behoefte aan expertise van een native ontwikkelaar voor sommige platformspecifieke modules
  • Het is niet volledig cross-platform, single-codebase aanpak, (maar de waarheid is, dat is niet mogelijk als je de native look en feel wilt behouden)

Bloomberg's high performance react native app

Ontwikkelaarsperspectief op React Native

Wanneer je begint te werken met React, ga je meestal met een bundler als Webpack en besteed je enige tijd aan het overwegen van de juiste bundelingmodules voor je applicatie. React Native is anders, en toch werkt het op dezelfde manier als React. Het wordt geleverd met alles wat je nodig hebt om gewoon te gaan zitten en te beginnen met het schrijven van je code.

Hot/Live reload (vergelijkbaar met Instant Run op Android) is een geliefde, killer-functie waarmee een ontwikkelaar de geïntroduceerde wijzigingen meteen kan zien zonder de app opnieuw te hoeven compileren. Je hoeft niet voortdurend de resultaten van acties die je onderneemt te controleren, wat de productiviteit enorm verhoogt en tijd bespaart bij het compileren.

Als het gaat om scrollen, animaties, knoppen, tekstinvoer en andere, geeft React Native een efficiënt recept waarmee ontwikkelaars eenvoudig basistaken kunnen uitvoeren. Componentgebruik is sterk vereenvoudigd in vergelijking met native ontwikkeling en het is enorm kosten besparend door de snelheid waarmee componenten kunnen worden hergebruikt.

Het toevoegen van native modules is misschien geen fluitje van een cent.

Terwijl er talloze libraries zijn om uit te kiezen voor iOS en Android, schijnt React Native hier niet echt. De lijst met libraries en componenten van derden is vrij lang, maar in veel gevallen laten ze veel te wensen over. Wanneer je werkt aan modules zoals apparaatsensors of pushmeldingen, bestaat de kans dat je hulp van een native programmeur nodig heeft om bijvoorbeeld Firebase Cloud Messaging te integreren.

Eerlijk gezegd; Het Facebook-team werkt samen met externe medewerkers en een bloeiende populatie van actieve gebruikers voortdurend aan de toekomst van React Native, waardoor het elke dag beter wordt met meer dan 2500 commits van 500 medewerkers vorig jaar.

Volgens Sophie Alpert, Engineering Manager bij het React team:

"We werken aan een grootschalige re-architectuur van React Native om het framework flexibeler te maken en beter te integreren met native infrastructuur in hybride JavaScript/native apps."

Zelfs als het kan gebeuren dat je een bestaande oplossing in elkaar moet flanzen of iets vanaf nul moet schrijven, zal dit steeds vaker gebeuren.

Samenvatting: voordelen en nadelen voor ontwikkelaars

Voordelen:

  • Je bent een web EN mobiele ontwikkelaar!
  • Geweldige productiviteit
  • Eenvoudige installatie
  • Vereenvoudigd gebruik van stylingcomponenten
  • Hot/live reloading functie

Nadelen:

  • Noodzaak om een aantal bestaande oplossingen bij elkaar te rapen of nieuwe helemaal opnieuw te maken
  • Documentatie heeft nog steeds een upgrade nodig, en kan als gebrekkig worden ervaren

Vertel me of ik ongelijk heb, maar alle voordelen die React Native meebrengt, overtreffen zijn ondergang. Er is bijna elke week een hele community bezig met nieuwe releases. Het was verhelderend om het hier bij scopeweb gebruik te maken van React Native, en ik geloof dat het ook voor de meeste mobiele projecten die er zijn kan werken.

Overweeg je een cross-platform app te laten bouwen?

Als een van Nederlands snelst groeiende startup specialisten werkt scopeweb met kleine teams om grote resultaten te leveren. We helpen bedrijven - zowel startups als gevestigd - om technologie te gebruiken om het volgende decennium van verbeteringen en groei op te bouwen. Stuur ons een e-mail op info@scopeweb.nl of bel ons op 0181 729 191. We zijn ook blij om eventuele vragen te beantwoorden!

Stephan Moerman