De staat van hybride
Rotterdam, 18 maart 2018
Je hoort het regelmatig: apps die gemaakt zijn op een zogenaamd hybride platform. Hybride betekent in de praktijk dat (een gedeelte van) de broncode gedeeld wordt voor dezelfde app op verschillende platformen. Dat wil zoveel zeggen, dat je als iPhone app developer niet begint met native Swift code, maar dat je in een vaak andere taal begint met het schrijven van (een deel van) de logica. Die andere taal, ik noem het even de hybride taal voor het gemak, is vervolgens om te zetten naar native Swift voor iOS apps, en bijvoorbeeld Java voor de Android apps.
Je schrijft dus één keer code, en daarmee bouw je vervolgens automatisch de iOS en de Android app. Waarom doen we dit niet allemaal, zou je zeggen? Het moet immers flink schelen in de kosten, toch?
Het antwoord zit hem onder andere in de échte definitie van hybride. Wat ik hierboven beschrijf is wel de definitie die tegenwoordig veel aan hybride gehangen wordt omdat het het grootste voordeel is, maar eigenlijk betekent hybride iets heel anders.
Hybride betekent in de oorsprong dat de app ergens tussen een website en een app in zit. De app bevat zowel native- (systeem-eigen) als web-elementen, en is daarmee een hybride (tussenliggende) vorm. Omdat het veel niet-systeemeigen elementen heeft, is een bijkomend voordeel dat deze elementen kunnen worden hergebruikt op verschillende systemen, dus iOS, Android en wellicht Windows Phone.
In de beginjaren van hybride apps, werd de techniek door velen gezien als hét antwoord op de dure native apps. Zeker in de begintijd echter kwam je er al snel achter dat werken met hardware van de mobiele telefoons, zoals gps, voor een app ontwikkelaar een stuk lastiger te implementeren was als je koos voor hybride technologie.
Een ander, groter, nadeel, en ook gelijk het punt waar ik naar toe wil, is dat hybride apps dus in een andere taal geschreven zijn, en met andere bouwstenen dan native bouwstenen. Deze bouwstenen, samen het framework genaamd, zijn door een derde partij gecreëerd en worden door een derde partij onderhouden. Of ze, als het een open source project betreft, worden door de gemeenschap onderhouden. Het wordt in de meeste gevallen niet door een uitgever van het native systeem onderhouden of gepromoot. En daar komt een belangrijk pijnpunt voor frameworks van hybride apps naar voren: ze komen, soms snel, op maar verdwijnen na verloop van tijd ook weer. Er is geen blijvende kracht achter de frameworks.
De frameworks, de bouwstenen, worden op termijn niet goed meer onderhouden. Het framework raakt uit de gratie om de een of andere reden. Meestal omdat er een ander hybride framework in opkomst komt, die net weer iets beter is.
Nu zou je zeggen, dat betekent dat er uiteindelijk een framework is dat alles heeft en niet meer vervangen hoeft te worden door een ander. Helaas (of gelukkig) is het zo dat de native systemen zich echter blijven ontwikkelen, en een hybride framework dus per definitie achter de feiten aanloopt. Zodra een hybride framework dus niet écht goed meer onderhouden wordt, moeten er bij het maken van een hybride iPhone app met dit framework steeds meer pleisters geplakt worden en verband uitgerold, om goed te blijven draaien op de hardware waar het voor bedoeld is.
Daarnaast is het hybride framework ook per definitie onvolmaakt als native oplossing, waardoor het niet fijn is om er mee te programmeren. De meest gebruikte hybride frameworks, Cordova en Xamarin, zijn tegelijkertijd de frameworks die app programmeurs het liefst niet meer gebruiken in een volgend project, blijkt uit een enquête onder zo’n 100.000 programmeurs. In de uitslag van de enquête werd dit beschreven als “a high percentage of developers who are currently using the [hybrid] technology express no interest in continuing to do so”. Met andere woorden, zelfs de meest gebruikte hybride frameworks zijn niet goed genoeg of niet fijn genoeg om mee te werken.
Ik concludeer hieruit dat anno 2018 native apps en frameworks nog altijd het beste zijn om een app in te maken. De onderhoudbaarheid, de ondersteuning, de uitbreidbaarheid, de aantallen mede-programmeurs en best practices zijn en blijven beter dan voor hybride frameworks het geval is. Als je een app wil die op de lange termijn goed onderhoudbaar blijft, kies dan dus vooral voor native!
Heb je naar aanleiding van dit blog vragen? Als native iPhone app ontwikkelaar beantwoord ik deze graag! Klik hier om in contact met mij te komen voor een iPhone, iPad app of ander IT gerelateerd vraagstuk.
Bedankt!
U kunt bij mij terecht voor:
IT gerelateerd onderzoek & advies
iPhone apps
iPad apps
App developer iOS
Heeft u vragen? Neem contact met me op!
Contactgegevens:
Heeft u vragen? U kunt gebruik maken van het contactformulier.
Adres:
Korfoepad 79
3059XD Rotterdam
Tel. +316 19 532 770
KvK: 63601400