Een GO voor cross-platform app ontwikkeling

Door Roy Niemantsverdriet, accountmanager mobile
13 april 2017 - 3789 x bekeken - Categorieën: Mobile, Tech, Kennis

Er zijn op dit moment een aantal manieren om een app te (laten) ontwikkelen. De meest gebruikte methodes zijn native, hybrid en cross-platform. Binnen E-sites zijn wij voorstander van native apps omdat hier simpelweg het beste resultaat in geboekt wordt. Maar cross-platform apps bieden steeds meer mogelijkheden en er kan in minder tijd een kwalitatief goede app ontwikkeld worden. Dit was voorheen nog niet het geval. Interessant! Voor onze dienstverlening, maar ook voor jouw organisatie. Daarom hebben we onderzoek gedaan naar verschillende cross-platform frameworks.

Welke soorten apps zijn er?

Er zijn grofweg 3 soorten apps die gedownload kunnen worden in de app stores: native, hybrid of cross-platform apps (ook wel cross-compiling apps genoemd).

Native app
Een native app is afhankelijk van het platform. Dit betekent dat er voor de grootste marktleiders (iOS & Android) in een specifieke taal geschreven wordt. Voor iOS wordt dit gedaan in Swift en Objective-C en voor android wordt Java gebruikt. Om een native iOS en een Android app te maken moet de app als het ware twee keer from scratch worden gebouwd. Native apps bieden van nature de beste performance.

Hybrid app
Als je een hybrid app ontwikkelt, hoeft de app maar 1x gebouwd te worden. Uiteindelijk krijg je hier zowel een app voor iOS als voor Android voor terug. Een hybrid app is een combinatie van native en web. De app bestaat uit een native webview en wordt door middel van HTML5, CSS en JavaScript opgebouwd. De performance bij een hybrid app is over het algemeen minder dan bij een native app.

Cross-platform app
Bij de ontwikkeling van een cross-platform app hoeft de app ook maar 1x gebouwd te worden in een andere taal dan HTML5 en CSS. Deze taal wordt uiteindelijk automatisch omgezet naar native buttons, labels, textfields en lists. De performance is tegenwoordig bijna vergelijkbaar met native apps en je krijgt er een iOS en Android app voor terug.

Verschillende cross-platform frameworks

Om te onderzoeken of deze manier van ontwikkelen daadwerkelijk interessant is, hebben we 4 verschillende cross-platform frameworks met elkaar vergeleken en de voor- en nadelen op papier gezet. Het belangrijkste voor E-sites was bekijken welke oplossing het dichtst bij de kwaliteit van native ontwikkeling in de buurt komt.

De diverse frameworks en een kleine verdieping in de techniek:

  • Xamarin: wordt geschreven in C# en is gekocht door Microsoft.
  • React Native: het project wordt opgezet in Javascript en wordt ingeladen in een native iOS/Android project. React Native is van Facebook.

  • Native Script: vergelijkbaar met React Native. Native script is van Telerik

  • Ionic: het project wordt opgezet in Angular 2 (Javascript) en maakt gebruik van Cordova. Er wordt gebruik gemaakt van webtechnieken (HTML5, CSS en JavaScript), maar de output is bijna identiek aan native componenten.

Tijdens het onderzoek hebben we ons gefocust op verschillende onderdelen. We hebben een vergrootglas gelegd op de projectduur van iOS en Android. Maar ook hebben we een vergelijking gemaakt tussen performance, user interface look and feel en custom design. Verder speren we ons nog op de community, de support, de toekomstvisie en de stabiliteit van de oplossing.

Onze conclusie

Alle frameworks hebben zo hun voor- en nadelen. Er is dus niet een duidelijke winnaar aan te wijzen. Bureaus baseren hun keuze voor een framework voornamelijk op basis van leercurve, benodigde vaardigheden van medewerkers, kosten, herbruikbaarheid en natuurlijk kwaliteit.

Cross-platform ontwikkeling geeft een extra abstractielaag waarin ontwikkeld moet worden. Elke extra laag zorgt in feite voor een grotere kans op bugs. Een goede support, een levendige en groeiende community, is dus erg belangrijk. NativeScript scoort in dat geval erg slecht en heeft dus niet onze voorkeur.

Xamarin biedt een stabiel en goed leerbaar platform, maar wordt geschreven in een totaal andere taal dan native. Om hiermee te kunnen werken, heb je dus tijd, kunde en andere vaardigheden nodig.

Wordt vervolgd!

React Native vonden wij een erg interessante oplossing. Op dit moment maakt dit framework gigantische sprongen en stijgt daarom continu in populariteit. Maar ook de combinatie met front-end is heel interessant. Webdevelopment lijkt zich dan ook volledig op React Native te gaan storten. Daarom is E-sites ondertussen naast native app ontwikkeling, ook in React Native gaan ontwikkelen.

Dit onderzoek is uitgevoerd door het Mobile team van E-sites. Wil je meer weten over het onderzoek en de resultaten? Neem dan contact met mij op. Ik help je graag verder!

 

Hyperledger: de tweede bruikbare blockchain tool

Door Samet Yilmaz

In mijn vorige blog heb ik je kennis laten maken met Ethereum. Een van de vele tools die je nu al kan inzetten om je applicatie te decentraliseren… - Lees meer

Lees verder