# Native app, cross-platform app or web app: which should you build?

> Native (Swift/Kotlin), cross-platform (React Native/Flutter) or a web app/PWA? Cost, speed, device features, app store review and when each one wins.

Source: https://morfalabs.com/en/blog/native-cross-platform-or-web-app

_Mobile apps · 5 min read · Published October 30, 2026_

Most people who ask us for a mobile app haven't decided whether they need one. They've decided they want something on the phone, and the first quote they get assumes a particular answer. It's worth choosing the approach before you choose the agency.

## Short answer

Build a web app or PWA when your users can live with a browser and you want the cheapest, fastest start. Build a cross-platform app (React Native or Flutter) when you need to be in the app stores on iPhone and Android with one team. Build fully native (Swift and Kotlin) when the app depends on the newest device features, heavy graphics or the best possible feel. Most business apps are fine with the first two.

## The three options side by side

A native app is written separately for each platform: Swift for iPhone, Kotlin for Android. A cross-platform app shares most of its code between the two, using a framework such as React Native or Flutter. A web app runs in the browser, and a PWA is a web app that can be added to the home screen and work offline to a degree.

All three can be good. They differ in what they cost to build, what the phone lets them do, and how much work they create after launch.

**Native, cross-platform and web app compared**

| | Native (Swift / Kotlin) | Cross-platform | Web app / PWA |
|---|---|---|---|
| Build cost | Highest, two codebases | Medium, mostly one codebase | Lowest, one codebase |
| Time to first version | Slowest | Medium | Fastest |
| Device features | Everything, first | Most, sometimes with native code | Limited, varies by phone |
| In the app stores | Yes | Yes | Not by default |
| Feel and speed | Best | Very good for most apps | Good for forms and content |
| Best for | Camera, AR, heavy graphics | Most business and customer apps | Internal tools, early tests |

## Device features and app store review

Check the features you need before anything else. Push notifications, the camera, location, Bluetooth, biometric login and background tasks all work in native apps. Cross-platform frameworks cover most of them, and for an odd one a developer can write a small piece of native code. A browser can do some of this, but what it can do differs between iPhone and Android and changes over time, so check the current state for your exact feature.

Store review is the other surprise. Native and cross-platform apps go through Apple's and Google's review before each release, and a rejection can cost days. Read the current guidelines early, especially if you take payments for digital goods, because the store's own payment rules may apply. A web app skips review entirely, which is a real advantage when you want to ship a fix the same afternoon.

## What happens after launch

Building is the smaller half of the bill. Apple and Google release new operating system versions every year, and your app has to keep working on them. Native means two codebases to update. Cross-platform means one, plus waiting for the framework to catch up when something big changes. A web app needs the least upkeep, because you update the server and everyone has the new version.

Whatever you pick, budget for this from the start. A reasonable habit is to plan a small amount of maintenance work every few months rather than a large repair every two years.

**A low-risk path for most businesses**

1. **Web first:** Build the core flow as a web app or PWA and let real users try it.
2. **Watch use:** See what people actually do, and what they ask the app to do that a browser can't.
3. **Go cross-platform:** Move to React Native or Flutter once the store presence or device features matter.
4. **Go native only if needed:** Write native code for the one feature that demands it, not the whole app.

## Which one fits your situation

A few honest rules of thumb. If the app is for your own staff, a web app is often enough and you avoid the stores altogether. If customers will look for you in the App Store, you need a real app. If your product is the phone experience itself, such as a camera tool or a game, native is worth the extra cost.

Going native for a simple business app is the most common overspend we see. Building a web app when the whole idea depends on background location is the most common mistake in the other direction.

**Pick by your situation**

- Staff-only tool, tight budget, need it quickly → Web app or PWA.
- Customers on iPhone and Android, standard features → Cross-platform with React Native or Flutter.
- You want to test an idea before spending much → Web app first, app later.
- AR, advanced camera, heavy graphics or the newest OS features → Native on the platform that matters most.
- You need push notifications and a store listing → Cross-platform, not a PWA.

## Questions people also ask

### Is Flutter or React Native better?

Both are solid, and the difference matters less than the team that builds with them. React Native suits teams that already know JavaScript or TypeScript and may share code with a web app. Flutter draws its own interface, which gives very consistent visuals across phones. Pick the one your developers know well.

### Can a PWA replace a mobile app?

Sometimes. For forms, content and internal tools it often does. If you need a store listing, reliable push notifications or deep device access, check what the current iPhone and Android browsers support before you commit.

### Can we start cross-platform and go native later?

Yes, and it's a common route. You can add native code for one feature, or rebuild one platform natively once the product is proven. Starting this way costs less than building two native apps up front for an idea you haven't tested.

## Related service

[Mobile Apps](https://morfalabs.com/en/services/mobile-apps.md): iOS and Android app development for growing companies: customer apps, field and staff apps, in Arabic and English, connected to your systems and maintained after launch.

## Not sure which kind of app you need? We'll tell you what we'd build and why.

- Email: [info@morfalabs.com](mailto:info@morfalabs.com)
- Web: https://morfalabs.com

## More articles

- [AI and blockchain by 2030](https://morfalabs.com/en/blog/ai-and-blockchain-future.md)
- [AI in business by 2030](https://morfalabs.com/en/blog/future-of-ai-in-business.md)
- [Are AI agents worth it?](https://morfalabs.com/en/blog/are-ai-agents-worth-it.md)
- [Stop your support AI making things up](https://morfalabs.com/en/blog/stop-ai-chatbot-hallucinations.md)
- [Zapier, n8n or a custom build?](https://morfalabs.com/en/blog/zapier-n8n-or-custom-automation.md)
- [Invoice entry without templates](https://morfalabs.com/en/blog/automate-invoice-entry-without-templates.md)
- [Choosing a software agency](https://morfalabs.com/en/blog/choose-a-software-agency.md)
- [Getting recommended by ChatGPT](https://morfalabs.com/en/blog/get-recommended-by-chatgpt.md)
- [Do you need a blockchain?](https://morfalabs.com/en/blog/does-your-business-need-a-blockchain.md)
- [Is company data safe in ChatGPT?](https://morfalabs.com/en/blog/is-company-data-safe-in-chatgpt.md)
- [New ERP or better integrations?](https://morfalabs.com/en/blog/new-erp-or-better-integrations.md)
- [Excel or a live dashboard?](https://morfalabs.com/en/blog/excel-reports-vs-live-dashboard.md)
- [Will this automation pay off?](https://morfalabs.com/en/blog/automation-roi-before-you-build.md)
- [Is your data ready for AI?](https://morfalabs.com/en/blog/is-your-data-ready-for-ai.md)
- [Agency or in-house team?](https://morfalabs.com/en/blog/agency-or-in-house-team.md)
- [Writing a software brief](https://morfalabs.com/en/blog/write-a-software-brief.md)
- [SEO vs GEO, side by side](https://morfalabs.com/en/blog/seo-vs-geo.md)

## Pages

- [Insights](https://morfalabs.com/en/blog.md)

## Other languages

- [العربية](https://morfalabs.com/ar/blog/native-cross-platform-or-web-app.md)
- [Français](https://morfalabs.com/fr/blog/native-cross-platform-or-web-app.md)
- [Español](https://morfalabs.com/es/blog/native-cross-platform-or-web-app.md)
- [Deutsch](https://morfalabs.com/de/blog/native-cross-platform-or-web-app.md)
