March Code

Kotlin,FlutterorReactNative:WhattoBuildYourAndroidAppWith

We compare three ways to build an Android app: native Kotlin and cross-platform Flutter or React Native. Cost, timelines and performance.

Kotlin, Flutter or React Native: What to Build Your Android App With
Eugene OlshevskyEugene OlshevskyCTO and co-founder
16 min read

Android runs on about 72% of the world's smartphones. But the question of what to build an Android app with comes down to three fundamentally different paths: native Kotlin, cross-platform Flutter or React Native. Each has its own cost, timeline and limitations. The choice isn't obvious, and the price tag ranges from $9,900 to about $115K.

This article is an honest comparison of the three approaches with concrete numbers: cost, speed, performance, and when to pick which. No marketing fluff, just the facts a CEO or CTO needs.

72%
Android's global
market share (2026)
from $9,900
Android app
MVP
2–6 months
development time
(MVP → full version)

The three approaches at a glance

Kotlin (native development)

Google's official language for Android. The code compiles to native, so you get maximum performance and full access to every device API. One downside: the app runs only on Android. For iOS you need a separate build in Swift.

Flutter (cross-platform, by Google)

One Dart codebase produces apps for Android and iOS at the same time. Flutter has its own rendering engine (Skia/Impeller): it doesn't use native components and draws everything itself. The result is the same UI on both platforms with 90%+ shared code. The downsides: a larger app size, and platform-specific native features need "bridges".

React Native (cross-platform, by Meta)

One JavaScript/TypeScript codebase for Android and iOS. It uses native UI components through bridges (the New Architecture uses JSI). The upside: a huge ecosystem of JS developers. The downside: performance is lower than Flutter and Kotlin, especially in animations.

Comparison: development cost

This is the parameter that matters most to a business. We'll use a typical mid-size app as the example: sign-in, profile, catalog, orders, push notifications, payments.

Kotlin (Android only): MVP: from $9,900 to about $22K, 2–3 months. Full version: $22K–60K, 4–6 months. If you also need iOS, double it (a separate Swift build).

Flutter (Android + iOS): MVP: from $16,900 to about $27K, 2–4 months. Full version: $27K–73K, 4–7 months. One budget gets you both platforms.

React Native (Android + iOS): MVP: from $16,900 to about $27K, 2–4 months. Full version: $27K–83K, 4–8 months. Comparable to Flutter, but it more often ends up costing more because of native bridges.

The key math: if you need both platforms (Android + iOS), cross-platform saves 30–40% of the budget. Separate Kotlin and Swift apps cost 1.7–2x as much as one Flutter app. If you need ONLY Android, Kotlin is 20–30% cheaper.

Comparison: performance

Performance isn't an abstract metric. Here's where it actually matters.

Animations and UI

Kotlin: a steady 60 fps. Native components optimized by Google. The best option for apps with a heavy UI (3D, complex animations, AR).

Flutter: 60 fps in 95% of scenarios. Its Impeller renderer is very fast, comparable to native. Complex animations run at 90% of native performance.

React Native: 60 fps for a simple UI. Complex animations with the New Architecture (JSI) reach 80–90% of native. Without the New Architecture, you'll see noticeable lag on mid-range devices.

App startup

Kotlin: cold start in 0.3–0.8 s. The best result.

Flutter: cold start in 0.5–1.2 s. Slightly slower because the Dart VM has to initialize.

React Native: cold start in 0.8–2 s. The JS bundle takes longer to load. Hermes (Meta's JS engine) makes it faster, but it's still slower than Flutter.

Hardware access

Kotlin: full access to the camera, Bluetooth, NFC, GPS and sensors. No restrictions.

Flutter: access through plugins. Ready-made plugins cover 95% of features. For unusual cases (BLE profiles, custom NFC commands) you need native bridges written in Kotlin, which adds $1,000–2,700.

React Native: access through native modules. The library ecosystem is large, but quality is uneven. For Bluetooth and NFC you often end up writing native code.

100%
Kotlin performance
(native)
90–95%
Flutter
performance
80–90%
React Native
performance

Comparison: development speed

Flutter: the fastest option for cross-platform development. Hot Reload (instant UI refresh), declarative UI built from widgets, one codebase for both platforms. Typical savings: 30–40% of the time compared with building two native apps.

React Native: comparable to Flutter in speed. The advantage: if your web team already knows React, the switch to React Native is faster. Hot Reload, a component-based approach. But native modules slow development down.

Kotlin: slower for a cross-platform job, since you need a separate iOS build. But faster if you only need Android: there's no overhead from cross-platform abstractions, and the native tools (Android Studio, Jetpack Compose) are built specifically for Android.

When to choose Kotlin

1
You only need Android. If iOS isn't in the plans (an internal company app, or an app for a courier or driver fleet where 95% of devices run Android), Kotlin is cheaper and faster
2
Heavy hardware work. Bluetooth Low Energy (BLE), NFC terminals, custom scanning, AR/VR, camera work (computer vision). Native code means full access with no limits
3
High performance. Apps with heavy graphics, real-time data processing, games. Every millisecond counts
4
A long lifecycle. If the app will live for 5+ years and keep evolving, native development is more stable. Google is committed to backward compatibility for Kotlin and Jetpack Compose

When to choose Flutter

1
You need both platforms (Android + iOS). 30–40% savings compared with two native apps. One codebase, one team, one budget
2
A custom UI. Flutter draws everything itself instead of using native widgets, so you can create your own design that looks the same on both platforms. A good fit for brand apps
3
Fast time to market. Hot Reload plus a rich widget library means an MVP for both platforms in 2–3 months. For startups, that's often the deciding factor
4
Most typical apps. E-commerce, delivery, ride-hailing, fitness, booking, SaaS: Flutter covers 90%+ of cases with no performance compromises

When to choose React Native

1
Your team is made of React developers. If you have a strong React/TypeScript web team, the move to React Native is small. You don't need to hire Dart developers
2
Code is shared with the web. If you have a React web app, up to 40% of the logic (API clients, utilities, state) can be reused in React Native
3
Fast updates without going through the stores. Over-the-air update tools (CodePush, Expo EAS Update) let you update the JS bundle without publishing a new version to Google Play or the App Store. Useful for apps where frequent updates are critical (A/B tests, promos)

Cost by app type

Concrete numbers for typical projects (Android + iOS, Flutter):

Delivery app: catalog, cart, payments, order tracking, push. MVP: $17K–33K. Full version: $43K–100K.

Marketplace: two apps (buyer and seller), search, filters, chat, payments. MVP: $27K–60K. Full version: $60–150K.

Corporate app: sign-in, tasks, documents, notifications, offline mode. MVP: $13K–27K. Full version: $27K–67K.

Fitness and health: profile, workouts, progress tracking, wearable integration. MVP: $13K–30K. Full version: $30K–83K.

For more on mobile development costs, see our article on how much a mobile app costs.

How to publish on Google Play

A quick checklist for first-time publishers:

Developer account: $25 (one-time). Verification takes 1–2 days.

Google Play requirements: a target API level (at least API 34, Android 14; Google raises the bar every year, so check the current minimum before release), a privacy policy (mandatory), the Data safety form (what data you collect), a content rating (the IARC questionnaire), graphics and screenshots (at least 4 screenshots and a 1024x500 feature graphic).

Review: 1–7 days (longer the first time). Common reasons for rejection: no privacy policy, undeclared permissions, content that violates the policies, crashes on review devices.

ASO (App Store Optimization): a title of up to 30 characters (with keywords), a short description of up to 80 characters and a full description of up to 4,000 characters. All of this affects your ranking in Google Play search.

Tip

Start with internal or closed testing: publishing there is instant, with no review. Recruit 10–20 testers, fix the critical bugs, and only then go for a public release.

Our approach: Android from $9,900

At March Code we build Android apps mostly in Flutter, because in 80% of projects the client needs both platforms and Flutter offers the best balance of cost and performance. For projects that need native development (BLE, AR, heavy graphics), we use Kotlin.

from $9,900
Android app
MVP
2–3 months
time to launch
an MVP
Flutter
main stack
(80% of projects)

The process: 1) analysis and prototype (1–2 weeks), 2) UI/UX design (2–3 weeks), 3) development (4–12 weeks), 4) testing and publishing (1–2 weeks). More details on our mobile development page.

FAQ

Is Kotlin Multiplatform an alternative to Flutter?

Partly. KMP lets you share business logic (network requests, data models) between Android and iOS, but the UI is usually written natively for each platform (Compose and SwiftUI). Savings: 20–30%, versus 30–40% with Flutter. The plus: a native UI on each platform. The minus: you need developers who know both Kotlin and Swift. KMP is a good choice when you want the most native experience possible and the team knows both languages.

Can we update the design without rewriting the code?

Yes, if the architecture is right (UI separated from business logic). In Flutter or Kotlin with a sound architecture (MVVM, BLoC), a UI redesign costs 30–40% of the original budget, because all the business logic stays as it is.

How much does Android app support cost?

Minimum: $700–1,300/month (backend hosting, monitoring, small fixes). Typical: $1,700–$2,900/month (plus updates for new Android versions and new features). Mandatory: a yearly target API level update (a Google Play requirement); otherwise Google Play stops offering the app to new users.

Does an Android app need a backend?

In 95% of cases, yes. An app without a backend is a calculator or a notepad. Sign-in, data storage, push notifications and payments all need a server. Backend cost: 30–50% of the app's cost. We use Node.js/Next.js + PostgreSQL.

Which is better for a startup, Flutter or React Native?

Flutter. Better performance, a more stable ecosystem, faster Hot Reload. Choose React Native only if 1) your team already writes React, 2) you need to share code with a web app, or 3) you need over-the-air updates.

Can we release an Android app without an iOS version?

Yes. It makes sense if your audience is mostly on Android (for example, a fleet of couriers, drivers or field technicians where 90%+ of devices run Android), if it's an internal company app (you buy devices for one platform), or if the budget is tight (Kotlin-only is 20–30% cheaper). But keep in mind that about 28% of smartphones worldwide run iOS (in the US, more than half), and iOS users are the audience that spends more.

About the authors

The March Code team

We're a software studio with years of commercial development experience in Russian and international markets. We help businesses go digital: we build web and mobile apps, automate routine work and bring AI in where it's actually needed.

Over that time we've delivered 20+ projects, from startup MVPs to complex SaaS platforms and enterprise solutions. Our clients include hospitality, e-commerce, logistics and education. For us, every project is not just code but a product that has to deliver results.

20+ delivered projects13+ years of founder experienceNDA on requestMore about the company →

A clickable prototype of your interface in 5 days, free

Projects from $3,900, prototype free

Prices are indicative and not a binding offer.

After a 30-minute call we build an interactive prototype of up to 5 key screens, so you can judge the solution before any contract or prepayment.