Date archives "May 2015"

Wat is het verschil tussen een native app en een web app?

Een jaar na de eerste iPhone werd in 2008 de App Store (en daarmee ook het woord app) geïntroduceerd. Het begrip app store stond toen voor de online winkel met software voor smartphones van Apple. Ondertussen zijn er veel meer mobiele toestellen dan enkel de iPhone, zijn er meerdere app stores dan enkel die van Apple, is het woord app niet langer gereserveerd voor mobiele apps en is het verschil tussen een website en een app kleiner geworden.

Sta je op het punt om in de ontwikkeling van een app te investeren? Dan is het goed om het verschil tussen een native app en een web app te kennen.

Wat is een native app?

Een native app is specifiek voor een bepaald besturingssysteem ontwikkeld en daardoor enkel bruikbaar op toestellen met dat besturingssysteem. De meest bekende besturingssystemen voor mobiele toestellen zijn: iOS (Apple), Android (Google), Windows Phone (Microsoft) en BlackBerry (BlackBerry).

Een native app die bijvoorbeeld speciaal voor iOS ontwikkeld is, kan niet gebruikt worden op toestellen met een ander besturingssysteem. Vermits iOS vandaag nog verschilt met OS X (het besturingssysteem van Apple-computers) werkt een iOS app enkel op mobiele toestellen van Apple. Meer nog, een iOS app die ontwikkeld is voor iPhone werkt alleen echt goed op een iPhone. Om dezelfde app ook voor iPad of Apple Watch bruikbaar te maken, zijn er specifieke ingrepen nodig.

Hierdoor kan het ontwikkelen van een native app erg duur worden. Stel dat je een app wil lanceren die op alle smartphones werkt, dan is het nodig om er minstens 3 te ontwikkelen:  1 voor iOS, 1 voor Android en 1 voor Windows Phone. Wil je dat diezelfde native app ook werkt op tablets, computers en smartwatches? Dan moet er voor elk van deze combinaties bijkomend geïnvesteerd worden.

Om een app vervolgens bij het publiek bekend te maken is het nodig om die aan de verschillende app winkels door te geven: App Store (iOS en OS), Google Play (Android), Windows Phone Store (Windows phone), Windows Store (Windows), BlackBerry World (BlackBerry), Ovi Store (Nokia). Elke store heeft eigen voorwaarden en regels. Die regels zijn van technische, organisatorische, juridische en financiële aard. Concreet kan dit betekenen dat een native app voor iOS niet door de strenge procedures van Apple geraakt en je duur ontwikkelde app daardoor niet bij het bedoelde publiek geraakt.

Wat is een web app?

html5_vs_native

Met een web app wordt verwezen naar software die ontwikkeld is om in de browser te gebruiken. Dat wil zeggen dat een browser (Google Chrome, Firefox, Safari, Internet Explorer, …) en een internetverbinding volstaan om de app te gebruiken. Als de web app op een goede manier ontwikkeld is (responsive design, html5, cross-browser compatibility…) dan zal die onafhankelijk van het besturingsysteem en het type toestel werken op alle apparaten met een browser en internetverbinding. Het is niet nodig om verschillende apps te ontwikkelen, en je hoeft niemand om toestemming te vragen om de app gepubliceerd te krijgen.

Een web app is eigenlijk hetzelfde als een website. De term web app wordt vooral gebruikt voor complexere websites die functioneren zoals software (bv. berekeningen uitvoeren, dynamisch visualiseren van gegevens, …). De grens tussen een website en een web app is aan het vervagen. Je zou kunnen stellen dat elke website een web app is of elke web app een website.

We zijn van web apps beginnen spreken omdat we alsmaar meer zaken kunnen doen via de browser. Bepaalde software die vroeger op onze computer geïnstalleerd werd, wordt nu als een webbased online service (SaaS, of Software as a Service) aangeboden met de browser als client. Een project management tool zoals bv. Basecamp is volledig bruikbaar in de browser zonder dat er iets op je computer geïnstalleerd moet worden. In het geval van Basecamp kan je beslissen om toch een native app te installeren als je bijvoorbeeld met een notificatie op je smartphone verwittigd wil worden voor het afwerken van een taak.

Basecamp heeft er als bedrijf voor gekozen om een web app + native app te voorzien zodat de klant kan kiezen wat hij/zij wanneer het liefst gebruikt. Het platform geeft ook externe ontwikkelaars de mogelijkheid om te integreren met hun software. Dat wordt mogelijk gemaakt door extra investeringen in de ontwikkeling en documentatie van een interface voor developers (API). Grote bedrijven zoals Facebook, Twitter en Netflix passen dezelfde softwarestrategie toe waarbij het beste van de 2 werelden gecombineerd wordt. Vaak wordt hiervoor de techniek van een hybrid app toegepast (html5 verpakt in een native container).

Dat wil niet zeggen dat het voor iedereen en altijd nodig en haalbaar is om in te zetten op de combinatie van web en native ontwikkeling. Soms is het zelfs technisch niet mogelijk. Publiceren op Instagram kan bijvoorbeeld enkel met een native app omdat de software op zo’n manier geïntegreerd is met de camera van een mobiel toestel dat dit (nog?) niet lukt via een browser.

Vooraleer je de beslissing maakt om te investeren in een native app en/of web app is het nodig om goed te weten voor wie en voor wat de app bedoeld is en wat daarvoor nodig is. Daarna kan je een weloverwogen en financieel haalbare keuze maken.

Verschillen tussen een native app en een web app

Redenen om voor de ontwikkeling van een native app te kiezen

  • Integratiemogelijkheid met de GPS van een mobiel toestel
  • Integratiemogelijkheid met camera (foto, film, webcam)
  • Integratiemogelijkheid met microfoon (input en output)
  • Integratiemogelijkheid met notificaties
  • Integratie met andere native apps (bv. Instagram, adresboek, …)
  • Offline gebruik van de inhoud van een app (bv. e-boek lezen zonder internetverbinding, gamen zonder internetverbinding, …)
  • Beveiliging van de inhoud van een app (bv. e-boeken zijn moeilijker illegaal te downloaden als ze via een native app aangeboden worden)
  • Controle over hoe informatie en pagina’s getoond worden
  • Promotie via app-stores
  • Integratie met betaalmogelijkheden app-stores

Nadelen van een native app

  • Verschillende apps nodig per besturingssysteem en type toestel
  • Development expertise nodig per ontwikkelplatformen (vaak 3 verschillende developers of bedrijven)
  • Afhankelijkheid van snel evoluerende native software en hardware
  • Afhankelijkheid van de regels en mogelijkheden van een native platform: user interface, technologie, juridisch kader, financiële voorwaarden, verder bestaan van het platform
  • Hoge ontwikkel- en onderhoudskost
  • Gefragmenteerde en beperkte community van ontwikkelaars
  • Gesloten platformen, geen open source benadering
  • Een nieuwe versie van een app moet door elke gebruiker gedownload worden
  • De inhoud van een native app is niet goed zichtbaar in Google en andere zoekmachines

Redenen om voor het ontwikkelen van een web app te kiezen

  • 1 app werkt op alle toesten met een browser (onhankelijk van besturingssysteem en type toestel)
  • Grote community van ontwikkelaars
  • Open source benadering
  • Eindgebruikers hoeven niets te installeren om de app te kunnen gebruiken (mits browser en internetverbinding)
  • Iedereen gebruikt automatisch de laatste versie van de app
  • Minder dure ontwikkelkost in vergelijking met native app
  • Generieke development expertise (meer developers en bedrijven in vergelijking met ontwikkeling native apps)
  • Hogere zichtbaarheid van alle inhoud in Google en andere zoekmachines
  • Er is geen externe goedkeuring (van app-store eigenaars) nodig om de app te lanceren

Nadelen van een web app

  • Bij de ontwikkeling is kennis nodig van cross-browser compatibility (Google Chrome, Firefox, Safari, Internet Explorer, …) en recente webstandaarden (html5, responsive design, …)
  • Web apps die gebruik maken van recente technologie zijn niet altijd bruikbaar in oudere browser-versies
  • De app moet bruikbaar gemaakt worden op een enorme variatie aan schermgroottes (grote desktopscreens tot kleine smartphones), hiervoor is
  • Meer tijd nodig om een doorgedreven vereenvoudiging van te concipiëren voor eenzelfde ontwerp dat goed bruikbaar moet zijn op heel grote én heel kleine schermen
  • Minder controle over hoe eindgebruiker pagina’s en informatie te zien krijgt (bv. afhankelijkheid van schermresolutie)
  • Performantie kan een probleem zijn bij zeer complexe web applicaties zoals games
  • Geen promotie via app-stores

Deze opdeling is niet exact. Zo kan er met een browser ook al inhoud bewaard worden voor offline gebruik, kunnen er beperkte functies van hardware aangesproken worden, is het mogelijk om rekening te houden met de fysieke locatie van een gebruiker. Online betalen kan evengoed in een web app en ook notificaties al via de browser mogelijk. Maar als jouw app een combinatie van al deze specifieke functies op een betrouwbare of doorgedreven manier nodig heeft, dan is het vandaag nog aangewezen om voor een native app te kiezen.

Heb je een native app en/of een web app nodig?

Met een antwoord op deze vragen en bovenstaand overzicht kan je tot een beslissing komen:

  • Welk publiek wil je bereiken?
  • Wat wil je bereiken met de app?
  • Welke functies moet de app ondersteunen?
  • Hecht je belang aan systeem- en platform onafhankelijke oplossingen?
  • Op welke promotiekanalen wil je inzetten?
  • Wil je de investering via de app terugverdienen?
  • Wat is het budget dat aan de ontwikkeling besteed kan worden (rekening houdend met éénmalige en terugkerend kosten)?

De laatste vraag zal waarschijnlijk het best helpen om de knoop snel door te hakken. Twijfel je nog? Dan kan deze test misschien helpen.