Site pictogram Jeroen Derwort

Vergeet native, bouw hybrid apps in 2017

Native apps worden traditioneel gebouwd voor minimaal twee devicefamilies: Apple iOS en Google Android. Native wordt als superieur beschouwd, omdat het betere performance heeft en beter aansluit bij wat de gebruiker verwacht. Maar hier is, gelukkig, een einde aan gekomen. Technologieën als Cordova, Ionic, Angular en NativeScript maken het, samen met steeds snellere devices, mogelijk om hybrid apps te bouwen die voldoende performance hebben en native genoeg aanvoelen.

Hybrid was om te huilen

In de begintijd van mobiele post-PC devices, was native de duidelijke winnaar. Grote bedrijven als Facebook en het Nederlandse Spil Games, die op hybrid en HTML5 hadden ingezet, hadden last van die keuze en moesten hun verlies nemen.

Logisch, want behalve voor de app van de bakker op de hoek, was een app gebaseerd op PhoneGap/Apache Cordova en jQuery Mobile gewoon niet goed genoeg. Apps die daarmee gemaakt waren, moesten wel héél simpel zijn. Anders viel de performance tegen. De gebruikerservaring was al helemaal om te huilen.

Voor grafische games zijn er wel al jaren goede oplossingen om cross-platform te ontwikkelen. Met als bekendste voorbeelden de Unity en Unreal engines. Deze zijn echter gericht op 3D beelden. Het heeft mij altijd verbaasd dat simpele statische 2D UI, met tekst, knoppen en lijstjes, zoveel moeilijker cross-platform te krijgen is als de meest complexe animerende 3D werelden.

De meeste ontwikkelaars schrijven hybrid om bovenstaande redenen bij voorbaat al af. En dat is niet verstandig.

De opkomst van de Javascript frameworks heeft Angular en Ionic gebracht. De langzame interne mobiele browsers zijn te omzeilen via Crosswalk en Cocoon.io. Native functies kunnen vanuit deze frameworks moeiteloos worden aangesproken. Telefoons zijn door de jaren heen sneller geworden.

Google’s dominantie heeft ervoor gezorgd dat Apple-gebruikers die bijvoorbeeld Google Search, Gmail of Google Docs gebruiken, gewend zijn aan dezelfde basis UI.

Het nadeel van native

Native kan een prachtig eindresultaat geven, maar heeft één enorm nadeel: alles moet twee keer ontwikkeld worden. Dit betekent alleen al dat er minimaal twee keer zoveel ontwikkelaars nodig zijn, om op beide platforms een app te kunnen ontwikkelen en onderhouden.

Bij de bedrijven waar ik actief ben geweest heb ik ondervonden hoeveel overhead dit oplevert. Het drijft de kosten onnodig op en beperkt de flexibiliteit om op de veranderende markt in te spelen. Het neemt niet weg dat het lange tijd de enige manier was om goede apps te maken. Er zullen veel legacy native apps zijn die niet zo makkelijk om te schrijven zijn naar hybrid. Maar voor nieuwe projecten, is hybrid de weg.

Hybrid heerst in 2017

Als het kan zou ik in 2017 altijd voor de hybrid aanpak kiezen. Het voordeel van één codebase, met hogere ontwikkelsnelheid, minder kosten, minder overhead en meer agility, is groot.

De hybrid oplossingen die er zijn, zijn misschien nog niet perfect en nog niet voor alle apps geschikt. Het zal voor een enkel platform iets moeilijker zijn dan native ontwikkeling. Maar het is mogelijk, en voor wie meerdere platforms wil ondersteunen, is het het waard. De native ervaring wordt voor de gebruiker zeer dicht benaderd, zo niet geëvenaard.

Wie sceptisch is, moet de app van Sworkit maar eens bekijken. Gebouwd met Ionic, is dit een redelijk complexe app met video, statistieken, menu’s, lijsten en native elementen zoals in-app purchases en push-notificaties. Eén voorbeeld van hoe dit kan. Maar er zijn er zeker meer.

Mobiele versie afsluiten