In het kort: de beslisregel is simpel. Heb je geen hardware nodig die de browser niet biedt en hoef je niet per se in de App Store te staan, kies dan een PWA: 40 tot 60 % goedkoper, direct live en vindbaar in Google. Heb je NFC, Bluetooth, achtergrondlocatie of diepe integratie met iOS nodig, kies dan cross-platform of native. Twijfel je, begin met een PWA en verpak hem in Capacitor zodra de store nodig is.
De 3 vormen uitgelegd
PWA (progressive web app). Een webapplicatie die zich gedraagt als een app: installeerbaar op het startscherm, werkt offline, stuurt pushmeldingen en opent zonder browserbalk. Technisch is het een website met een manifest en een service worker. Eén codebase voor iPhone, Android en desktop, geen app store nodig. Op Android ondersteunen Chrome en Samsung Internet vrijwel alles, op iPhone ondersteunt Safari sinds iOS 16.4 ook pushmeldingen, mits de app op het startscherm staat.
Cross-platform app. Eén codebase in Flutter, React Native of Capacitor die wordt gecompileerd naar een echte iOS- en Android-app. Je staat in beide stores, hebt via plugins toegang tot vrijwel alle hardware en deelt 90 tot 95 % van de code. Capacitor is de brug vanuit de PWA-wereld: je bestaande webapp wordt verpakt in een native schil met toegang tot camera, NFC en biometrie.
Native app. Twee aparte codebases: Swift of SwiftUI voor iOS, Kotlin of Jetpack Compose voor Android. Maximale prestaties, direct toegang tot elke nieuwe functie van Apple en Google (widgets, Live Activities, Apple Watch, CarPlay, ARKit) en het gevoel dat platformgebruikers verwachten. Ook de duurste vorm, want alles bestaat 2 keer.
De term 'webapp' zonder meer betekent meestal een webapplicatie die in de browser draait, zonder installatie of offline-functies: een klantportaal, een planningstool, een dashboard. Zodra je daar een manifest en service worker aan toevoegt, is het een PWA. Het onderscheid is dus klein en het pad van webapp naar PWA is de goedkoopste upgrade die er bestaat.
Vergelijkingstabel
| Criterium | PWA | Cross-platform (Flutter, React Native, Capacitor) | Native (Swift, Kotlin) |
|---|---|---|---|
| Kosten eerste versie | € 15.000 – 40.000 | € 30.000 – 75.000 | € 50.000 – 120.000 |
| Snelheid naar markt | 4–8 weken, direct live | 8–14 weken plus storereview | 12–20 weken plus storereview |
| Offline | Ja, via cache en lokale opslag | Ja, volledig | Ja, volledig |
| Pushmeldingen | Android volledig, iPhone na installatie op startscherm | Volledig | Volledig |
| Camera, locatie, biometrie | Ja, via browser-API's | Ja, via plugins | Ja |
| NFC, Bluetooth, achtergrondlocatie | Beperkt, op iPhone niet | Ja, via plugins | Ja |
| App stores | Optioneel: Google Play en Microsoft Store, niet de App Store | Ja, beide | Ja, beide |
| Vindbaarheid | Geïndexeerd door Google, deelbaar via URL | Alleen via de stores | Alleen via de stores |
| Updates | Direct, zonder review | Via de stores, 1–3 dagen review | Via de stores, 1–3 dagen review |
| Onderhoud per jaar | 10–15 % van de bouw | 15–20 % van de bouw | 20–25 % van de bouw, 2 platforms |
| Prestaties | Goed voor formulieren, content en bestellen | Bijna native | Maximaal |
De bedragen zijn richtprijzen excl. btw voor een eerste versie met accounts, 1 kernproces en een beheeromgeving. Wat de prijs precies bepaalt, lees je in wat een app kost en wat een webapplicatie kost.
Wanneer een PWA 40 tot 60 % goedkoper is
Het prijsverschil zit niet in het uurtarief maar in wat je niet hoeft te doen. Geen 2 codebases, geen storeproces, geen aparte releases per platform en geen 'werkt wel op Android, niet op iPhone'-tickets. Een PWA is de juiste keuze als je app aan deze voorwaarden voldoet:
- Het kernproces is bestellen, boeken, invullen, lezen of bekijken. Menukaarten, bestellingen, reserveringen, formulieren, lesmateriaal, portalen, dashboards.
- De hardware die je nodig hebt zit in de browser. Camera (QR-scan, foto), locatie op de voorgrond, biometrie via passkeys, betalen via Apple Pay en Google Pay in de browser, delen, bestanden.
- Bezoekers moeten je zonder drempel kunnen bereiken. Een QR-code op tafel, een link in een mail, een zoekresultaat in Google. Installeren is een optie, geen voorwaarde.
- Je wilt vaak en snel updaten. Elke wijziging staat direct bij alle gebruikers, zonder storereview.
- Je wilt geen 15 tot 30 % commissie op digitale verkopen in de stores. Let op: op fysieke producten en diensten, zoals een maaltijd of een cursus op locatie, rekent Apple geen commissie, ook niet in een native app.
Voor onderwijs en e-learning is de PWA vaak de logische vorm: cursisten openen lesmateriaal op laptop en telefoon, werken offline in de trein en krijgen een melding als een nieuwe module klaarstaat. Geen storeaccount, geen installatie-instructies, geen beheer van 2 apps.
Wanneer native onvermijdelijk is
Sommige functies kan een browser niet leveren, en op iPhone is die lijst langer dan op Android. Native of cross-platform is nodig als je app afhankelijk is van:
- NFC of Bluetooth. Toegangspassen, tags scannen, koppelen met sensoren of kassa's.
- Achtergrondprocessen. Locatie bijhouden terwijl de app dicht is (chauffeurs, bezorging), synchroniseren op de achtergrond, geofencing.
- Diepe platformintegratie. Widgets, Live Activities op het vergrendelscherm, Apple Watch, CarPlay, Android Auto, HealthKit, Siri en Google Assistant.
- Zware grafische prestaties. Games, AR, video bewerken, realtime tekenen.
- De App Store als kanaal. Als klanten je in de App Store verwachten of als een aanbesteding het eist, moet je erin staan. Apple weigert apps die alleen een website verpakken (richtlijn 4.2), dus een schil om een PWA heen moet aantoonbaar native waarde toevoegen.
- Beheerde apparaten. Organisaties die apps uitrollen via MDM (Intune, Jamf) verwachten een storepakket.
Ook goed om te weten: Safari bewaart de lokale data van een PWA die op het startscherm staat, maar in de gewone browser kan opslag na 7 dagen zonder gebruik worden opgeruimd. Voor apps waarin offline data heilig is, weegt dat mee.
Cross-platform als middenweg
Voor de meeste bedrijfsapps die de store in moeten, is cross-platform de rationele keuze. Flutter en React Native leveren apps die door gebruikers niet van native te onderscheiden zijn, met 1 team en 1 codebase. Capacitor is de slimste route als je al een webapp of PWA hebt: dezelfde code, verpakt met native plugins, in 2 tot 4 weken in beide stores.
Wat je inlevert ten opzichte van native: soms een paar weken vertraging voordat een gloednieuwe iOS-functie in een plugin beschikbaar is, en bij extreme grafische eisen een fractie prestaties. Wat je wint: 40 tot 50 % lagere bouwkosten, 1 releasecyclus en 1 partij die alles kan onderhouden. Bij RABZI bouwen we mobiele apps standaard cross-platform en gaan we pas native als een functie het afdwingt.
Voorbeeld: een bestel-app voor horeca
Een restaurantgroep met 3 vestigingen wil gasten aan tafel laten bestellen en betalen, een loyaliteitsprogramma opzetten en bezorgorders zonder commissie van platforms ontvangen. De wensen: QR-code op tafel, menukaart met foto's, bestellen en betalen met iDEAL, Apple Pay en creditcard, een melding als de bestelling klaarstaat, spaarpunten en een beheeromgeving voor de keuken.
Alles op die lijst kan in een PWA. De QR-code opent de app zonder installatie, de gast bestelt binnen 30 seconden, betaalt via Mollie in de browser en krijgt een pushmelding op Android of, na installatie op het startscherm, op iPhone. Terugkerende gasten installeren de app voor het spaarprogramma. De keuken werkt op een tablet met dezelfde webapp in kioskmodus.
Native zou hier € 60.000 tot € 90.000 kosten voor 2 platforms en een storeproces waar de gast in de zaak niets aan heeft. Als PWA kost dezelfde app € 20.000 tot € 30.000, staat hij in 6 tot 8 weken live en kan hij later voor € 5.000 tot € 8.000 met Capacitor alsnog in de stores. Meer over deze aanpak vind je bij horeca.
RABZI-indicatie: een PWA of webapp bouwen we vanuit webapplicaties en platforms vanaf € 12.500 excl. btw (portaal of tool met 1 kernproces). Een cross-platform app laten ontwikkelen kost vanaf € 15.000 (MVP met 1 tot 2 functies), vanaf € 35.000 voor Growth met accounts, push, betalingen en beheer, en vanaf € 75.000 voor Flagship met native modules en volledig offline gebruik. In elk geval 1 codebase, vaste prijs en alles op jouw naam.
Veelgestelde vragen
Werkt een PWA goed op iPhone? Ja, met 2 kanttekeningen. Pushmeldingen werken sinds iOS 16.4 alleen als de gebruiker de app op het startscherm heeft gezet, en Safari biedt geen toegang tot NFC, Bluetooth en achtergrondlocatie. Voor bestellen, boeken, lezen en formulieren merkt een iPhone-gebruiker geen verschil met een native app.
Kan een PWA in de App Store of Google Play? In Google Play en de Microsoft Store kun je een PWA vrijwel rechtstreeks publiceren. De App Store van Apple accepteert geen apps die alleen een website verpakken. Wil je erin staan, dan verpak je de PWA met Capacitor en voeg je native functies toe die de app aantoonbaar meer maken dan de website.
Wat kost een PWA vergeleken met een native app? Een PWA kost voor een eerste versie € 15.000 tot € 40.000, een cross-platform app € 30.000 tot € 75.000 en een native app voor iOS en Android € 50.000 tot € 120.000. Het verschil zit in het aantal codebases, het storeproces en het onderhoud: bij native betaal je alles 2 keer.
Kan ik later van PWA naar native overstappen? Ja, en dat is precies waarom we vaak met een PWA beginnen. Met Capacitor verpak je de bestaande code in een native schil en voeg je plugins toe voor NFC, Bluetooth of achtergrondprocessen. Alleen bij extreme prestatie-eisen is een volledige herbouw in Swift en Kotlin nodig.
Conclusie
De vraag is niet welke vorm het beste is, maar welke vorm past bij wat je app moet doen. Bestellen, boeken, invullen en lezen: PWA, snel en goedkoop. NFC, Bluetooth, achtergrondprocessen of een storeverplichting: cross-platform, met native als uiterste. En wie twijfelt, begint met een PWA en houdt de weg naar de stores open. Wil je weten welke vorm bij jouw app past? Plan een kennismaking, je krijgt binnen 2 werkdagen een advies met vorm, prijs en planning.