Build my web app
Compare

Four ways to put a website on a phone, compared honestly

Marketing pages for app builders tend to compare themselves with a made-up "others" column. This page compares the actual approaches, including the ones we don't sell.

The four approaches

Progressive web app (PWA). Your website plus a manifest and service worker. Installed from the browser. Updates when your site updates. What the PWA Builder produces.

WebView wrapper (APK/AAB). A small Android app whose only screen is a web view pointed at your site. Distributed as an APK you share directly or an AAB you upload to Google Play. What the Android app builder produces.

Trusted Web Activity (TWA). A Play-listed Android app that opens your PWA in Chrome's engine full-screen, with domain ownership proven by assetlinks.json. Google's recommended way to list a PWA. The PWA Builder's Android option produces this pairing.

Native or cross-platform rebuild. Kotlin/Swift, or Flutter/React Native. A separate codebase that talks to your backend. Not something this site produces — but the right answer for some products.

Capability matrix

PWAWebView APKTWANative / cross-platform
Works on iPhoneYes (add to home screen)No — Android onlyNo — Android onlyYes, with a separate iOS build
Google Play listingNo (unless wrapped as TWA)YesYesYes
Content updates need a store releaseNeverNever for content; yes for icon/splash/settingsNeverUsually yes
Offline behaviourFull control via service workerBasic (cached pages, offline screen)Same as the PWA underneathFull control
Push notificationsAndroid: yes. iOS 16.4+: yes when installedYes (FCM/OneSignal)Yes (web push)Yes
Uses Chrome's engine and cookiesYesNo — separate WebView, separate cookiesYes (shares Chrome login state)n/a
Bluetooth, NFC, background locationAndroid partly; iOS mostly noOnly what the wrapper addsSame as PWAYes
In-app purchasesYour own web checkoutPlay Billing for digital goods; own checkout for physicalPlay Billing via Digital Goods API for digitalPlatform billing
Store review riskNone"Minimum functionality" policy applies — add real app behaviourLower; Google endorses the patternNormal
Codebases to maintain11 + wrapper config1 + wrapper config2 or 3
Typical costFree hereAPK free; APK + AAB bundle US$5Free tooling + $25 Play accountWeeks to months of development

Where each one is the wrong choice

Don't pick a PWA if…

  • your users find apps by searching the Play Store and you have no other channel (add a TWA);
  • your product needs Bluetooth or background processing on iPhone;
  • you cannot host files at the root of your domain and cannot change your host.

Don't pick a WebView APK if…

  • iPhone users matter to you — it does nothing for them;
  • your site relies on the user being logged in to Chrome (a WebView has its own cookie jar);
  • you plan to submit to Google Play with nothing but the wrapper — Google's minimum functionality policy expects an app to offer more than a browser does. Push notifications, an offline mode and native navigation are the usual additions.

Don't pick a TWA if…

  • you can't serve a valid manifest and service worker (it is a PWA underneath — fix that first);
  • you need behaviour that differs between the app and the website; a TWA is the website.

Don't rebuild natively if…

  • the website already does everything the app needs to do. You would be paying for a second implementation of the same thing.

Our recommendation for most websites

Start with the PWA. It is the smallest change, it covers both platforms, and everything you learn about caching and icons carries over. If Play Store presence turns out to matter, add the TWA — the same files serve it. Reach for the WebView APK when you need an installable file to hand out directly, or when your host will not let you deploy root files. Rebuild natively only for capabilities the web genuinely lacks.

The longer version of this argument, with numbers →