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

How to choose between a wrapped web app and React Native
QuestionPoints to wrapped web appPoints to React Native
Do you already have a good mobile web app?Yes, and it works well on a phoneNo, you’d be building screens from nothing anyway
How often is the app opened?Occasional tasks: check, upload, updateDaily, or many times a day
What does it do with the device?Camera, share or notifications through pluginsBackground work, Bluetooth, heavy media, offline-first
How much does feel matter?Users came for the taskUsers compare it with the best apps they own
Is it animated or gesture-heavy?Mostly forms, lists and mediaLong lists, drag, maps, rich transitions
Who is on your team?Web developers who will also maintain itReact developers, or people willing to learn native tooling
How often will it change?Often, and you want web and app to matchOn a release rhythm, with store updates
How soon do you need it?Fixed date, small scopeYou can invest more for a better long-term product
Is the app your main revenue?It supports a business that runs elsewhereIt 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.

Technical differences between a wrapped web app and a React Native app
TopicWrapped web appReact Native
InterfaceHTML and CSS in a web viewNative components
Reuse from a web appOften most screensBusiness logic and API code; screens are mostly rewritten
Native featuresPlugins, such as Capacitor’s API for Swift, Java and the webLibraries and native modules
Look and feelYours to build; can feel like a website if you don’tCloser to the platform by default
UpdatingMuch of the app can change with the web deployment, within store rulesStore release, or an over-the-air update service within store rules
TestingMostly web tools, plus real devicesNative build tools and real devices
Store riskThin wrappers risk Apple’s guideline 4.2Ordinary review
Staying currentWrapper, plugins and web stackFrequent 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.

Device and platform features to check for a wrapped web app or a React Native app
FeatureOn a wrapped web appOn React NativeTest this
Camera and photo uploadUsually fine through a plugin or the browserFine through librariesLarge videos, on a slow network, from the gallery
Push notificationsThrough a plugin, with server workThrough a library, with server workTap a notification to open the right screen, from a closed app
Offline usePossible but needs deliberate designPossible, and local databases are commonLose signal mid-task, then reconnect
Background tasksLimitedBetter, within what iOS and Android allowWhether the task runs with the phone locked
Bluetooth and hardwareDepends on plugin qualityDepends on library qualityA real device with your real hardware
Long listsNeeds care in a web viewVirtualised list componentsA thousand rows on a mid-range Android phone
Maps and gesturesWorkable; check the feelNative map librariesDragging and pinching on an older phone
Biometric loginThrough a pluginThrough a libraryFallback when the sensor fails
Deep linksSupported, with setupSupported, with setupA link from an email, when logged out
PaymentsWeb checkout or plugin; check store rulesNative SDKs; check store rulesA 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.

Ongoing work for a wrapped web app and a React Native app
WorkWrapped web appReact Native
A small change to a screenWeb deployment, for most changesApp release or over-the-air update, where store rules allow it
A new operating system versionTest the shell and plugins, then fix what brokeTest, and possibly update libraries and the framework
A framework upgradeWrapper major versions, and your web stack separatelyA release about every two months; only 3 minor series maintained
HiringAny competent web developer can work on most of itReact experience helps, and native build problems need extra skills
A bug on one phoneA browser-engine quirk; hard to see at firstA native or library issue; needs device logs
AnalyticsWeb analytics, plus app events through a pluginA 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

  1. Write down the five things users must do on a phone, in the order they matter.
  2. 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.
  3. List every device feature you need. Check that a maintained plugin or library exists for each one on the route you are leaning towards.
  4. 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.
  5. 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

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).