Native, React Native or PWA: which type of app should you choose?
We build 90 per cent of our apps in React Native and use native where hardware, firmware or special platform requirements call for it. Here is the framework we use when clients ask what suits them.
TL;DR
React Native with Expo is the default choice for most B2B apps: it delivers a native feel, shares code between iOS and Android, and halves both development and maintenance cost. Native (Swift, Kotlin) is used when the app must talk directly to hardware, firmware, a BankID app or special sensors. PWA is a good choice for internal distribution without App Store friction. Choose based on what the app needs to do, not what is fashionable.
The traditional choice has changed
A few years ago the question was simple: "Should we go native or hybrid?" Native was often seen as the "real" choice, and hybrid as a compromise for those who could not afford it.
That is no longer true.
Today React Native with Expo is mature enough to deliver the same feel, the same performance, and the same functionality as native for the vast majority of B2B and consumer apps. We build around 90 per cent of our apps in React Native and use native (Swift, Kotlin) deliberately where it is the right choice, rarely out of habit.
Here is how we think when clients ask us what suits them.
The three options today
React Native with Expo (default for most)
One codebase running on both iOS and Android. Native components under the hood, not a webview, so the feel is genuinely native. The Expo layer adds a modern developer workflow, automatic updates, and covers 95 per cent of platform functionality out of the box.
When it fits best:
- B2B apps for employees or professionals
- Consumer apps with standard functionality (login, lists, forms, notifications)
- Apps that need to launch on iOS and Android simultaneously
- MVPs that need to be validated quickly and potentially scaled
- Apps that need frequent updates (Expo OTA updates bypass the App Store queue)
When it does not fit:
- Heavy 3D graphics or game-engine processes
- Direct integration with firmware or specialist hardware
- Requirements for minimal start-up time or memory usage
Native: Swift on iOS, Kotlin on Android
Two codebases, one per platform. Maximum control over every platform feature, no extra abstraction layer, and direct access to everything the OS offers.
When it fits best:
- Apps that communicate with specialist hardware via Bluetooth, NFC or USB
- Apps that control firmware or IoT devices
- Medical devices or industrial process control where performance and predictability are critical
- BankID app integration (strong push notifications with signing)
- Game-engine-based apps or heavy animation processes
- Apps that require special platform features not yet well-supported in React Native (Apple Vision Pro, CarPlay, Android Auto)
When it does not fit:
- Standard B2B apps with ordinary screens and login
- Apps consisting primarily of lists, forms and reports
- Budgets that do not have room for both iOS and Android developers
PWA: an app running in the browser
A progressive web app is a website that behaves like an app: it can be installed on the home screen, works offline, sends push notifications, and runs in its own window without browser chrome.
When it fits best:
- Internal tools for employees where you want to avoid App Store friction
- Patient or citizen portals that must reach everyone without installation
- Apps that need rapid updates (deploy equals update, no App Store approval)
- Limited budgets where you must choose one option over two platforms
When it does not fit:
- Apps that require the BankID app for signing with push notification
- Apps that need advanced camera, NFC or background updates
- Apps that should be visible in the App Store or Google Play
Concrete example: what would we recommend?
A patient app for a healthcare organisation
Patients should be able to book appointments, see their own records, communicate securely with their clinician, and receive reminders.
Our recommendation: React Native with Expo, possibly combined with PWA for those who do not want to download an app.
Why: standard B2B functionality, no special hardware requirements, needs good performance on both iOS and Android. BankID redirect flow works well; BankID app integrates via universal links without requiring native code. Two codebases would have doubled maintenance without any gain.
An operational app for industrial maintenance staff
Maintenance technicians use the app to read sensors via Bluetooth, run checklists on equipment, and report faults.
Our recommendation: Native (Kotlin on Android, possibly Swift on iOS if necessary).
Why: Bluetooth Low Energy integration requires direct platform control. Reliable background execution and battery efficiency are critical. Users often have rugged Android devices, so Android alone is frequently sufficient.
An app for a municipal agency with a case-handling focus
Case handlers should be able to view cases, update status, photograph site visits, and sign documents.
Our recommendation: PWA or React Native, depending on whether case handlers have personal devices or dedicated work phones.
Why: PWA removes App Store friction, updates roll out centrally. If BankID signing is needed as a push notification, we move to React Native. Native provides no extra value here.
A consumer app for controlling smart home devices
Users should control lighting, heating, and sensors in the home, both from the app and when away.
Our recommendation: React Native with Expo, possibly with native modules for special protocol integrations.
Why: standard screens and user flow for most of it, but sometimes native modules are needed for special radio protocols (Zigbee, Z-Wave, Matter). React Native gives the flexibility to write native where needed, without building the entire app natively.
What are no longer valid arguments
Much of what people have heard about native versus hybrid is no longer accurate in 2026:
"Native delivers better performance." Only for specific cases. For standard B2B apps with lists, forms and login, the difference is not noticeable. React Native uses native UI components, not webview.
"Hybrid apps feel cheap." That applies to the old webview-based hybrids (Cordova, Ionic). React Native is not that. We have delivered React Native apps that users believe are native, and the evidence is on the App Store and Google Play.
"Native gives access to all features." React Native with Expo covers 95 per cent of platform functionality out of the box. For the last 5 per cent we can write native modules and attach them, without building the entire app natively.
"Hybrid saves 50 per cent of costs." We typically save 40 to 60 per cent in the development phase, yes, but we gain more in the long run through maintenance. One codebase is updated once and deployed to both platforms.
"PWAs are not real apps." PWAs can be installed, work offline, send push notifications (also on iOS since 2023), and run in their own window. For many use cases they are functionally equivalent to a native app, without App Store friction.
The most important question to ask
When you are deciding what kind of app to build, try answering these questions first:
- Does the app need to communicate directly with hardware, firmware or special sensors?
- Does the app need App Store visibility and branding through Apple or Google?
- Are frequent updates (once a month or more) important?
- Which platforms do you need to reach: iOS, Android, or both?
- What is the budget envelope and time horizon?
If the answer to question 1 is yes, go native. If the answer to 2 is yes and 3 is no, React Native is safe. If you need to reach everyone without App Store friction, consider PWA.
For 90 per cent of the apps we receive enquiries about, we end up recommending React Native with Expo. That is not a lazy default. It is the result of analysing what is right.
Concrete figures
As a rule of thumb:
- Native (both platforms): 1.5x to 2x the cost of React Native, longer time to launch, higher ongoing maintenance
- React Native with Expo: the baseline, one codebase, steady maintenance
- PWA: 60 to 80 per cent of React Native, no App Store publishing, no certificate management
An MVP in React Native for B2B typically costs 400,000 to 800,000 NOK depending on complexity. The same app natively would add 200 to 500k and four to eight extra weeks of development time. PWA would come in at 250 to 500k.
Our approach
We discuss this at the first meeting, based on what the app needs to do. We do not always recommend React Native, but we recommend it often, because it is right for most of what we are asked about.
When you are looking for a development partner, ask directly:
- Which specific platform requirements decide the choice between native and React Native?
- Have you built natively when it was needed, or always React Native regardless?
- How do you handle the transition from React Native to native modules when it becomes necessary?
A partner who says "we always go native" or "we always go hybrid" is either expensive or has not assessed your project properly. A partner who discusses trade-offs concretely is usually right.
Talk to us about the kind of app you are considering, or read more about our approach to app development and PWA.
Have a chat with us.
We reply personally, often the same day. Call or send an e-mail, and we will find out whether we are the right match for your project.

