NNORD · nowTransfer receivedAlex M. sent you €120.00
€30k → €60k for cross-platform
On the stores in under 12 weeks
iPhone and Android, one codebase
Free, capped quote
Code assigned in writing
The essentials
Native, hybrid or PWA: the difference in 30 seconds.
A mobile app can be built four ways: native, cross-platform, hybrid or PWA. They differ in how many codebases there are to write and maintain, in access to the phone’s hardware, and in whether they go through the app stores.
Native app.
One Swift codebase for iPhone, one Kotlin codebase for Android. Two codebases to write, two to maintain. In exchange: the best performance and access to all of the phone’s hardware.
Cross-platform (Flutter, React Native).
A single codebase, compiled for both stores. It is now the default choice for the vast majority of business apps.
Hybrid in the strict sense (Ionic, Capacitor).
A website wrapped in a native shell. The cheapest way onto the stores, and the one you notice most in daily use.
PWA (Progressive Web App).
A website installable from the browser. No store, no commission — but limited hardware access and very low visibility on iPhone.
The real trade-off is not about technology but about three questions: what the second platform costs you, what hardware you need, and whether your users will actually install anything. The table below answers the first two, the selector further down answers the third.
The comparison
The four approaches, line by line.
Indicative budget — standard app
Native€40k – €80k
Cross-platform€30k – €60k
Hybrid€20k – €40k
PWA€10k – €25k
0€20k€40k€60k€80k
Typical timeline
Native3–4 months
Cross-platform8–12 weeks
Hybrid6–10 weeks
PWA6–10 weeks
04 wk8 wk12 wk16 wk
Native
Languages
Swift (iOS) + Kotlin (Android)
Codebases
2
Performance
The benchmark
Hardware access
Full — NFC, Bluetooth, sensors, augmented reality
Offline support
Full
Push notifications
Yes
Distribution
App Store + Play Store
Commission on purchases
EU: 26% Apple, 10% + 5% Google
Google indexing
No
Cross-platform
Our default choice
Languages
Dart (Flutter) or TypeScript (React Native)
Codebases
1
Performance
Indistinguishable from native in use
Hardware access
Near-total, via modules
Offline support
Full
Push notifications
Yes
Distribution
App Store + Play Store
Commission on purchases
EU: 26% Apple, 10% + 5% Google
Google indexing
No
Hybrid (WebView)
Languages
HTMLCSSJSCapacitorHTML, CSS, JS + Capacitor
Codebases
1
Performance
Fine on simple screens, noticeable on long lists and animations
Hardware access
Limited to existing plugins
Offline support
Full
Push notifications
Yes
Distribution
App Store + Play Store
Commission on purchases
EU: 26% Apple, 10% + 5% Google
Google indexing
No
PWA
Languages
HTMLCSSJSHTML, CSS, JS
Codebases
1
Performance
Depends on the browser
Hardware access
Camera, geolocation, storage. No NFC or Bluetooth on iPhone
Offline support
Partial — browser cache
Push notifications
Yes on Android. On iPhone only if the user adds the app to their home screen
Distribution
Browser — no review, no commission
Commission on purchases
None
Google indexing
Yes
Indicative ranges for a production app, back end included. The full cost breakdown is on our page how much does a mobile app cost.
In detail
What each approach really costs you.
Native app
One Swift codebase for iPhone, one Kotlin codebase for Android. You write twice, test twice, maintain twice. In exchange, you get the very best of each platform: perfectly fluid animations, access to every sensor, and deep system integration — widgets, smartwatch, voice shortcuts.
Choose native ifyour app depends on graphics performance (games, augmented reality, video processing), uses advanced hardware (NFC, Bluetooth Low Energy, health sensors), or targets deep system integration.
Avoid it ifyour app displays data, forms and lists — that is, the vast majority of business apps.
In detail
The real cost of native is not the initial build — it is maintenance. Every change, every fix, every OS update has to be handled twice, for the whole life of the app. That is what explains the three-year budget gap, far more than the initial quote.
Cross-platform (Flutter, React Native)
A single codebase, compiled for both stores. Unlike hybrid, there is no hidden browser inside: React Native drives the phone’s native components directly, and Flutter draws its interface with its own graphics engine. The result: users cannot tell a cross-platform app from a native one — and they never try to.
Choose it ifyou want iPhone and Android, a controlled budget, and a single team evolving the app over time.
Avoid it ifyour app is a 3D game or depends on a system feature released a few weeks ago.
In detail
It is our default choice at OTTOPILOTE. For a business app — accounts, data, forms, payments, notifications — cross-platform delivers the same product as native development for half the budget and half the maintenance.
Hybrid in the strict sense (Ionic, Capacitor)
A website locked inside a native shell, rendered by an invisible browser. It is the cheapest way onto the stores — and also the one you notice: scrolling catches slightly, transitions are not quite the system’s, the app behaves like a website.
Choose it ifyou already have a working web app and want a store presence quickly, without rewriting everything.
Avoid it ifthe app is your main product — the one your customers use every day.
In detail
Watch the vocabulary. Many agencies sell “hybrid” when they actually mean Flutter or React Native, which are technically unrelated. Always ask exactly which technology will be used: the gap in perceived quality is real, and so is the price gap.
PWA (Progressive Web App)
A website that users install on their home screen from the browser. It opens full screen, with no address bar, works offline, and updates itself: you deploy, everyone has the new version. No Apple review, no commission on payments, and content Google can index.
Choose it ifyour usage is occasional (booking, checking, ordering), you want to stay findable on Google, and you refuse store commissions.
Avoid it ifyou need reliable notifications on iPhone, NFC or Bluetooth.
In detail
The point few agencies will tell you about iPhone: push notifications have worked since iOS 16.4, but only if the user has themselves added the PWA to their home screen via the Share menu. In practice, almost no one does it spontaneously. If notifications are central to your product and your customers are mostly on iPhone, a PWA is the wrong choice — and it is the only real reason to rule it out.
WalletView.swiftiOS
structWalletView: View {
let account: Account
var body: someView {
Text(account.balance)
}
iOS buildBuilt
App StoreVersion 1.4In reviewAvailable
WalletActivity.ktAndroid
classWalletActivity : Activity() {
val account = Account()
override funonCreate(…) {
show(account.balance)
}
Android buildBuilt
Google PlayVersion 1.4Under reviewPublished
Every change: twiceEvery OS update: twiceHardware access: full
“Fournil” would like to send you notificationsAlerts, sounds and badges
Don’t AllowAllow
FFournilYour order is ready.
Installed from SafariNo store and no commission.
Notifications on iPhoneOnly once the app has been added to the home screen.
Indexed by GoogleIt is a website: every page can rank.
NFC and BluetoothNot on iPhone.
The shortcut
Four questions, one answer.
Answer in thirty seconds — we tell you which approach fits your project, and why.
Selector · your projectQuestion 1 of 4
Would your users open this app at least once a week?
Do you need specific hardware? (NFC, Bluetooth, sensors, augmented reality)
Do your users need reliable notifications, including on iPhone?
What budget for the first version?
A PWA is probably enough.
Your usage is occasional and depends neither on hardware nor on notifications: asking your customers to download an app would add friction for little benefit. A PWA will cost you two to four times less, stay findable on Google, and can evolve into a full app later if usage takes off.
Regular usage, iPhone and Android to cover, a budget to hold: a single codebase in Flutter or React Native gives you the same product as native development, for half the budget and half the maintenance. It is what we recommend to most of our clients.
Your hardware or performance needs go beyond cross-platform’s comfort zone. It costs more, and deliberately so: better to pay for the right tool than to redo the project in a year.
With occasional usage and this budget, a mobile app is unlikely to pay off: it has to be downloaded, kept, reopened. A fast, well-built website will get better results for less. We would rather tell you before the quote.
An app has to be downloaded, kept, then reopened. Three steps, and you lose users at each one. If your service is used two or three times a year, the best-built native app in the world will end up uninstalled — when a fast website would have done the job.
The test is simple: would your customers open this at least once a week? If the answer is no, the right answer is not “native, hybrid or PWA”. It is “no app yet”. We would rather tell you before the quote than after launch.
The life of an app
DownloadedStep 1
KeptStep 2
ReopenedStep 3
At least once a weekAn app
Two or three times a yearNo app yet
The test, before the quote
What we build
Five kinds of app, and the approach that suits each one.
Each one answers a specific use. The approach is chosen from that use, not from fashion.
Field work
The app for your field teams
Today’s jobs, before and after photos, the customer’s signature, the job sheet: everything is filled in from the phone, even with no signal. The record reaches the office as soon as the network is back.
Suggested approach: cross-platform
Job sheet BI-0412Offline
Before photos3 attached
Parts fittedSeal, hose
Customer signature
Sent to the office when the network is backPending
Customers
The app for your customers
Ordering, paying, tracking an order, booking an appointment: your customers open your app instead of calling you. The notification lands on the phone’s screen, where an email waits in an inbox.
Suggested approach: cross-platform
9:41Wednesday
AOrder readynowYour order 118 is waiting for you in store.
AAppointment tomorrow1 h agoWednesday, 10:30 am · reminder
APayment receivedyesterday€42.00 · saved card
Existing software
The mobile extension of your software
Your web application or SaaS already has its accounts and data. The mobile app connects to it: approve a request, check a file, get an alert, without opening a computer.
Reading an NFC badge, talking to a sensor over Bluetooth, placing an object in augmented reality: when the heart of the app is the phone’s hardware, native is justified. We tell you so from the first conversation.
Suggested approach: native
Cold room · probe CF-23.8 °CCompliant
LinkBluetooth Low Energy
Alert thresholdabove 4 °C
Reading savedeven with no network
Occasional use
The PWA for occasional use
Booking, checking, ordering a few times a year: a website that installs on the home screen is enough. No store, no commission, and content Google can index.
Suggested approach: PWA
fournil-example.com/order
Country loaf× 1
Croissants× 6
PickupSaturday, 8:30 am
Installed from the browserNo store
What is included
What a mobile app delivered by OTTOPILOTE includes.
The choice of approach first, written down and argued. Then everything the app needs to live on both stores.
The choice of approach, arguedNative, cross-platform, hybrid or PWA: the recommendation and its reasons, written at scoping.
Source code is yoursRights assignment written into the contract, code and access handed over on delivery, once the project is paid.
30 days of fixes, then careThirty days of fixes after release, then an optional monthly care plan, quoted, keeping pace with new iOS and Android versions.
Your app · delivery9 items
The choice of approach, argued
Approved mockups and user flows
One codebase, iPhone and Android
Back end, accounts and data
Notifications and offline mode
A build to test at every step
Publishing on the App Store and Google Play
Source code is yours
30 days of fixes, then care
Method
From idea to both stores, in five visible steps.
The typical timeline for a cross-platform app is 8 to 12 weeks, from the first meeting to release on the App Store and Google Play. Here is how they go.
Step 1 of 5W1
01W1
Scoping and choice of approach
What the app must do, for whom, on which phones. We decide between native, cross-platform, hybrid and PWA, with the reasons written down. One scope, one capped price.
Step 2 of 5W2
02W2
Mockups and user flows
The screens and flows drawn and approved together. Fixing a mockup costs a meeting; fixing a coded screen costs days.
Step 3 of 5W3 → W8
03W3 → W8
Development
Back end, accounts, screens, notifications, connections to your tools. A build to install on your phone at every sprint.
Step 4 of 5W9
04W9
Testing on iPhone and Android
The flows replayed on both platforms, gaps fixed before submission to the stores.
Step 5 of 5W10 →
05W10 →
Release and care
Submission to the App Store and Google Play, release, handover of code and access. Thirty days of fixes, then optional care.
Technologies
The mobile toolkit, chosen to fit the approach.
The building blocks we use for your apps. Widespread, documented, and something another team can take over if you wish.
Your app · technologies7 tools
RNReact Native · ExpoOne codebase for iPhone and Android, in TypeScript
FFlutterFine control over the interface, identical rendering on both platforms
SSwift · KotlinNative, when the project justifies it
TSTypeScriptTyped code, fewer errors in production
ASApp Store · Google PlayRelease and updates on both stores
Budget
What a mobile app costs.
The indicative ranges from the comparison, approach by approach. The quote itself starts from your project.
Native
€40,000 → €80,000
Two codebases, Swift and Kotlin
Typical timeline: 3 to 4 months
Cross-platform · our default choice
€30,000 → €60,000
One codebase, iPhone and Android
Typical timeline: 8 to 12 weeks
Hybrid (WebView)
€20,000 → €40,000
A website in a native shell
Typical timeline: 6 to 10 weeks
PWA
€10,000 → €25,000
Installable from the browser, no store
Typical timeline: 6 to 10 weeks
Indicative ranges for a production app, back end included. The full cost breakdown is on our “How much does a mobile app cost” page. Free, capped quote within 24 hours.
One codebase, iPhone and Android, half the budget and half the maintenance of native — for a result your users cannot tell from a native app.
Native when the project justifies it.
Games, augmented reality, advanced hardware, deep system integration. We say so from the first conversation, because it costs more and you should know exactly why.
A PWA when it is enough.
We say that too. Selling a native app to someone who does not need one means winning a project and losing a client.
A capped quote.
The maximum price is known before we start: free, capped, within 24 hours.
The code is assigned to you in writing.
Source code, access and documentation handed over at delivery, once the project is paid. You stay free to change provider or to evolve the app in-house.
A human reply within 24 hours.
An honest first read, an order of magnitude and the first risks. No slide deck, just a clear answer.
Frequently asked questions
What we get asked before signing.
Another question? Write to us: a human reply within one business day.
What is the difference between a native app, a hybrid app and a PWA?
A native app is written in each platform's own language: two codebases, the best performance, the highest budget. A hybrid app is a website wrapped in a native shell: one codebase, the lowest budget, noticeably less fluid. A PWA is a website you can install straight from the browser, without going through the stores. In between sits cross-platform (Flutter, React Native): a single codebase with native rendering — the best compromise for most projects.
Which option is the cheapest?
PWA first, then hybrid, then cross-platform, then native. But the quote is the wrong yardstick: what matters is the cost over three years. A native app costs roughly 30% more up front, and above all twice as much to evolve, since every change has to be made twice.
Can a PWA replace a native app?
For occasional use — browsing, booking, ordering — yes, comfortably. For daily use that relies on notifications, background geolocation or specific hardware, no. The limit is not the quality of the PWA, it is what iOS allows it to do.
Do push notifications work on iPhone with a PWA?
Yes, since iOS 16.4 — on one condition: the user must have added the PWA to their home screen through Safari's Share menu. As long as it stays an ordinary tab, no notification is possible. In practice very few users do this on their own, and that is the main limitation of PWAs on iPhone.
Should you choose Flutter or React Native?
Both are mature and suit the majority of projects. React Native slots in naturally if your team already works in JavaScript or TypeScript. Flutter gives finer control over the interface and identical rendering on both platforms. The choice depends more on your existing ecosystem than on either being technically superior.
Can you start with a PWA and move to native later?
Yes, and it is often the right sequence. The PWA validates real usage at a lower cost. If the numbers follow, moving to cross-platform or native happens on a genuine base of data and a precise understanding of what your users actually do — instead of guessing up front.
Going further
What to know before you start.
Three reads to decide with the facts: what a mobile app really costs, what a first version should ship, and the full picture of custom development.