Technieken voor het ontwikkelen van mobiele apps
Met de sterke groei van het aantal smartphones en tablets neemt de vraag naar mobiele apps razendsnel toe. Voor het ontwikkelen van een mobiele applicatie heeft u keuze uit drie type apps: native, web en hybrid apps. Alle varianten draaien op smartphones en tablets zoals de iPhone en Galaxy Tab, maar er zijn ook belangrijke verschillen.
Overweegt u een app te maken, dan is het goed om te weten wat die verschillen zijn. Dit artikel helpt u om de voor- en nadelen van de technieken met elkaar te vergelijken, zodat u de beste keuze voor uw situatie kunt maken.
Dit artikel stamt uit 2012. Er is inmiddels een nieuw artikel over hetzelfde onderwerp geschreven. Lees het nieuwe artikel: “Mobiele apps: waar let je op het bij het kiezen van een technologie?“.
Er zijn op dit moment drie gangbare technieken voor het ontwikkelen van mobiele apps: native apps zijn specifiek ontworpen en gemaakt voor één mobiel besturingssysteem (zoals iOS, Android, Blackberry en Windows Phone), web apps draaien in de browser van het mobiele apparaat en zijn op elk modern mobiel besturingssysteem te gebruiken, en hybrid apps zijn een combinatie van native apps en web apps.
Native apps
Native apps bestaan al zolang als er mobiele telefoons zijn. Als u ooit een Nokia telefoon heeft gehad, dan herinnert u zich vast nog het spelletje Snake. Of de ingebouwde rekenmachine. Beide zijn het voorbeelden van native apps: programma’s voor mobiele telefoons die specifiek voor een bepaald besturingssysteem zijn gemaakt. In dit geval voor het mobiele besturingssysteem van Nokia; het spelletje Snake kan niet worden gespeeld op een Ericsson telefoon (tenzij Nokia een aparte versie voor het mobiele besturingssysteem van Ericsson zou uitbrengen). Doordat de ontwikkelaars gebruik maken van de unieke eigenschappen van het Nokia platform, is de applicatie niet zomaar over te zetten naar het Ericsson systeem.
Eén van de belangrijkste voordelen van native apps is dat ze de beste prestaties leveren. Dat komt doordat ze direct met de hardware van het mobiele apparaat kunnen communiceren. Dat heeft als bijkomend voordeel dat native apps toegang tot de meeste apparaatfuncties hebben, zoals de camera, versnellingsmeter (accelerometer), de microfoon, de fotobibliotheek en het adresboek.
Voor zware games en rekenintensieve toepassingen zijn native apps het meest geschikt. Een ander belangrijk voordeel is dat u native apps kunt presenteren in de appstore van het mobiele platform – zoals de App Store van Apple of de Android Market. Daarmee biedt het mobiele besturingssysteem een ingebakken businessmodel en is het eenvoudige om apps aan te bieden en te verkopen. Wel moet u tot 30% van de opbrengst delen met de appstore.
Voorbeelden van native apps zijn Angry Birds, WhatsApp, Echofon en Instagram.
Angry Birds is een voorbeeld van een ‘native’ app; voor elk mobiel besturingssysteem (en in sommige gevallen voor elk type apparaat) heeft maker Rovio een aparte versie uitgebracht.
Web apps
Web apps voor mobiele apparaten maken gebruik van algemene webtechnologieën zoals HTML, CSS en Javascript. Ze verschillen in de basis niet zoveel van ‘gewone’ websites en webapplicaties, met dat onderscheid dat ze zijn aangepast voor gebruik op mobiele apparaten zoals smartphones en tablets. Telkens wanneer de gebruiker een web app opent, wordt de applicatie of een deel daarvan gedownload vanaf het web. Installatie op het apparaat is dus niet nodig (maar het is wel mogelijk om een icoon op het startscherm te plaatsen). Doordat de web app in de browser van het mobiele besturingssysteem draait, zijn web apps platformonafhankelijk en dat brengt significante kostenvoordelen met zich mee als u alle belangrijke mobiele besturingssystemen wilt ondersteunen.
Dat web apps onder water gebruik maken van webtechnologieën, wil niet zeggen dat ze het qua gebruikersbeleving tegen native apps moeten afleggen. Met de juiste technieken kan met web apps in veel gevallen nagenoeg dezelfde gebruikerservaring worden gecreëerd. Zo kunnen web apps reageren op ‘multitouch’ aanrakingen en data veilig opslaan op het mobiele apparaat. Er zijn wel een paar uitzonderingen: omdat er bij web apps meer lagen tussen de software en de hardware van het mobiele apparaat zitten, zijn ze op dit moment minder geschikt voor zware games en andere rekenintensieve toepassingen. En hoewel web apps ook zonder internetverbinding te gebruiken zijn, hebben native apps op dat vlak nog een voorsprong.
Voorbeelden van mobiele web apps zijn Financial Times Web App, Quora, Basecamp Mobile en Gmail. Bezoek deze URLs vanaf je telefoon of tablet om de apps te bekijken.
De Financial Times raadt gebruikers aan om de mobiele web app te gebruiken.
Hybrid apps
Het woord ‘hybride’ verklapt het al: deze variant maakt gebruik van een combinatie van native en web technieken. Hybrid apps gebruiken platformspecifieke code voor het benutten van de mogelijkheden van het mobiele besturingssysteem en maken daarnaast gebruik van algemene webtechnologieën die op elk systeem aanwezig zijn. De mobiele Facebook app bijvoorbeeld gebruikt native technieken, onder andere voor het benutten van de camera van het mobiele toestel, maar de functionaliteit wordt verder grotendeels aangeboden met behulp van webpagina’s die ‘live’ vanaf de Facebook servers komen.
Omdat een deel van de functionaliteit van hybrid apps aangeboden wordt met behulp van generieke webtechnologieën, kan tijd en geld worden bespaard bij het uitrollen van versies voor verschillende mobiele besturingssystemen. Dat betekent dat u alsnog voor alle mobiele platformen een eigen versie maakt, maar dat die versies sneller en goedkoper te realiseren zijn. Desalniettemin kost een hybride app strategie doorgaans meer dan een web app.
Voorbeelden van hybrid apps zijn Facebook Mobile, Nu.nl, LinkedIn en IMDb.
LinkedIn biedt een app voor alle belangrijke mobiele besturingssytemen. Onder water maken de apps gebruik van gezamenlijke functionaliteit via het web.
Vergelijking
Native, web en hybrid apps kennen veel overeenkomsten en verschillen. In onderstaande tabel zijn de drie type apps met elkaar vergeleken op twaalf belangrijke kenmerken. Er zijn meer kenmerken waarop de technieken van elkaar verschillen, maar dit zijn in onze ervaring de kenmerken waar het in de meeste gevallen echt om gaat bij de keuze voor een bepaalde techniek. Na de tabel volgt een toelichting op elk van de kenmerken.
Kenmerk | Native | Web | Hybrid |
01. Platformonafhankelijk | ◎◎◎ | ◉◉◉ | ◉◎◎ |
02. App gemakkelijk vindbaar voor gebruiker | ◉◉◉ | ◉◉◎ | ◉◉◉ |
03. Icoon op het startscherm | ◉◉◉ | ◉◉◉ | ◉◉◉ |
04. Prestaties & Animatie | ◉◉◉ | ◉◎◎ | ◉◉◎ |
05. Vrij van appstore-commissies | ◎◎◎ | ◉◉◉ | ◉◎◎ |
06. Toegang tot toestelfuncties | ◉◉◉ | ◉◎◎ | ◉◉◎ |
07. Relatief lage kosten en realisatietijd | ◎◎◎ | ◉◉◉ | ◉◉◎ |
08. Volledige controle op inhoud en businessmodel | ◎◎◎ | ◉◉◉ | ◉◉◎ |
09. Geen vertragingen door appstore approval | ◎◎◎ | ◉◉◉ | ◉◉◎ |
10. Ondersteuning voor notificaties | ◉◉◉ | ◎◎◎ | ◉◉◉ |
11. Ook zonder internetverbinding te gebruiken | ◉◉◉ | ◉◎◎ | ◉◎◎ |
12. Doorzoekbaar voor zoekmachines | ◎◎◎ | ◉◉◉ | ◉◎◎ |
◎◎◎ = De techniek ondersteunt het kenmerk niet.
◉◉◉ = De techniek ondersteunt het kenmerk volledig.
Platformonafhankelijk
Een native app is specifiek ontworpen en gemaakt voor één mobiel besturingssysteem. Wilt u alle systemen ondersteunen, dan moet u voor elk een aparte versie van de app ontwikkelen. Een web app draait in de browser van het mobiele apparaat en is op elk mobiel besturingssysteem te gebruiken. Een hybrid app maakt gebruik van een platformspecifieke schil in combinatie met generieke webtechnologieën. Daardoor is een deel van de app platformonafhankelijk en op meerdere mobiele besturingssystemen te hergebruiken.
App gemakkelijk vindbaar voor gebruiker
Native apps en hybrid apps zijn eenvoudig te vinden en installeren via de appstores van de mobiele besturingssystemen. Voor web apps bestaan geen wijdverspreide appstores; gebruikers kunnen de app vinden op het web (bijvoorbeeld via uw website of een zoekmachine). Installatie is bij web apps niet nodig, want ze draaien in de browser van het toestel.
"Welke techniek voor het ontwikkelen van een mobiele app is nu uiteindelijk de beste? Dat hangt af van uw specifieke toepassing en je doelgroep."
Icoon op het startscherm
Het is bij alle type apps mogelijk om een icoon op het startscherm van het mobiele apparaat te plaatsen. En net als bij native en hybrid apps kunnen web apps een ‘laadscherm’ tonen tijdens het openen van de app.
Prestaties & Animatie
Native apps leveren de beste prestaties, doordat ze nagenoeg direct met de hardware van het mobiele apparaat kunnen communiceren. Web apps maken gebruik van de browser van het mobiele apparaat en daarom zitten er meer lagen tussen de software en de hardware. Dat kan in sommige gevallen vertragend werken. Hybrid apps maken eveneens gebruik van de browser, maar kunnen desgewenst direct met de hardware communiceren. Dat vraagt wel om extra platformspecifieke aanpassingen.
Vrij van appstore-commissies
Native apps en hybrid apps worden gedistribueerd via de appstore van het betreffende mobiele platform waarvoor de app is gemaakt. Rekent u geld voor uw app, dan moet u tot wel 30% van de eenmalige en herhaaldelijke inkomsten delen met de appstore. Web apps worden niet verspreid via de appstores en zijn daarom vrij van commissieafdrachten.
Toegang tot toestelfuncties
Native apps hebben op dit moment toegang tot meer apparaatfuncties dan web apps. De camera en microfoon, de fotobibliotheek, het adresboek en een eventueel aanwezige versnellingsmeter (accelerometer) kunnen door de native app worden benut. Het uitlezen van de GPS-locatie van het toestel is met zowel native apps als web apps mogelijk. Hybrid apps kunnen net als native apps alle apparaatfuncties benutten, maar het koppelen met de onderliggende webfunctionaliteit is niet altijd even gemakkelijk.
Relatief lage kosten en realisatietijd
Web apps zijn goedkoper en sneller te maken zijn dan native apps, zo blijkt uit onderzoek van GIA. Daarnaast zijn native apps platformspecifiek, waardoor het voordeel van web apps toeneemt als u met uw app verschillende mobiele besturingssystemen wilt kunnen ondersteunen. Hybrid apps zitten qua kosten en realisatietijd tussen native en web apps in.
Volledige controle op inhoud en businessmodel
Aanbieders van mobiele platforms, zoals Apple, Google, Blackberry en Microsoft, hanteren verschillende regels over wat wel en wat niet is toegestaan met betrekking tot de inhoud en het businessmodel van native apps. Met web apps heeft u altijd zelf de volledige controle over inhoud en businessmodel. Hybrid apps bieden u ook relatief veel controle, omdat u het webgedeelte van de app altijd kunt aanpassen zonder tussenkomst van de appstore.
Geen vertragingen door appstore approval
Wanneer u een native app uitbrengt of vernieuwd, moet u deze laten goedkeuren door de appstore van het mobiele platform. Dat proces kan tot enkele weken duren. Web apps worden vanaf uw eigen server aangeboden en kennen daarom geen goedkeuringsproces. Hybrid apps moeten bij de eerste versie worden goedgekeurd en vervolgens alleen als er iets in het platformspecifieke gedeelte van de app wordt aangepast.
Ondersteuning voor notificaties
Met native en hybrid apps is het mogelijk om notificaties naar de gebruiker te sturen, zodra hij/zij de app heeft geïnstalleerd en toestemt met het ontvangen van uw berichten. Op dit moment kunt u met web apps (nog) geen notificaties aan gebruikers sturen.
Ook zonder internetverbinding te gebruiken
Nadat ze op het apparaat zijn geïnstalleerd, kunnen zowel native apps als web apps zonder internetverbinding worden gebruikt. Bij native apps zijn de mogelijkheden echter een stuk uitgebreider dan bij web apps. Hybrid apps maken doorgaans veel gebruik van functionaliteit in een generieke ‘weblaag’ en kennen daardoor meestal dezelfde beperkingen als web apps.
Doorzoekbaar voor zoekmachines
Native apps zijn niet doorzoekbaar door zoekmachines. Ze worden daarom ook wel eens data silos genoemd; de data in een native app is niet toegankelijk voor andere systemen. Web apps maken gebruik van gangbare webtechnologieën en zijn, mits op de juiste wijze geprogrammeerd, wel doorzoekbaar. Hybrid apps maken weliswaar gebruik van webtechnologieën, maar omdat het native gedeelte van de app verweven is met het web gedeelte, zijn ze vaak niet doorzoekbaar door zoekmachines.
Wat is de beste techniek?
Welke techniek voor het ontwikkelen van een mobiele app is nu uiteindelijk de beste? Dat hangt af van uw specifieke toepassing en uw doelgroep.
Als u met uw app een zo groot mogelijk publiek wilt bereiken en niet het budget heeft om voor alle mobiele platformen eigen versies te ontwikkelen, dan kiest u waarschijnlijk voor een web app. Als uw app veel gebruikt gaat worden op plaatsen waar geen internetverbinding beschikbaar is, dan kan een native app handiger zijn. Dat geldt ook wanneer u een complexe game wilt aanbieden. Wilt u profiteren van de voordelen van web apps maar wilt u eveneens apparaatspecifieke functies zoals de fotocamera kunnen gebruiken, dan kan een hybrid app de beste keuze zijn.
Natuurlijk kunt u er ook voor kiezen om niet voor één techniek te kiezen en verschillende type apps te ontwikkelen. Bijvoorbeeld een web app voor mensen die uw content op onregelmatige basis via zoekmachines vinden (handig voor nieuwswebsites!) en een native app voor de vaste gebruikers. Of een native app voor iPhone gebruikers en een hybride app voor Android, Blackberry en Windows Mobile.
Staat u aan het begin van uw mobiele avontuur en is er geen noodzaak om voor een native app te kiezen, dan raadt Forrester Research in het uitstekende rapport Building mobile apps? Start with web; move to hybrid aan om te starten met een web app en die desgewenst over tijd uit te bouwen naar een hybrid app. Zo kunt u tegen relatief lage kosten een mobiele app bouwen en daarbij eventuele interne kennis op het gebied van webtechnologie benutten. Platformspecifieke uitbreidingen kunt u vervolgens toevoegen door bovenop de web app één of meerdere hybrid apps te ontwikkelen.
In opdracht van Blink Educatie ontwikkelde Inspire een intelligente, adaptieve spellingsapp.
Wij publiceren regelmatig artikelen het ontwikkelen van apps en websites.