30 mei 2019

Apps Keuzehulp: native vs. hybride

Apps zijn er in alle soorten en maten. Bij Flusso ontwikkelen we bijvoorbeeld enkel business apps. En mogelijkheden voor de ontwikkeling van apps is ook nog eens gigantisch. Kiezen voor een specifieke techniek is bepalend voor de mogelijkheden van je app. Simpelweg zijn er drie soorten manieren voor de ontwikkeling van (business-) apps: native, native-hybride en web-hybride. In deze keuzehulp helpen we je de mogelijkheden ontdekken met deze drie verschillende smaken.
door: Bert Tukkers
Bert kent alle oplossingen van Flusso en adviseert bij de juiste keuzes rondom business apps
Generic placeholder image

Je wilt dus een app ontwikkelen?

Vraag jezelf allereerst drie dingen af. 

 

Functionaliteit?

Wat moeten gebruikers met je app kunnen doen? Wil je bijvoorbeeld gebruik maken van telefoonfunctionaliteit zoals de camera of GPS? Verwacht je grafische rekenkracht van je app of wil je vooral data op een een aantrekkelijke manier tonen? Kortom: bedenk precies welke functionaliteit je nu en eventueel in de toekomst van je app verwacht voor je een techniek kiest.

 

Gebruik?

Hoeveel en hoevaak wordt je app gebruikt? Gebruiken mensen 'm iedere dag het hele jaar door of juist op een bepaald moment heel veel (tijdens bijv. een evenement)? En op Android, iOS of allebei? De keuze voor hybride of native heeft niet alleen functionele gevolgen, maar ook onderhoud en beheer van een app is afhankelijk van de keuze tussen hybride of native apps. Daarnaast speelt de look en feel van je app een belangrijke en vaak doorslaggevende rol voor gebruikers. Allemaal overwegingen die je moet meewegen in je keuze.

 

Budget?

Ontwikkeling kost tijd en dus geld. Ook de ontwikkeling van een app. Natuurlijk zijn er tools die de ontwikkeling helpen versnellen, maar soms zijn daar licentiekosten aan verbonden. Ook onderhoud van een app vraagt tijd en aandacht. Bedenk goed dat de keuze voor native of hybride apps gevolgen heeft voor je budget. Native-ontwikkeling is doorgaans duurder, omdat apart voor iOS en Android een app moet worden gebouwd en onderhouden. Beslis daarnaast of je app eenmalig nodig is (bijv. bij een evenement) of juist lang in de appstore staat (bij bijvoorbeeld dagelijks gebruik van de app) Kortom, bepaal je budget, doel en maak de technische keuze die daar bij past.

 

App native, native-hybride of web-hybride ontwikkelen

We maken bij Flusso onderscheid tussen drie varianten van app ontwikkeling. Native-ontwikkeling, native-hybride ontwikkeling en web-hybride ontwikkeling. Native-hybride- en web-hybride-oplossingen bieden we aan bij Flusso. Natuurlijk bespreken we je keuze graag uitgebreid met je in een persoonlijk en vrijblijvend gesprek. Voor we door de details vliegen, allereerst heel globaal het onderscheid tussen de varianten. Lees hier vast de belangrijkste eigenschappen van de ontwikkelmethoden op een rij en krijg vast een indruk van de mogelijkheden. 

 

Native

voor iOS & Android

Een native app wordt ontwikkelt per besturingssysteem. Voor iOS en Android wordt dus twee keer apart een app ontwikkelt en onderhouden. Alle functionaliteit en de bekende look & feel die in het besturingssysteem worden ondersteunt, zijn daardoor relatief makkelijk te integreren in je app zonder dat het veel rekenkracht of simulatie van je app vraagt.

Native-hybride
bijv. NativeScript

Native-hybride hangt precies tussen native- en web-hybride-app ontwikkeling in. De app wordt in één keer ontwikkelt voor iOS en Android devices, maar heeft wel de vertrouwde look & feel, uitstraling en vaak dezelfde functionaliteit als het besturingssysteem. Bij de meeste business apps is het verschil tussen native en native-hybride apps niet merkbaar. In specifieke gevallen zal de app bijvoorbeeld grafisch soms iets minder snel zijn, maar de verschillen zijn verwaarloosbaar. Er zijn verschillende technieken voor native-hybride ontwikkeling (NativeScript, Xamarin en React Native). Wij kiezen meestal voor NativeScript. 

Web-hybride
bijv. Ionic

Een web-hybride app wordt in één keer ontwikkelt voor verschillende besturingssystemen. De hybride frameworks en bijbehorende codebase kunnen (grosso modo) voor iOS en Android in één keer worden geprogrammeerd. De app heeft vaak out of the box op alle devices dezelfde (aanpasbare) uitstraling, look & feel en functionaliteit en je kunt (veelal beschikbare) webtechnologie makkelijk integreren.

 

Belangrijkste verschillen in app-ontwikkeling

Nu je kennis hebt van de verschillende ontwikkelmethoden kunnen we dieper duiken in de onderscheidende vermogens van die methodes. Wanneer kies je welke methode? Dat doen we per methode aan de hand van belangrijkste kenmerken van een app die op veel wensenlijstjes van onze klanten zien. We vergelijken op de punten:

 

 

Prestatie

 

Native

De meeste performance haal je uit een native app. Presentaties is met name van belang voor het bouwen van CPU- of grafisch intensieve apps. 

Native-hybride

Performance komt in de buurt van een native app, maar is iets minder omdat er een laag tussen Javascript en de native componenten zit. Belangrijk voordeel ten opzichte van hybride-apps: NativeScript maakt gebruik van de echte native-componenten van het besturingssysteem, waardoor animaties en pagina-transities native zijn, en dus beter en sneller aanvoelen.

Web-hybride

Een web-hybride app heeft van de drie de minste performance, omdat deze feitelijk in een webbrowser draait en geen native-componenten gebruikt. Gelukkig is de  performance de laatste jaren flink toegenomen, waardoor deze alsnog voldoende is voor de meeste business-apps. Net als bij native-hybride, is er sprake van code die draait in Javascript. Dit zorgt voor een iets mindere performance. Ook vertraagd de webbased-UI de snelheid van je app een beetje. Native componenten zijn vaak alsnog door middel van plugins mogelijk, maar ook dat gaat ten koste van de app-prestaties.

 

Look & Feel

 

Native

Native-apps zien er precies zo uit als het besturingssysteem van de device. Alle mogelijkheden, interfaces en visuele prestaties van het besturingssysteem zijn beschikbaar. 

Native-hybride

In principe kan de look & feel van het besturingssysteem volledig worden nagebootst. Net als bij native-apps dus. In de praktijk ben je daarvoor wel afhankelijk van de modules die dit mogelijk maken. Als er (nog) geen kant en klare module ontwikkeld is voor een bepaalde native-component, dan zul je die functionaliteit moeilijker kunnen integreren in je app. Zelf een module bouwen om die native-functie in je app te krijgen, behoort overigens wel tot de mogelijkheden.

Web-hybride

De user-inerface van hybride apps is een web-interface die out of the box aantrekkelijk oogt. Alle UI-componenten zijn HTML- en CSS-componenten, waarmee (native) componenten zichtbaar worden. Die simulatie is minder aantrekkelijk en gebruiksvriendelijk en voelt meer als een webpagina. Voor apps die vooral business logica en of data verwerken zal dit geen probleem zijn, maar voor een app voor bijvoorbeeld consumenten (die in een appstore komt) zal een native look & feel belangrijker zijn.

Native

Per besturingssysteem (iOS en Android) moet een aparte app en code worden ontwikkelt. Je bent dus in feite meerdere apps aan het ontwikkelen en onderhouden, want code kan niet worden hergebruikt. Dat betekent overigens niet dat je twee keer zo lang bezig bent met het bouwen van native-apps. Met name voor iOS geldt dat puur native bouwen veel sneller is dan bouwen op de hybride manieren. Bij beide ben je met name voor de user-interface veel meer tijd kwijt om die helemaal naar wens te krijgen. Nadeel is wel dat je waarschijnlijk minimaal twee (iOS en Android) developers met parate kennis nodig hebt voor bouw en onderhoud van je app.

Native-hybride

Ontwikkeling gaat voor alle besturingssystemen met Javascript/Typescript, waarbij wij vaak gebruik maken van het framework Angular. De basis is één code-base. Met name voor de user-interface zul je in praktijk per besturingssysteem waarschijnlijk wel af en toe specifieke code voor iOS en Android maken. Kennis van Typescript/Javascript/Angular zijn ruimer aanwezig dan native-kennis. Voor een deel kan je ook gebruik maken van web-skills, die breder beschikbaar zijn. Over het algemeen ligt de snelheid van ontwikkelen voor native-hybride apps lager dan web-hybride-apps, vanwege de native specifieke aspecten. Daarintegen hoef je maar één app te ontwikkelen in plaats voor ieder besturingssysteem een aparte app.

Web-hybride

Ook bij deze ontwikkeling programmeer je voor alle besturingssystemen met Javascript/Typescript, waarbij wij vaak gebruik maken van het framework: Angular. Out of the box kun je in principe direct aan de slag met functionaliteit ontwikkelen voor iOS en Android. In praktijk zul je soms een paar besturingssysteem specifieke aanpassingen moeten doen. Hybride-apps maken gebruik van web-technologie, waardoor de snelheid van ontwikkelen vaak hoger en kennis breder voorhanden is. Hybride-frameworks bieden een breed scala aan componenten en functionaliteit, waardoor je relatief snel een app kunt realiseren. Alleen is de look & feel, functionaliteit en prestatie van de app beperkter.

Native

Je hebt volledige beschikking over alle native componenten, functionalteit en look & feel van het besturingssysteem. Inclusief beta-functionaliteit.

Native-hybride

Functionaliteit is afhankelijk van modules. Die modules zullen pas later verschijnen dan nieuwe (beta) functionaliteit van besturingssystemen. Apps die daarvan afhankelijk zijn, zullen dus minder up to date zijn in praktijk. Denk bijvoorbeeld aan een vernieuwde UI van een besturingssysteem of nieuwe device-specifieke functionaliteit.

Web-hybride

Net als bij native-hybride is ook hier een afhankelijkheid van plugins. Die zullen pas later verschijnen dan nieuwe (beta) functionaliteit van besturingssystemen. Daar staat tegenover dat de interfaces van hybride-apps web-technologie gedreven zijn en web-technologie wordt bijna altijd breed ondersteund.

 

Budget

 

Native

Als je zowel een Android als een iOS app wilt laten ontwikkelen zijn de kosten hoger. Als je bijvoorbeeld alleen een app voor iOS wilt laten ontwikkelen is dit de snelste, goedkoopste en meest stabiele oplossing.

Native-hybride

De beste oplossing als je zowel een iOS als een Android app wilt. Kosten zijn lager dan bij native en vergelijkbaar met licentievrije hybride-apps.

Web-hybride

De beste oplossing als je zowel een iOS als een Android app wilt. Kosten zijn lager dan bij native- apps en vergelijkbaar met native-hybride apps. Aan sommige web-hybride technieken zijn licentiekosten verbonden.

 

Conclusie

 

Native

Als je de app maar op één besturingssysteem beschikbaar wilt, ontwikkel dan het snelst, met het minste budget en het meest gebruiksvriendelijk een native-app.

Native-hybride

Als je native functionaliteit, native look & feel en native gebruiksvriendelijkheid op meerdere besturingssystemen wilt, ontwikkel je app dan het snelst en goedkoopst native-hybride.

Web-hybride

Als je juist een eigen look & feel aan je app wilt geven of gebruik wilt maken van je bestaande webkennis (bijv. HTML / CSS) op alle besturingssystemen tegelijk, gebruik dan hybride-apps.

Meer weten over business apps?

Op de pagina business apps lees je meer over de oplossingen die we realiseren met business apps. Natuurlijk mag je ook altijd vrijblijvend contact opnemen voor advies over business apps of meer informatie over onze oplossingen. Vertel me waar je naar zoekt en hoe we kunnen helpen.

bel met mij bel met me op: +31 (0)33 - 4347680
Bert Tukkers
Bert kent alle oplossingen van Flusso en adviseert bij de juiste keuzes rondom business apps
Generic placeholder image
Vereist
Vereist