Native or cross-platform: what to choose for your app

Native Swift and Kotlin or cross-platform Flutter: the difference in price, timing, interface quality and support. From a studio that runs apps built both ways.

4 min readAuthor1app

We have both in production: 1Study is native, built in Swift and Kotlin; 1Work is Flutter. So this is not a theoretical comparison but years of experience supporting both approaches.

What they are

Native development — a separate iOS app in Swift and a separate Android app in Kotlin. Two projects, two developers (or one who knows both stacks), two sets of tests.

Cross-platform — one codebase from which both apps are built. Google's Flutter is the most mature option today; React Native is second. The interface is drawn by its own engine, so it looks the same on both platforms.

Price and timing

Flutter is 30–40% cheaper and just as much faster for typical apps: lists, forms, payments, chats, user accounts. The reason is simple: one codebase instead of two. For a mid-sized app in Kazakhstan that is ₸2.5–5 million on Flutter versus ₸4–8 million native.

But the gap narrows when the app has many platform-specific features — then Flutter needs native modules, and you end up with three codebases instead of one.

Interface quality

Native apps use system components: they look and behave the way the user is used to — gestures, animations, keyboard, accessibility. Flutter draws everything itself and does it well, but small things sometimes differ: scrolling, text selection, system dialogs.

For most business apps the user will not notice the difference. For apps where the interface is the product (finance, media, health), native quality shows.

Platform features

Camera, background geolocation, Bluetooth, HealthKit, widgets, Live Activities, App Clips, Apple Pay, NFC — all of this is available immediately in native development. In Flutter it comes through plugins, which can be out of date, or through native modules. If the app is built around such features, go native.

Performance

For ordinary apps there is no difference. Flutter is fast. The difference appears in heavy graphics, video processing and complex animations on low-end Android devices — of which there are many in Kazakhstan.

Store review

Apple is stricter with apps that “do not look like Apple”. Flutter apps pass review, but when guidelines are broken Apple picks on them more often. A native SwiftUI app meets expectations by default.

Support

Native apps depend only on Apple and Google. Flutter also depends on Google as Flutter's maintainer and on plugin authors. A Flutter update sometimes breaks plugins, and that is support time. On the other hand, maintaining one codebase is cheaper than two.

Team

There are few native developers on the Kazakhstan market, especially for iOS. Flutter developers are more plentiful. If you plan to bring development in-house over time, that is an argument.

How we choose

Flutter if: a typical business app, a limited budget, both platforms needed at once, no heavy platform features. That is how 1Work is built — accounting for venues: lists, reports, charts, POS integrations.

Native if: the interface is part of the product, system features are needed, the audience is mostly on one platform, the app will live and grow for years. That is how 1Study is built — an app for students with video, push notifications, white label for dozens of brands and strict Apple review.

Neither, if the task can be solved with a Telegram bot or a web app — which happens more often than you would think.

More on the service and prices under mobile apps.

Questions

The short version.

How much cheaper is Flutter than native development?

30–40% for typical business apps. For apps with many platform-specific features the gap narrows or disappears.

Will users notice that the app is built on Flutter?

In most business apps, no. In apps where the interface is the product, small deviations from system behaviour are noticeable.

Can we rewrite Flutter to native later?

Yes, but it is development from scratch. So make the choice up front, based on what the app will be in two years, not in two months.

Discuss a project

Not sure which approach your app needs?

Describe what the app should do and for whom. We will say native or Flutter, and why — before you spend any money.

We reply during working hours, usually within a couple of hours.