Als we het hebben over ‘mobiele app’ wordt doorgaans een native app bedoeld. Er bestaan nog drie andere architecturen voor mobiele applicaties: web app, hybrid app en progressive web app (PWA). Wat is het verschil tussen deze soorten applicaties? En welke architectuur kun je het beste kiezen?
Native apps: geoptimaliseerd voor de platformen
Een native app is een applicatie die op maat is gemaakt voor een specifiek apparaat of platform, in het geval van een mobiele native app gaat het dus om Android- en iOS-apps. Zo’n app moet worden gedownload vanuit de Google Play Store of Apple App Store. De app is geschreven in een programmeertaal die naadloos past bij het platform (zoals Kotlin voor Android en Swift voor iOS).
Van alle soorten apps leveren native apps de beste user experience op, onder andere door de uitstekende performance en het afstemmen van de visuals op het platform. Native apps kunnen gebruikmaken van native functionaliteiten zoals camera, microfoon, GPS, push-notificaties, sensors en contacten.
Voordelen en nadelen van native apps
Native apps hebben een paar belangrijke voordelen:
- Beste performance en user experience
- Alle native functionaliteiten kunnen worden gebruikt
- Offline gebruik is mogelijk.
Daar tegenover staan twee nadelen:
- Native apps zijn relatief duur qua ontwikkeling en onderhoud aangezien het gaat om twee codebases (al kan dit probleem getackeld worden door het cross-platform framework Flutter)
- Gebruikers moeten de app downloaden, dit is een hogere drempel dan het bezoeken van een website.
Web app: toegankelijk via alle browsers
Een web app is een applicatie in websitevorm die je kunt gebruiken via een webbrowser zoals Google Chrome of Safari. Web apps hoeven niet te worden gedownload: ze worden geladen tijdens het gebruik. Een web app hoeft dus niet te worden geïnstalleerd, gebruikers kunnen wel een snelkoppeling toevoegen aan hun startscherm om snel bij de app te kunnen. Web apps hebben één codebase voor alle browsers en apparaten.
Het onderscheid tussen web apps en native apps is voor gebruikers soms minimaal. Web apps kunnen bijvoorbeeld native functionaliteiten hebben en de mogelijkheid bieden om (horizontaal) te swipen, waarbij je niet per se de knoppen en balken van de browser in beeld ziet. Goede voorbeelden van web apps zijn Google Docs, de online versies van de Microsoft Office-applicaties en productiviteitstools zoals Asana en Trello.
Voordelen en nadelen van web apps
De belangrijkste voordelen van web apps:
- Downloaden is niet noodzakelijk, dus is er geen opslagruimte nodig
- Makkelijk om te onderhouden (want één codebase)
- Gebouwd voor alle apparaten en platforms
- Content in een web app is vindbaar via zoekmachines.
Web apps hebben echter ook een paar nadelen:
- Internettoegang is noodzakelijk
- Lange laadtijden omdat alles moet worden gedownload
- Beperkte beschikbaarheid van native functionaliteiten.
Hybrid apps: het beste van twee werelden?
Traditioneel gezien zijn hybrid apps een mengeling tussen native en web, waarbij een web app of website in een native jasje wordt gestoken. Je downloadt de app weliswaar uit de Google Play Store of Apple App Store, maar in feite wordt er een website geladen in een native schil. Dat is interessant omdat je maar één codebase nodig hebt, die is geschreven in cross-platform talen zoals HTML5, CSS en JavaScript. Dat is tegelijk ook het grootste nadeel: de performance en user experience laten te wensen over omdat de app niet is ontworpen voor specifiek Android of iOS.
Er is momenteel een spectaculaire ontwikkeling gaande op het vlak van hybrid apps. Met het cross-platform framework Flutter kunnen developers met één codebase een app maken voor zowel Android als iOS. Het resultaat zit veel dichter in de buurt bij een native ontwikkelde app dan bij een webpagina of web app. Je kunt meer over Flutter lezen in onze whitepaper Flutter: één ontwikkelplatform voor iOS- en Android-apps.
Voordelen en nadelen van hybrid apps
De belangrijkste voordelen van hybrid apps zijn:
- Eén codebase betekent lagere ontwikkel- en onderhoudskosten
- Minder ontwikkeltijd dus snellere time to market
- Met Flutter kunnen grote user interface-veranderingen snel worden doorgevoerd
De nadelen van hybrid apps:
- Bij de traditionele hybrid apps zijn apps niet geoptimaliseerd voor het platform en laten zowel de performance als betrouwbaarheid te wensen over
- Bij Flutter is het moeilijker dan bij native ontwikkelde apps om hardwarezaken aan te spreken
- Niet altijd zijn er third-party software development kits (SDK’s) voor Flutter voorhanden, waardoor developers zelf een oplossing moeten ontwikkelen.
- Hybrid apps zijn niet voor alle soorten apps geschikt, denk vooral aan graphics-intensieve applicaties zoals games.
Progressive web apps: veel web, beetje native
Progressive web apps (PWA’s) zitten tussen web en native apps in. Het zijn websites die functioneren als geïnstalleerde, native apps op ondersteunde platforms, maar juist als websites in browsers. Als PWA’s in een browser draaien hebben ze een native look & feel en kunnen ze native functionaliteiten zoals push-notificaties bevatten. PWA’s kunnen offline worden gedraaid en zijn te downloaden in de app stores van bijvoorbeeld Google en Microsoft.
Voordelen en nadelen progressive web apps
De belangrijkste voordelen van progressive web apps zijn:
- Lage ontwikkelingskosten en snelle time to market
- Benaderen native apps op bepaalde vlakken, zoals qua look & feel
- (Beperkte) mogelijkheden om native functionaliteiten te gebruiken
- Content wordt geïndexeerd in zoekmachines.
De nadelen van progressive web apps zijn:
- Niet alle native functionaliteiten zijn (altijd) beschikbaar, denk aan bluetooth en NFC
- Apple houdt nogal wat tegen op het vlak van PWA’s, zo zijn veel functionaliteiten niet beschikbaar voor PWA’s binnen de Safari-browser.
Welke soort app moet ik kiezen?
Het zal inmiddels duidelijk zijn: de verschillende soorten mobiele app-architecturen hebben allemaal hun eigen kenmerken, pluspunten en nadelen. Welke soort app het geschiktst is voor jou? Dat hangt van af van onder meer je budget, de gewenste time to market, de native functionaliteiten die je wilt gebruiken, het al dan niet offline functioneren van de applicatie, de vereiste performance, de overweging of dat een app geïnstalleerd moet worden, het onderhoud van de app en de user interface.
Overweeg je om een native mobiele app of een hybride Flutter-app te laten maken? Neem dan vrijblijvend contact op met Pinch om te sparren over de mogelijkheden en beperkingen.
Native app laten maken? Flutter als belofte
Sinds onze eerste succesvolle Flutter-app Youbahn hebben wij dit cross-platform framework volledig omarmd. Ons dedicated Flutter-team is leading in Nederland en heeft al diverse Flutter-apps ontwikkeld. Daarnaast hebben wij een bijdrage geleverd aan de Flutter-app Food First van Albert Heijn. Een Flutter-app heeft bijna alle voordelen van een native app, maar kan worden ontwikkeld met de snelheid en tegen de relatief lage kosten van een hybride app.
OP ZOEK NAAR EEN NATIVE APP ONTWIKKELAAR?
Neem contact met ons als je meer wilt weten over het ontwikkelen van Flutter-apps.
Lees ook ons artikel Is Flutter de toekomst voor apps?