The decision facing almost every business that wants a mobile presence in 2025: do we build a native app, a Progressive Web App, or something in between?
The honest answer is that most businesses choose native when PWA would serve them equally well — and pay two to five times more for the privilege. But there are real scenarios where native wins. Here's how to think through it properly.
What's the Actual Difference?
**Native apps** are built specifically for a platform using platform-specific tools — Swift/Objective-C for iOS, Kotlin/Java for Android. They're distributed through the App Store and Google Play, installed on the device, and have full access to device hardware. **Progressive Web Apps (PWAs)** are websites that have been enhanced with web technologies to behave like apps. They can be installed to the home screen, work offline (via Service Workers), send push notifications, and access many device APIs — all without going through an app store. **Cross-platform frameworks** (React Native, Flutter, Ionic) sit in between: they target both iOS and Android from a single codebase, using web-adjacent or compiled technologies. They access native APIs but require app store distribution.The Case for PWA
Cost
A native app typically requires two separate codebases (iOS and Android) or a cross-platform framework. Either way, the development cost is significantly higher than a web-based solution.
A well-built PWA shares its codebase with your existing website, or can be built as a standalone web application that works everywhere. Development cost is typically 40–70% lower than a comparable native build.
Maintenance
Every iOS and Android major version update potentially breaks something in a native app. You need to maintain app store listings, respond to review rejections, track platform deprecations, and ship updates through the review process (which can take days).
A PWA is just a website. Updates deploy instantly. No review process. No platform politics.
Discoverability
PWAs are indexed by search engines. Users can find your app by searching Google. Native apps live behind the App Store and Play Store discovery systems, which are dominated by established brands with large marketing budgets.
What PWAs Can Do Now
The capabilities gap between PWA and native has closed dramatically:
- Offline functionality — Service Workers cache resources and sync data when connectivity returns
- Push notifications — works on Android and (since iOS 16.4) on iPhone for installed PWAs
- Home screen installation — users can install to their home screen without visiting an app store
- Background sync — data submitted offline syncs automatically when connected
- Camera and microphone — via WebRTC and MediaDevices API
- Geolocation — full GPS access
- Bluetooth — Web Bluetooth API (Chrome-based browsers)
- File system access — Web File System Access API
- Payments — Web Payments API, Apple Pay, Google Pay
For a business app — compliance logging, ordering system, internal tool, customer portal — a PWA can handle virtually everything the native version could.
The Case for Native
When Native Genuinely Wins
**Complex hardware integration.** If your app needs persistent background GPS tracking, continuous Bluetooth peripheral management, or access to proprietary hardware SDKs — native is still necessary. Web APIs are capable but have limitations. **Games and graphics-intensive applications.** Metal (iOS) and Vulkan (Android) give native apps direct GPU access. WebGL and WebGPU are good but not equivalent for demanding applications. **AR/VR.** ARKit and ARCore are significantly more capable than WebXR for most real-world applications today. **Payments through App Store.** If your revenue model depends on in-app purchases, you need to be in the App Store and subject to Apple's 30% commission. There's no alternative. **When your audience expects it.** Some sectors — fitness, health monitoring, entertainment — have user bases that judge credibility by whether you're in the App Store. Fair or not, it's a real perception. **Performance at the absolute limit.** A native app will always have lower latency and smoother animations than an equivalent web app. For most business applications this difference is imperceptible. For a trading terminal or a real-time video editor, it matters.The Cross-Platform Middle Ground
React Native and Flutter deserve a mention. They give you native performance and native API access from a (mostly) shared codebase, at a cost somewhere between PWA and fully native.
**React Native** — JavaScript-based, strong ecosystem, good for teams with web development experience. Meta uses it for parts of Facebook and Instagram. **Flutter** — Dart-based, compiled to native, exceptional performance, stunning UI capabilities. Google's preferred cross-platform tool.Both are legitimate choices when you need native distribution (App Store, Google Play) and native API access, but want to avoid maintaining two completely separate codebases.
The Decision Framework
Ask these questions in order:
**1. Does it need to be in the App Store?**If yes → Native or cross-platform framework. If no → PWA is viable.
**2. Does it need hardware APIs unavailable to the web?**(Persistent background processes, complex Bluetooth, ARKit/ARCore, etc.) If yes → Native or cross-platform. If no → PWA remains viable.
**3. Is your team primarily web developers?**If yes → PWA (or React Native if native distribution is needed). If no → Evaluate Flutter or platform-native based on your team's skills.
**4. What's the budget?**Under £30,000 → PWA unless native is truly necessary. £30,000–£80,000 → Cross-platform framework. £80,000+ → Fully native is now financially justifiable if technically required.
**5. How often does the app need to update?**Frequent updates → PWA wins (instant deployment, no review process). Infrequent updates → Native viable.
Our Recommendation for Most Business Apps
For internal tools, customer portals, ordering systems, compliance platforms, and similar business applications — build a PWA first.
You'll spend less, deploy faster, reach users on every platform and browser, and avoid the ongoing overhead of app store maintenance. If you outgrow it, migrating to a native or cross-platform app with a solid web foundation is far easier than the reverse.
If your use case genuinely requires native capabilities — and many do — don't cut corners. Build it properly with the right tools for the platform.
The worst outcome is building a mediocre native app when a great PWA would have served your users better at half the cost.