The Gap Has Closed (Mostly)
Three years ago, the PWA vs native comparison was easy: native was clearly better for anything serious. Push notifications were unreliable on iOS. Offline sync was finicky. The install experience was awkward.
The gap has closed significantly. iOS finally treats PWA push notifications as first-class citizens. Service worker reliability has improved. The install prompt, while still not App Store quality, is workable.
But "the gap closed" is not the same as "the gap closed for your use case." Here is the decision framework.
Choose a PWA When
Your core users are on desktop or web already: If 70% of your users primarily interact via desktop browser, a PWA gives you mobile capability without splitting your development effort.
Frictionless access matters: No app store download. No install prompt friction. A URL is the entire distribution mechanism. For B2B SaaS where users are given a link to access a tool, this is a significant advantage.
Your feature set does not require native capabilities: No ARKit. No HealthKit. No Bluetooth. No widgets. No CarPlay. If you can build everything you need with web APIs, the PWA is simpler and cheaper.
You want to ship and iterate fast: One codebase. One deployment. No app store review timelines. A feature ships when you deploy it, not 72 hours after review.
Choose Native When
Deep platform integration is the product: Your app IS the camera. Your app IS the health tracker. Your app IS the CarPlay interface. These require native.
Offline-first with complex sync is required: Native apps have more mature and reliable background sync capabilities than service workers for complex data models.
Your target users are mobile-first consumers: Consumer apps where the App Store is the primary discovery channel and the install experience affects conversion need native.
Animation and gesture-heavy UI: Native platform UI rendering is smoother for complex animations than CSS-based web rendering, even with hardware acceleration.
The Hybrid Reality
Many products ship a PWA for the core experience and native apps for power users or specific platform features. Your web app loads in a browser. Power users who want push notifications and offline access install the PWA. Users who need native features get a thin native wrapper over the same web application.
This is not a cop-out answer — it is often the right architecture.