When a business decides to "build an app", the first question should not be which feature to include, but what kind of app to build. There are three main routes: native apps, cross-platform apps and Progressive Web Apps. Each has different costs, limits and strengths, and the wrong choice can mean spending twice as much for something nobody downloads.
Native apps
A native app is written with each platform's own tools: Swift for iOS, Kotlin for Android. It is installed from the store and has full access to system features.
Strengths:
- maximum performance and smooth animations;
- immediate access to every API: advanced camera, sensors, Bluetooth, NFC, widgets, watch integration;
- look and behaviour consistent with the system, which users recognise.
Limits:
- two separate codebases, so higher development and maintenance time and cost;
- publication subject to store review and store rules;
- every update has to be downloaded by users.
Cross-platform apps
Frameworks such as Flutter or React Native let you write most of the code once and produce apps for both iOS and Android. The result is installed from the store just like a native app.
Strengths:
- a single team and a largely shared codebase;
- good performance for most business and service apps;
- access to phone features through plugins.
Limits:
- very specific or newly introduced features still require native code;
- dependence on how the framework and its plugins evolve;
- app size is often larger.
There are also older "hybrid" approaches that wrap a web page in a native container. They work for simple apps, but the user experience is often less smooth.
Progressive Web Apps (PWA)
A PWA is a website designed to behave like an app. It opens in the browser and can be added to the home screen, from which it launches full screen, without an address bar. Two components make this possible:
- the manifest, a file describing name, icons, colours and display mode;
- the service worker, a script that runs in the background and enables offline use, content caching and push notifications.
Strengths:
- one codebase for every device, computers included;
- no store review: updates reach everyone immediately;
- reachable from a link and indexable by search engines.
Limits:
- narrower access to phone features, with differences between browsers and systems;
- on iPhone some features, such as push notifications, are only available after adding the app to the home screen;
- less visibility for people who search for apps directly in the stores.
Quick comparison
| Aspect | Native | Cross-platform | PWA |
|---|---|---|---|
| development cost | high | medium | low |
| performance | maximum | good | good for content and forms |
| phone features | all | almost all | limited |
| distribution | store | store | link, and stores in some cases |
| updates | via store | via store | immediate |
| offline use | yes | yes | yes, if designed for it |
How to choose
In my work I start from a few concrete questions.
- Which phone features are really needed? If the app has to talk to a Bluetooth device, use NFC or work in the background for long periods, you need a native or cross-platform app. If it is about browsing content, booking or filling in forms, a PWA is often enough.
- How often will people use it? An app used every day deserves installation from the store. A service used twice a year is unlikely to be downloaded: a fast website or a PWA reaches more people.
- Who will maintain it? An app is not a project that ends at launch. Operating systems, stores and libraries change every year, and someone has to keep the code up to date.
- Is there already a good website? If so, turning it into a PWA can be a low-cost first step, measuring real use before investing in a store app.
Common mistakes
- Building a native app that replicates a website without any extra function: users do not install it.
- Underestimating maintenance costs after launch.
- Ignoring accessibility: text size, contrast and screen reader compatibility apply to all three approaches.
- Forgetting performance on cheap phones and slow connections, where many real users are.
In short
- Native apps offer the most performance and features, at a higher cost.
- Cross-platform frameworks share code between iOS and Android with good trade-offs.
- PWAs are installable websites, cheap to maintain and updatable instantly.
- The choice depends on the phone features required and the expected frequency of use.
- In every case, budget for maintenance, accessibility and performance on modest devices.