Contents
For most business apps — shops, booking services, customer portals — cross-platform development with Flutter or React Native delivers one app for iOS and Android cheaper and faster than two native ones. Native development in Swift and Kotlin pays off when the app works deeply with hardware, needs maximum performance or must adopt new platform features first.
Here is how the approaches differ and how to choose for your product.
How does cross-platform development differ from native?
A native app is written separately for each platform in its own language and tooling: Swift for iOS, Kotlin for Android. A cross-platform app is written once and runs on both, differing in how it draws the interface and accesses the system.
| Criterion | Native (Swift, Kotlin) | Flutter | React Native |
|---|---|---|---|
| Language | Swift and Kotlin | Dart | JavaScript or TypeScript |
| Codebase | Two separate ones | One | One |
| UI | System components | Its own rendering engine | The platform's native components |
| Access to device features | Full and immediate | Through plugins | Through modules |
| New platform features | Available first | Delayed, via plugins | Delayed, via modules |
| Development cost | Higher: two teams or double work | Lower | Lower |
| Reuse with the web | None | Limited | Logic and some code with a React web app |
When should you choose Flutter?
Choose Flutter when you want an identical, carefully crafted interface on both platforms and the team is happy with Dart. Flutter draws the UI with its own engine, so the app looks the same on every device and animations and custom design come more easily.
class OrderCard extends StatelessWidget {
const OrderCard({super.key, required this.order});
final Order order;
@override
Widget build(BuildContext context) {
return ListTile(
title: Text('Order #${order.number}'),
subtitle: Text(order.statusLabel),
trailing: Text('\$${order.total}'),
);
}
}
Flutter suits apps with a distinctive brand design, complex animations and internal company apps where development speed and a consistent look across devices matter.
When should you choose React Native?
Choose React Native when the company already has React developers or a React web app: some of the logic, approaches and even people can be reused. React Native uses the platform's native components, so the interface feels familiar to iOS and Android users.
export function OrderCard({ order }: { order: Order }) {
return (
<View style={styles.card}>
<Text style={styles.title}>Order #{order.number}</Text>
<Text>{order.statusLabel}</Text>
<Text>${order.total}</Text>
</View>
)
}
We discussed the link with React on the web in Vue vs React: the option of a mobile app on shared technology is one of the arguments for React.
Photo: Unsplash
When do you need native development?
You need native development when the app relies heavily on device or platform capabilities: background work, Bluetooth and external devices, advanced camera work, augmented reality, widgets and system integrations. Cross-platform tools can do this, but via plugins that arrive late and sometimes still require native code.
Signs native is justified:
- Performance is critical: complex graphics, real-time video and audio processing.
- You need the newest platform features as soon as they ship.
- Many non-standard hardware and system integrations.
- The company already has strong iOS and Android teams.
A middle ground: shared logic, native UI
Kotlin Multiplatform lets you write shared business logic once while keeping a native interface on each platform. It is a compromise for teams that want native UI without duplicating logic.
How do you choose the technology for your app?
Choose by product requirements and team composition, not popularity. For a typical business app a cross-platform solution is usually enough; native is reserved for cases where there is truly no alternative.
Questions to decide:
- Which device features are needed, and are there mature plugins for them?
- How important is a branded interface that looks the same on every device?
- Does the company have React developers or a React web app?
- What is the budget for building and maintaining two platforms?
- How quickly must new iOS and Android versions be supported?
If you have not yet decided whether you need an app at all, start with mobile app or website.
In short
- Cross-platform development delivers one app for iOS and Android cheaper and faster than two native apps.
- Flutter suits branded interfaces and complex animations that look the same everywhere.
- React Native suits companies that already use React on the web.
- Native suits deep device work, maximum performance and the newest platform features.
- Kotlin Multiplatform is a compromise: shared logic with a native interface.
FAQ
Will users notice the app is cross-platform?
Not in a well-built app. Differences usually show only in complex animations, heavy graphics or when platform UI conventions are ignored.
Can we move from cross-platform to native later?
Yes, but it means rewriting the app. The backend and API stay, which is why keeping business logic on the server and the app as a thin client matters.
How much does maintaining a cross-platform app cost?
Usually less than two native apps, because changes are made in one codebase. But updates for new iOS and Android versions, the framework and plugins remain and must be budgeted for.



