Ask for an app and the first thing you meet is a technical question that feels like someone else's problem: native or cross-platform? The decision shapes cost, timeline and what becomes possible later, so it deserves an explanation without jargon.
The difference, briefly
Native means writing two separate apps: one for Android in its language and tools, one for iPhone in its own. Cross-platform means one codebase running on both, through a framework like Flutter or React Native. The difference is how many versions get written and maintained.
What cross-platform saves
- Clearly lower cost: one team and one codebase instead of two.
- Parity between the platforms: a feature reaches everyone the same day.
- Simpler maintenance: a bug is fixed once, not twice.
- A faster launch, which is what matters for a first version.
When native is right
When the app rests on deep device capability: advanced camera or video processing, 3D games, precise location tracking running continuously in the background, or integration with specific hardware. And when the app is your only product and you compete on fine details of the experience. Outside those cases, what an ordinary user notices today is very small.
The performance myth
Performance was a strong argument years ago. Today Flutter and React Native apps run smoothly in ordinary use. The slowness users complain about is usually a slow network, heavy images or unoptimised queries — all of which happen in native development too.
What belongs in the quote
- Does the price include publishing to both stores, or is that yours?
- Who pays the developer accounts (about USD 100 a year for Apple, a one-off fee for Google)?
- Who owns the code after delivery?
- What happens when a new OS version ships and something breaks?
In short
For most business projects — a store, a service, bookings, a content platform — cross-platform is the practical decision: it cuts cost and time at no cost you can feel in the experience. Leave native to the cases the device itself demands.