Progressive Web App or native app?
A PWA installs from the browser, skips the app stores and needs a single codebase. Google’s published figures on Alibaba report a 76% increase in conversions. A native app is needed when the work uses rugged scanners, NFC or label printers, or runs for hours with no network.
Choosing between a Progressive Web App and a native app is not a technology choice: it is a choice about where and how people work. The answer changes depending on whether the app is used by a customer on a sofa or by a warehouse operator wearing gloves.
What a Progressive Web App is
A PWA is a web application that behaves like an installed one: it sits on the phone’s home screen, opens full screen without the browser bar, works without a network and can send notifications.
The technical definition and the current capabilities are on the Mozilla documentation, which is the source to check when somebody tells you PWAs cannot do X: the list changes every year.
How it works, in two lines
A component called a service worker sits between the application and the network: it keeps locally what is needed, answers when the connection is missing, and syncs when it returns. That is the piece that turns a website into something that survives a work shift.
The comparison, line by line
| Progressive Web App | Native app | |
|---|---|---|
| How people reach it | an address | a store, with approval |
| Installation | optional | required |
| Updates | immediate, you decide | when the user accepts |
| Codebases | one | one per platform |
| Offline | yes, for what you designed | yes |
| Camera, location, notifications | yes | yes |
| Rugged scanners, NFC, label printers | limited | yes |
| Store fees | none | annual |
| Rollout to company devices | immediate | via store or device management |
| Cost for the same features | lower | higher |
The case everybody cites, and what it really says
Results published by Google on Alibaba’s PWA report a 76% increase in conversions, a 14% rise in monthly active users on iOS and 30% growth on Android.
Those numbers are real, and they should be read for what they are: they concern a very large e-commerce site with an audience arriving from search. The transferable lesson is not “PWAs convert better”: it is that removing the store step removes a piece of the journey, and where that step is the obstacle, the gain is large.
In a shop-floor app the store is not an obstacle: you manage the devices. There the PWA gain is different: not having to update a hundred terminals one by one.
What it costs compared with native
For the same features, less. There is no second codebase, no two test cycles, no store paperwork or annual fees, and updating is a single release.
There is no fixed ratio, but on most business projects we see, the PWA is the choice that saves the most, and it is rarely proposed, because it is less sellable than an app.
What you need, technically
Three things, and they are few:
- An encrypted connection. Without HTTPS service workers do not start, and that is not negotiable.
- A manifest, a file declaring name, icon, colours and how the application opens once installed.
- A service worker, the component handling local data and offline behaviour.
The rest is design: deciding what has to work offline is the hard question, not writing the code that does it.
How it gets installed
On Android the browser offers installation by itself, and the icon lands among the other apps.
On iPhone the step is manual: open the site in Safari, tap share, choose Add to Home Screen. It is an extra step and it has to be explained: on a business app you do it once, at handover, along with everything else.
On managed company devices, installation can be pushed without asking anybody.
Four typical uses in a company
The shop-floor dashboard. A screen on the wall showing line status. Nobody wants to install an app on a wall display: an address is fine.
The customer or supplier portal. Orders, documents, delivery status. Users are external and change device constantly: asking for a store install is an obstacle that loses half of them.
Field data capture. Reports, checks, readings. It has to work where the network does not reach and sync when it returns: exactly the service worker’s job.
The internal tool used by a few dozen people. Publishing to a store an application thirty people will use is wasted work.
The limits, in full
This is the part missing from almost every article on the subject.
- Specific hardware. Rugged scanners, some NFC readers, tethered label printers: if the shift is made of that, you need native.
- Very long offline use. A few hours is manageable; a whole shift with no network and a lot of local data is a different project.
- iOS remains tighter than Android on some capabilities, and the gap closes slowly. If the company is all iPhone, check first.
- No store shopfront. For a consumer app that can be a distribution problem. For a business app it is an advantage.
Questions we get most often
Does a PWA work without a connection? Yes, for the part you decided should. It is not automatic: it is designed.
Does it send notifications? On Android for years; on iOS yes, for applications added to the home screen.
Can we turn our existing website into a PWA? Often yes, but rarely worth doing as it stands: a website and a working tool have different structures.
Is it less secure than a native app? No. It runs over an encrypted connection and local data is protected as in any application. The real difference is that a native app can be wiped remotely by a device management system, which is less immediate on a PWA.
How to tell which one you need
Three questions, and the answer follows:
- Do the people using it have a connection, even an intermittent one? If yes, a PWA holds.
- Is hardware beyond the camera involved? If yes, look at native.
- Who manages the devices? If they are yours, the store is an extra step you do not need.
The choice is made by looking at the shift, not at a list of technologies: which is why we spend half a day on site before any quote.
Tell us how the work is done, or read how we design for the shop floor.
