Native vs Hybrid Apps

Voordelen en nadelen van hybrid tegen over native app
3 januari 2017

Bij het maken of laten maken van een app wordt er vaak gediscussieerd over de voordelen en nadelen van hybrid tegen over native apps. Er worden wel eens subjectieve en vaak op hypothetische basis uitspraken gedaan over dit onderwerp. Met deze blog wil ik duidelijkheid creëren in de voordelen en nadelen van zowel de functionele en technische aspecten van hybrid apps.

Wat zijn web, native en hybrid apps?

Het eerste wat omschreven moet worden voordat verder gelezen wordt is; de verschillen tussen de 3 verschillende vormen van apps.

Native: Meestal ontwikkeld met de SDK en de ontwikkeltaal van de desbetreffende platform. Heeft volledig toegang tot de functionaliteiten van het platform en de telefoon.

Web (wordt in deze blog buiten beschouwing gelaten): Vanaf een webbrowser bereikbaar. Een website / web applicatie verpakt in een mobile aanvoelende GUI. Ontwikkeld met client-side web script talen e.g. Javascript.

Hybrid: Een app die geschreven wordt in client-side web script talen, maar verpakt is in een native app. Doordat het verpakt zit in een native app is, kunnen functionaliteiten van het native platform en de telefoon zelf (eventueel) vanuit de web script talen gebruikt worden bijv. NFC, de camera of push notifications.

                                      Native vs Hybrid

                                      Snelheid / responsiveness
                                      Vaak wordt gedacht dat native apps sneller zijn dan hybrid apps. Dit komt meestal doordat hybrid apps slecht geoptimaliseerd zijn. Door al kleine aanpassingen te maken kunnen hybrid apps als native apps aanvoelen / presteren, daarom kost het optimaliseren helemaal niet veel zo veel tijd.


                                      Mogelijkheden
                                      Door een platform te gebruiken zoals Cordova kunnen alle native functionaliteiten gebruikt worden. Onder andere camera, NFC, tilt en GPS.


                                      Ontwikkeltijd
                                      De ontwikkeltijd voor een hybrid is enorm veel minder, omdat het porten naar meerdere platformen minder intensief is en de talen die gebruikt worden om de app te ontwikkelen relatief eenvoudiger zijn.


                                      Offline functionaliteit
                                      De vormen web en hybrid worden wel eens door elkaar gehaald, waardoor gedacht wordt dat hybrid apps niet bruikbaar zijn als de telefoon geen verbinding heeft met het internet. Dat is dus niet zo; hybrid apps kunnen (zoals native apps) zonder internet verbinding prima functioneren. Optioneel kan er een synchronisatie mechanisme geïmplementeerd worden, waardoor data wijzigingen op een ander tijdstip alsnog op een server opgeslagen kunnen worden.

                                      Gestures

                                      Hybrid apps zijn hier minder in. Het kost meestal veel tijd om acceptabele gestures te implementeren, waarbij in native apps dit meestal standaard functionaliteit is.

                                      Beveiliging

                                      Alles wat in een native app aan beveiliging mogelijk is, is ook mogelijk in een hybrid app.

                                      Onderhoudbaarheid

                                      Bij het maken van een hybrid app is vrijwel altijd maar één codebase nodig. Bij aanpassingen en toevoegingen van functionaliteit hoeft er dus maar op één plaats aanpassingen in de code gemaakt worden. Dit geeft een enorme tijd winst.

                                      Het is ook zo dat er voor hybrid apps veel meer ontwikkelaars zijn. Dit komt omdat de scripttalen (Javascript, HTML en CSS) waarin hybrid apps worden geschreven relatief laagdrempelig zijn om te leren.

                                      Er zijn ook een aantal andere technische factoren waardoor de onderhoudbaarheid stijgt zoals architectuur enz. maar dit is niet een exclusief attribuut van een native of hybrid app.


                                      Conclusie

                                      Er moet begrepen worden dat er natuurlijk niet één vorm van app voor alle soorten apps geschikt is. Hybrid apps heeft het beste van beide werelden, maar zal niet de beste keuze zijn als de app grafisch intensieve elementen moet weergeven. Voor de meeste categorieën van apps zal de hybrid vorm perfect zijn (prijs, kwaliteit en kwantiteit verhouding) en niet anders ervaren worden als een native app.

                                      Hybrid wordt steeds populairder en uiteindelijk zal een groot deel van apps in de vorm van hybrid ontwikkeld worden.