HTML5 & Mobile Apps

Zoals sommigen wel weten ben ik het laatste jaar erg druk met kennis en ervaring verzamelen én delen op het HTML5 vlak. Na vele praktische HTML5 vragen met een hoop interactie en interessante discussies ben ik er wel uit: HTML5 is een prachtige frontend-technologie.

Daarnaast kom ik ook regelmatig bij ontwikkelteams de volgende vraag tegen: wij willen graag mobile apps ontwikkelen, maar wat is nu de beste omgeving?

Daarbij heb ik eigenlijk alleen het geëikte consultancy antwoord: dat ligt er aan.
Waar aan? Nou, wat je nodig hebt voor je applicatie.

Een eerste stap die ik veel ontwikkelteams zie maken is om een mobiele webapplicatie te bouwen met HTML5 technologie. Dit is het eenvoudigst, je hebt immers geen specifieke kennis van de verschillende mobiele platforms nodig (iOS, Android, Windows Phone etc.). Daarentegen heb je, afgezien van wat de browser je biedt, geen toegang tot de hardware van het mobiele apparaat. Een andere nadeel is dat je je mobiele app niet in de verschillende appstores kunt plaatsen.

Een volgende stap zou kunnen zijn om een zogenaamde 'native' applicatie te maken. Je bouwt een mobiele app op het platform dat daarvoor bedoeld is. XCode met Objective C als ontwikkeltaal voor iOS (Apple iPad & iPhone), Eclipse met Java voor Android en Visual Studio met Visual Basic.NET of C# voor Windows Phone 7.
Daarnaast moet je per omgeving leren hoe de gebruikersinterface gebouwt dient te worden.
Het grootste nadeel: je moet verschillende omgevingen en talen leren en beheersen.
De voordelen: je app heeft volledige toegang tot de hardware, de beste performance en past het best bij de look&feel zoals de gebruikers van het mobiele platform gewend zijn en je app kan in de verschillende appstores worden geplaatst en verkocht.

Ten derde kun je nog een hybride oplossing maken. Je maakt dan een native applicatie die een webapplicatie toont (de HTML5 kan in lokaal in de applicatie aanwezig zijn). Hierdoor kun je een app bouwen die in een appstore geplaatst kan worden, toegang kan hebben tot de hardware en toch de mogelijkheden van HTML5 en javascript gebruiken om de rest van je applicatie te bouwen. Hiervoor dien je dan nog wel een communicatie mechanisme te bouwen tussen de gebruikersinterface in HTML5 en de native 'schil' waarin deze draait.

Nu kun je deze natuurlijk zelf bouwen, maar er zijn ook een aantal oplossingen beschikbaar.
Eén daarvan is PhoneGap, mijn favoriet vanwege het brede support voor verschillende omgevingen en het is gratis!
Met PhoneGap ben je in staat om grote delen van je HTML5 en javascript code te delen tussen de verschillende mobiele platformen.
Een vergelijkbare oplossing is appMobi.

Een andere oplossing is Appcelerator Titanium. Dit is echter een heel ander soort oplossing. Je gebruikt feitelijk JavaScript als universele taal voor verschillende platformen (momenteel alleen iOS en Android) en de native componenten voor de gebruikersinterface. Je applicatie wordt volledig gecompileerd als native app en levert daardoor gelijkwaardige prestaties als een app gebouwd in Objective C of Java.

Persoonlijk geef ik voorlopig de voorkeur aan het ontwikkelen in PhoneGap aangezien je hier volledige HTML5, CSS3 en JavaScript ondersteuning hebt, de PhoneGap API al heel veel toegang tot het mobiele platform bied en de meeste platformen ondersteund.
Daarnaast lijkt dit ook het meest op het bouwen van applicaties met HTML5 voor Windows 8.

Ronald Harmsen

I'm a software developer. When I'm not developing software I'm training & coaching other developers, speaking on a conference or fiddling with some technical stuff.

Arnhem, The Netherlands

Subscribe to Ronald to the cloud

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!