Almost every first call about a new app reaches the same question within ten minutes: "Should we build two native apps, or one app for both phones?"
I'm a freelance Flutter and WordPress developer in Famagusta, North Cyprus, and most of my clients are small and medium businesses, not tech companies. They don't need a lecture on rendering engines. They need a clear answer they can take back to their partner or their accountant. This is the explanation I've settled on, and the cases where I still say "go native".
The one-sentence version
A native app is built twice: once for Android (usually Kotlin) and once for iPhone (Swift). A cross-platform app is built once, with a framework like Flutter or React Native, and runs on both. Often on the web and desktop too.
Everything else follows from "built once" versus "built twice".
What "built once" means for a business
When I put it in business terms, the list is short:
- Budget: one codebase, one development process, one round of testing. Not two.
- Launch day: Android and iPhone users get the app on the same day, instead of one platform waiting for a second team.
- Consistency: the brand, screens and features are identical whatever phone the customer has.
- Maintenance: a bug is fixed once, a feature is built once, then released everywhere.
- Growth: the same code can later become a web or desktop version.
Maintenance is the point that lands best. Clients think about the launch; I ask them to think about year two, when every change in a native setup has to be made, tested and released twice.
"But won't it feel slow?"
This is the worry clients bring from older hybrid apps that were basically websites in a wrapper. I explain that Flutter is different: it compiles to native ARM code and draws its own UI with its own rendering engine, so scrolling, animations and transitions are smooth. For the kind of apps most businesses need (bookings, ordering, listings, internal tools, content), users simply can't tell.
Then I show them something running on my own phone. A demo beats any argument.
When I still recommend native
Being honest about the limits is what makes the recommendation believable. I suggest a fully native approach when:
- The app depends on brand-new platform features on the day they're released.
- It's a demanding 3D game or something close to the metal.
- The client already has strong native teams and an existing native codebase.
For most other cases, Flutter can still call native code through platform channels when one specific feature needs it, so you keep one main codebase and still have an escape hatch.
The comparison table I send after the call
| Two native apps | One cross-platform app | |
|---|---|---|
| Codebases | Two | One |
| Budget | Higher | Lower |
| Launch on Android & iOS | Often at different times | Same day |
| Design consistency | Harder to keep identical | Identical by default |
| Maintenance | Every change done twice | Every change done once |
It's deliberately simple. The client will forward it to someone, and it has to make sense without me in the room.
Questions clients ask next
"Is it harder to publish?" No. It goes to Google Play and the App Store as two normal apps, built from the same project.
"Can we add native parts later?" Yes, small native pieces can be added for very specific features.
"Will users notice?" With a well-built Flutter app, usually not.
The bonus: the website and the app together
Most of my clients also need a website, because customers find them on Google before they ever install an app. When the same developer builds the WordPress site and the Flutter app, the app can read listings, products or bookings from the site's REST API. Content is updated once and appears in both places.
I wrote the client-facing version of this guide, with a short FAQ, here: Cross-Platform vs Native Apps: Why Build Once for Android and iOS. If you're a business planning an app, you can see my Flutter app development services in North Cyprus.
Fellow developers: how do you explain this trade-off to non-technical clients? I'd love to steal a better analogy.
Top comments (1)
Explaining the trade-off in terms of the client's budget and timeline rather than the tech is what makes these conversations easier. Showing one real example of each option side by side probably helps a lot too. Where do most of your clients come from at the moment, referrals or outreach?