A client recently asked me why their new native app suddenly opened what looked like a web browser when they tried to make a payment. “Isn’t this supposed to be a native app?” they asked, slightly annoyed.
Great question. And it reveals something interesting about how modern apps actually work versus how we think they work.
The Basic Difference
Native apps are downloaded from app stores (Apple’s App Store or Google Play) and live on your phone. Think Instagram, Spotify, or your banking app. They’re built specifically for iOS or Android using the platform’s own code and tools.
Web apps run in your browser. You don’t download them—you just visit a URL. Think Gmail, Twitter in Safari, or your company’s internal dashboard. They’re built with web technologies (HTML, CSS, JavaScript) and work on any device with a browser.
Simple enough, right? But here’s where it gets messy: most “native” apps aren’t purely native anymore.
Why Native Apps Feel Better (Usually)
Native apps generally feel smoother and more responsive because they’re built specifically for your phone’s operating system. They can:
- Access your camera, GPS, contacts properly
- Work offline (or mostly offline)
- Feel faster because resources are stored locally
- Use gesture controls that feel natural to each platform
- Send proper push notifications – those alerts that pop up even when the app is closed
That last one is huge. Web apps have very limited notification abilities. They can’t reliably ping you when you’re not actively using them, which is why anything that needs to alert you (messaging apps, delivery tracking, news updates) tends to be native.
Why Web Apps Are Actually Everywhere
Despite native apps getting all the glory, web apps have some serious advantages:
- One codebase works everywhere – iOS, Android, laptops, tablets. Build it once.
- Updates are instant – No waiting for app store approval or users to download version 2.4.1
- No app store fees – Apple and Google take 15-30% of purchases made through apps
- Easier to maintain – Fix a bug once instead of submitting updates to two different app stores
This is why many businesses prefer web apps, especially for internal tools or when they want to move fast.
The Hybrid Reality: Why Your Native App Opens a Browser for Payments
Right, back to that payment screen that looks like a browser.
Many native apps use something called a webview—essentially an embedded browser window inside the app. From the user’s perspective, you never leave the app, but you’re actually looking at web content.
Why do this for payments specifically?
1. Avoiding App Store Fees If you process payments through Apple or Google’s native payment systems, they take their cut. But if payments happen in a webview (technically outside the app), companies can avoid these fees. Spotify, Netflix, and Amazon all do versions of this.
2. Security and Compliance Payment processors like Stripe or PayPal have robust, tested web-based checkout flows. Rather than rebuilding these natively and maintaining PCI compliance themselves, companies just embed the proven web version. It’s safer and easier.
3. Consistency Across Platforms Your checkout flow looks and works exactly the same on iOS, Android, and web. One payment system to maintain and test instead of three.
4. Faster Updates Need to add a new payment method or fix a checkout bug? Update the web version once and it’s immediately live in all apps. No waiting for app store approval.
The Downsides of Each Approach
Native apps:
- Expensive to build and maintain – You need separate developers who know Swift for iOS and Kotlin/Java for Android. That’s two completely different skill sets, two codebases to maintain, essentially building your app twice
- Bug fixes take forever to reach users – Find a critical bug? You fix it, submit to app stores, wait for approval (days to a week), then hope users actually update their app. Meanwhile the bug is still affecting everyone
- Every update requires app store approval, which can take days
- App stores can reject your updates for mysterious reasons
- Users have to actually download updates (and many don’t bother for ages)
Web apps:
- Can’t send proper push notifications
- Can’t access device features as easily (though this is improving with Progressive Web Apps)
- Don’t feel quite as smooth or responsive
- Won’t work properly offline
- Harder to discover—no app store to browse
What Most Modern Apps Actually Are
Here’s the secret: most apps you use daily are hybrids. Native shell with web content inside.
Your banking app? Probably native UI with webviews for certain screens. Facebook? Hybrid. Many e-commerce apps? Hybrid. Even Tesla’s car software uses webviews for parts of the interface.
It’s not cheating—it’s practical. Use native code where you need performance and device access. Use webviews where you need flexibility and faster updates. Best of both worlds.
The Real Cost Difference
When I explain native versus web to clients, the developer requirement alone makes their eyes widen.
With native, you’re not just paying for more development time—you’re paying for specialised developers. An iOS developer can’t just pivot to Android, and vice versa. So you either need to hire two developers (or two teams), or build for one platform first and accept that half your potential users can’t access your app yet.
Then when a bug appears? You’re fixing it twice. Testing it twice. Deploying it twice. Waiting for approval twice. And even after all that, some users will still be running the broken version because they haven’t updated yet.
With web apps, you fix it once and it’s live for everyone immediately. This is why bug fixes happen so much faster for web-based products.
Which Should You Choose?
If you’re building an app, here’s my honest take:
Go native if:
- Performance really matters (games, photo/video editing, AR)
- You need deep device integration
- Push notifications are essential to your app working
- You have the budget to build and maintain two separate codebases
- Your app needs to work extensively offline
Go web if:
- You need to launch quickly and cheaply
- Your app is mostly displaying and collecting information
- You want updates to be instant
- Cross-platform consistency matters more than native polish
- You don’t want to hire separate iOS and Android developers
Go hybrid if:
- You want a native app store presence but need flexibility
- Parts of your app need native features (like notifications), parts don’t
- You’re using payments or frequently updated content
- You’re realistic about trade-offs
The Bottom Line
Native and web aren’t enemies—they’re tools. It’s not a case of one being better than the other, both have their pros and cons. The correct approach is weighing up the options and picking the right approach for each project, rather than being dogmatic about being “pure native” or “pure web.”