Voor het eerst zijn er in het tweede kwartaal van 2011 meer smartphones verkocht dan 'gewone' mobiele telefoons. Apple heeft daarnaast eigenhandig een nieuwe markt gecreëerd met de introductie van de iPad, waardoor tablets momenteel de meest gewilde gadgets zijn. We moeten altijd en overal onze bankzaken kunnen regelen, websites bezoeken en zelfs ons energieverbruik beheren. Niet voor niets kiezen steeds meer bedrijven voor de ontwikkeling van mobiele apps. Dat dwingt het bedrijfsleven tot het maken van een keuze: ontwikkelen van native apps voor de verschillende platforms (Android, iOS, BlackBerry etc.) of één app ontwikkelen voor de verschillende platforms met behulp van HTML5.

De huidige ontwikkeling op het gebied van mobiele applicaties is te vergelijken met die van de verschillende besturingssystemen op desktops. Zo was het in het verleden nodig om verschillende apps te bouwen voor Windows, Mac en Unix. De opkomst van online technologieën heeft een einde gemaakt aan die noodzaak. De keuze voor native of HTML5-ontwikkeling is dan ook geen technische, maar een businesskeuze. Wil je als organisatie één codebase ontwikkelen voor een app die op uiteenlopende smartphones of tablets draait, dan is HTML5 het overwegen meer dan waard. Tenslotte is deze taal ontwikkeld om webapplicaties te maken en biedt iedere smartphone of tablet toegang tot het internet. Mobiele apparatuur lijkt dus bij uitstek geschikt voor de weergave van in HTML5 ontwikkelde apps. Toegegeven: ontwikkelen in HTML5 vergt diepgaande technische kennis. En er is nog weinig gedocumenteerd of gekanaliseerd. Maar HTML5 biedt ook heel zichtbare voordelen, bijvoorbeeld op het vlak van kosten, tijd en efficiëntie.

Bewuste keuze

Veelgehoorde argumenten tegen het gebruik van HTML5 zijn dat native apps een stuk sneller zijn, meer mogelijkheden bieden dan HTML5-apps en een betere gebruikerservaring creëren. De praktijk wijst uit dat deze argumenten niet per definitie opgaan. Toen energieleverancier Essent ons vroeg om een mobiele app te maken voor VerbruiksManager, een online applicatie voor consumenten (particulieren) voor het monitoren van het energieverbruik en het daarop afstemmen van de voorschotten, hebben we alle voor- en nadelen van HTML5 en native apps op een rijtje gezet. Uiteindelijk is bewust gekozen voor ontwikkeling met HTML5, maar daarover later meer. Eerst wil ik graag enkele tegenargumenten ontkrachten.

  1. Native apps zijn een stuk sneller dan in HTML5 ontwikkelde apps
    Native apps zijn geoptimaliseerd voor de onderliggende hardware en het besturingssysteem. Daarbij kunnen ze vaak gebruik maken van multithreading. Dit neemt echter niet weg dat browsertechnologie de laatste jaren enorme sprongen heeft gemaakt. De JavaScript-snelheid op mobiele browsers is met de komst van onder andere Google V8 en Nitro van Apple meer dan verdubbeld. De WebKit-layout-engine waarvan de browsers van de iPhone, Android, BlackBerry en sommige Symbian-smartphones gebruikmaken, haalt ook het uiterste uit de hardware. Het verschil in prestaties tussen native en HTML5 is tegenwoordig dan ook verwaarloosbaar.
     
  2. Native apps bieden meer mogelijkheden
    Eerlijk is eerlijk: een mobiel besturingssysteem biedt andere mogelijkheden dan een webapplicatie. Dit geldt bijvoorbeeld voor hardwarecomponenten zoals fotocamera, dataopslag of GPS-module. Maar ook voor gegevens die op het mobiele apparaat zijn opgeslagen, bijvoorbeeld contactpersonen, foto's en notificaties. Er zijn echter voldoende tools voorhanden die de brug slaan tussen de functies van een webapplicatie en het mobiele OS, zoals het open source-raamwerk PhoneGap, recentelijk gekocht door Adobe. De mogelijkheden die deze tool biedt, zijn meer dan voldoende voor de meeste mobiele apps. Het argument dat native apps meer functies bieden, gaat dan ook in de meeste gevallen niet meer op. 
     
  3. Native apps bieden een betere gebruikerservaring
    Dit is het meest gehoorde bezwaar tegen het gebruik van HTML5-technologie voor de ontwikkeling van mobiele apps. Een bezwaar dat in mijn optiek geen stand houdt, maar op zich wel logisch is. iPhone-apps zien er vrijwel allemaal hetzelfde uit en werken min of meer op dezelfde manier. Ze zijn gemaakt met behulp van software die ervoor zorgt dat de look & feel van de widgets voldoen aan de verwachtingen van een iPhone-, BlackBerry- of Android-gebruiker. Dit geldt niet voor een app die met HTML5 is ontwikkeld. Ook hier komen bedrijven voor een keuze te staan: willen ze een app ontwikkelen waarvan de gebruikservaring past bij een specifiek besturingssysteem of een app voor alle mobiele apparaten? Het wiel opnieuw uitvinden is niet nodig. Er zijn genoeg partijen die hun interpretatie van een universele mobiele gebruikerservaring hebben samengevat in frameworks, waaronder jQuery mobile, JQTouch en Sencha Touch. Dit maakt de keuze een stuk gemakkelijker.

HTML5: de praktijk

De al eerder genoemde VerbruiksManager van Essent is bewust ontwikkeld in HTML5. Dit heeft geresulteerd in de snelle ontwikkeling van apps voor de verschillende mobiele platforms. Deze applicatie doet voor wat betreft gebruiksvriendelijkheid en look & feel niet onder voor die van native apps. En bovendien konden we door slim hergebruik van bestaande websitecomponenten de hele app in een week doorontwikkelen. Iets wat bij een native app niet mogelijk zou zijn. Wij zijn niet de enige partij die kiest voor HTML5. Ook de sociale netwerksite Hyves maakt deze keuze bewust, zoals te lezen is in dit artikel.

Conclusie

HTML5 is als standaard nog volop in ontwikkeling. Je ziet dat nieuwe versies van mobiele besturingssystemen, zoals iOS en Android HTML5 al volledig ondersteunen. Ondanks het feit dat Apple ontwikkelaars aanraadt om te bouwen in Objective-C en Google in Java, is dit geen verplichting en wellicht zelfs kostentechnisch onlogisch. Mijn advies is dan ook om niet extra te investeren in elk mobiel besturingssysteem dat ondersteund moet worden, maar indien mogelijk te kiezen voor een HTML5 aanpak waarbij je één keer iets ontwikkelt voor alle mobiele besturingssystemen.

Ik pleit dan ook voor een 'mobile first'-strategie. Ga als bedrijf terug naar de essentie van een applicatie. Wat wil je de gebruiker bieden? Vervolgens bouw je de applicatie en pas je deze aan op het OS. De kosten voor design zijn wellicht hoger, maar die voor implementatie voor de verschillende besturingssystemen veel lager. En dat zal voor veel bedrijven in deze tijd doorslaggevend zijn. Voor de mogelijkheden van HTML5-apps hoef je het niet te laten.

Jan van den Berg

Jan van den Berg is web applicatie developer voor grote business solutions en specialist op het gebied van software architectuur. Hij heeft meer dan 10 jaar ervaring in IT. Volg @marviq