Mobile apps
Wrapped web app or React Native? We've shipped both
Wrap your web app if the phone is mainly another screen for what the web already does. Choose React Native if the app itself is the product, runs all day in people's hands or relies on the device. Most other differences follow from that.
By itmarkerz Technologies. Updated 30 October 2026.
The two apps behind this guide
For a Belgian fashion brand, we built the backend, scan pages and owner app for a t-shirt with a unique QR code. The owner app is a web application wrapped as native builds, published to the App Store and Google Play, and this kept a three-month delivery realistic. For a UK automotive software company, we built a garage-booking SaaS with a Laravel API, a Next.js web application and React Native apps for iOS and Android, over about a year.
Don’t read those durations as a comparison. The second project was a complete multi-tenant product including its API and web app, so the difference in time says more about scope than about technology. Most of our work is delivered under NDA, so many projects cannot be named. We can’t share the numbers behind either app, so what follows is reasoning that you can test against your own project.
The decision table
| Question | Points to wrapped web app | Points to React Native |
|---|---|---|
| Do you already have a good mobile web app? | Yes, and it works well on a phone | No, you’d be building screens from nothing anyway |
| How often is the app opened? | Occasional tasks: check, upload, update | Daily, or many times a day |
| What does it do with the device? | Camera, share or notifications through plugins | Background work, Bluetooth, heavy media, offline-first |
| How much does feel matter? | Users came for the task | Users compare it with the best apps they own |
| Is it animated or gesture-heavy? | Mostly forms, lists and media | Long lists, drag, maps, rich transitions |
| Who is on your team? | Web developers who will also maintain it | React developers, or people willing to learn native tooling |
| How often will it change? | Often, and you want web and app to match | On a release rhythm, with store updates |
| How soon do you need it? | Fixed date, small scope | You can invest more for a better long-term product |
| Is the app your main revenue? | It supports a business that runs elsewhere | It is what customers pay for |
The wearable project sits on the left of this table: owners log in occasionally, upload media, write a message, preview and publish, while the people scanning a code use a fast web page with no app at all. The garage product sits on the right: car owners pick a slot, confirm, pay, receive their invoice and get reminded, so the phone is where the product lives.
What each route really gives you
A wrapped app runs your web application inside a native shell, with plugins reaching the device. React Native renders real native interface components from JavaScript or TypeScript. Both end up in the stores, and both can share code with a web team. They differ in what they share.
| Topic | Wrapped web app | React Native |
|---|---|---|
| Interface | HTML and CSS in a web view | Native components |
| Reuse from a web app | Often most screens | Business logic and API code; screens are mostly rewritten |
| Native features | Plugins, such as Capacitor’s API for Swift, Java and the web | Libraries and native modules |
| Look and feel | Yours to build; can feel like a website if you don’t | Closer to the platform by default |
| Updating | Much of the app can change with the web deployment, within store rules | Store release, or an over-the-air update service within store rules |
| Testing | Mostly web tools, plus real devices | Native build tools and real devices |
| Store risk | Thin wrappers risk Apple’s guideline 4.2 | Ordinary review |
| Staying current | Wrapper, plugins and web stack | Frequent framework releases; only the latest 3 minor series are maintained |
“We can reuse everything” is the claim to test. Reuse is real only if your web app already handles small screens, slow networks, the keyboard and a back button well. Otherwise, you’ve got a wrapped version of those problems, and they will now appear in one-star reviews.
Feature by feature: what to check
Generic comparisons won’t tell you much, because the answer depends on what your app needs from the device. Go through this list with your own requirements, and mark each line “don’t need it”, “nice to have” or “can’t launch without it”. Only the last group should drive the decision.
| Feature | On a wrapped web app | On React Native | Test this |
|---|---|---|---|
| Camera and photo upload | Usually fine through a plugin or the browser | Fine through libraries | Large videos, on a slow network, from the gallery |
| Push notifications | Through a plugin, with server work | Through a library, with server work | Tap a notification to open the right screen, from a closed app |
| Offline use | Possible but needs deliberate design | Possible, and local databases are common | Lose signal mid-task, then reconnect |
| Background tasks | Limited | Better, within what iOS and Android allow | Whether the task runs with the phone locked |
| Bluetooth and hardware | Depends on plugin quality | Depends on library quality | A real device with your real hardware |
| Long lists | Needs care in a web view | Virtualised list components | A thousand rows on a mid-range Android phone |
| Maps and gestures | Workable; check the feel | Native map libraries | Dragging and pinching on an older phone |
| Biometric login | Through a plugin | Through a library | Fallback when the sensor fails |
| Deep links | Supported, with setup | Supported, with setup | A link from an email, when logged out |
| Payments | Web checkout or plugin; check store rules | Native SDKs; check store rules | A failed payment, then a retry |
Why each project went the way it did
The wearable app had a fixed idea and a three-month target. Its real complexity was on the server: print-ready batches of non-guessable codes, binding each code to a customer, a media pipeline with transcoding and signed URLs, and a scan page that had to be quick on any phone. The owner’s screens were simple by comparison, so building them as a web app and wrapping them put the effort where the product needed it.
The garage product sits differently. A car owner’s whole relationship with the service happens on a phone, and garages subscribe to it as a product. Appointment scheduling, billing, invoicing and reminders had to work for many garages, and UK conventions such as MOT, registration and VAT invoicing ran through it all. With a separate Next.js application for the web, sharing screens with mobile wasn’t the priority, while native apps could be built for how people use a phone.
Signs you picked the wrong route
Neither choice is permanent, so watch for these rather than defending the original decision.
- In a wrapped app: reviews complain that it feels slow or like a website, you keep writing custom native plugins, or a reviewer keeps questioning its purpose.
- In a React Native app: nearly every screen is a form that your website already has, upgrades take more time than features, or nobody on the team wants to touch the native tooling.
- In either: usage is so low that you have to ask whether people needed an app at all. Check that before paying for a rebuild.
Costs people forget, on either route
- Store accounts and releases. Someone must own the Apple and Google accounts, certificates, privacy declarations and release notes. Set this up in the client’s name early.
- Review time. A rejection near a launch date is expensive, so submit well ahead. Apple can also ask you to change something you can’t fix in a day.
- Operating system updates. iOS and Android change every year, and either route needs some attention afterwards.
- Payments. Apple’s guideline 3.1.1 requires in-app purchase to unlock digital features, whichever technology you use. Selling physical goods or real-world services is treated differently, so read the rules that apply to your case.
- Notifications. These need server work as well as app work, including delivery tracking and opt-outs.
- Support for old versions. Users don’t all update, so your API has to keep older app versions working for a while.
The third option: no app
On the wearable project, the people scanning a code never install anything, and that was a stated requirement. Scanning had to work on any phone. Before you commit to either route, ask whether an app needs to exist. If people only use it once, or arrive from a link, a fast mobile web page may serve them better. An app makes sense when people come back, when it needs the device, or when being on the home screen is the point. Asking people to install something is a real barrier, so it should be worth their trouble. A mobile page is also cheaper to change, works straight from a search result, and doesn’t need anyone’s approval to update.
What it’s like to own each one
The launch is the short part of an app’s life. Before you decide, picture a normal year after launch, and who is doing what.
| Work | Wrapped web app | React Native |
|---|---|---|
| A small change to a screen | Web deployment, for most changes | App release or over-the-air update, where store rules allow it |
| A new operating system version | Test the shell and plugins, then fix what broke | Test, and possibly update libraries and the framework |
| A framework upgrade | Wrapper major versions, and your web stack separately | A release about every two months; only 3 minor series maintained |
| Hiring | Any competent web developer can work on most of it | React experience helps, and native build problems need extra skills |
| A bug on one phone | A browser-engine quirk; hard to see at first | A native or library issue; needs device logs |
| Analytics | Web analytics, plus app events through a plugin | A mobile analytics SDK |
Be honest about your team. An app built on React Native by a contractor and then handed to web developers with no native experience can age badly: one failed Xcode build can block a release for days. A wrapped app in the same hands stays close to work they already know. The reverse is also true. A strong mobile team will feel limited by a web view, and will spend their time fighting it.
What to ask anyone quoting you
- Which of our screens would be reused, and which rebuilt? Ask them to go through the list one screen at a time.
- Which device features need a plugin or library, and who maintains each one?
- Whose name will be on the Apple and Google developer accounts?
- What happens to the app when a new iOS version comes out? Is that included?
- Have you shipped this route to both stores? What did the reviewers ask about?
- If we want to change route in two years, what carries over?
How to decide in a week
- Write down the five things users must do on a phone, in the order they matter.
- Try the top two on your current mobile site, on a mid-range phone with a poor connection. If they feel fine, wrapping is a real option.
- List every device feature you need. Check that a maintained plugin or library exists for each one on the route you are leaning towards.
- Prototype the hardest screen. Do it in a wrapped shell, or in React Native if that is your leaning. Your hardest screen decides this more than your average one does.
- Check who will own it in two years. A team of web developers will keep a wrapped app healthy more easily. A native team will be frustrated by one.
Keep the API independent, whichever you choose
On both of these projects, a Laravel backend sits behind the mobile app. That decision does more for your future options than the choice between routes does. If business rules live in the API, you can replace the wrapped screens with React Native later and leave pricing, permissions and data untouched. We wrote up how in one Laravel API for web and mobile. If you are heading for a wrapped build, read getting a wrapped app through store review first.
One of each
Backend, scan pages and iOS/Android apps behind a t-shirt with a unique QR code its owner controls — text, photo or video, changeable any time, scannable with no app. Laravel. Delivered to both app stores in three months for a Belgian fashion brand.
- Sector
- Fashion & retail
- Region
- Belgium
- Stack
- Laravel, iOS, Android
- Engagement
- Product build, three months
UK garage-booking SaaS: car owners book, pay, receive invoices and reminders from their phone; garages manage services and slots. Laravel API, Next.js web app, React Native iOS/Android apps. About one year.
- Sector
- Automotive
- Region
- UK
- Stack
- Laravel, Next.js, React Native
- Engagement
- Product build, about one year
Questions
Which wrapper should we use: Capacitor, or something else?
This guide is about the choice of approach, and we aren't naming a wrapper as our recommendation for your project. Capacitor is a well-documented current option, at version 8 at the time of writing, with a plugin API for native features. Check which plugins you need and how well they are maintained, then decide.
Will Apple reject a wrapped web app?
Apple's guideline 4.2 asks for features, content and UI that lift an app above a repackaged website. A wrapper isn't banned as such, but a thin copy of your site is at risk. Our note on store review covers what to do about it.
How much does each approach cost?
We quote per project, because the feature list drives cost more than the technology. Our developers start from $20/h, invoiced in USD, GBP, EUR or INR. A wrapped app can reuse much of an existing web app, which is often the biggest saving, but only if that web app already works well on a phone.
Can we move from a wrapped app to React Native later?
Yes. Your API and business rules carry over; the screens get rebuilt. Keeping your logic behind an API from the start makes this much cheaper. Store listings can stay the same if you ship under the same app identifiers, though you should plan the move carefully for existing users.
More on mobile apps
- One Laravel API, web and mobile: how we structure itOne API for a Next.js site and React Native apps, without two sets of rules.
- Getting a wrapped app through store reviewWhat Apple and Google publish about repackaged websites, and what to build.
- Expo or bare React Native?What React Native's own docs recommend, and when you'd still manage native folders.
- Upgrading an older React Native appThe support window, the New Architecture and an order of work.
Not sure which route suits your app?
Tell us what users do on their phone and whether a web version exists. We will tell you which we would choose, and what it would mean for your timeline.
We reply within one business day (IST).