What 'native' and 'Flutter' actually mean

Native development means writing the Android app in Kotlin with Jetpack Compose and the iOS app in Swift with SwiftUI or UIKit: two code bases, two teams or one team doing everything twice.

Flutter is Google's open-source toolkit for building apps from one Dart code base. Release builds are compiled ahead of time to native ARM code, and Flutter renders its own widgets rather than wrapping platform components. The output is still a normal Android or iOS app bundle that goes through the same store review.

Flutter vs native, factor by factor

How Flutter and native compare on the decisions that matter
FactorFlutterNative (Kotlin + Swift)
Code basesOneTwo
Build effort for two platformsRoughly one app plus platform setupRoughly two apps
PerformanceCompiled to native code; strong for animation and mediaNative; the ceiling for hardware-heavy apps
UI consistencyIdentical rendering on both platforms; platform styling optionalFollows each platform exactly by default
Access to new OS featuresVia packages or platform channels, sometimes with a delayDay one
MaintenanceOne code base to update when SDKs and store rules changeTwo update cycles
HiringDart developers, or Android/iOS developers who learn FlutterSeparate Android and iOS specialists

When Flutter is the right choice

  • You need Android and iOS and do not have two native teams
  • The interface is custom or brand-heavy rather than stock platform screens
  • The app is an MVP or a SaaS client that will change quickly
  • The app processes media or draws complex UI, where Flutter's rendering model performs well
  • You want one set of automated tests and one release pipeline

When native is the right choice

  • The app is a thin layer over brand-new OS features (new widgets, system integrations, wearables) that arrive in Swift and Kotlin first
  • You depend on platform hardware or frameworks with no maintained Flutter package, and the platform-channel code would be most of the app
  • You already have native teams and a native code base that works
  • You are building a high-end 3D game or similar workload where every frame counts (and even then, a game engine is the usual answer)

What about React Native?

React Native also shares one code base, written in JavaScript or TypeScript, and renders platform components through a bridge. It suits teams already invested in React. Flutter compiles Dart to native code and owns its rendering, which gives more consistent visuals and stronger performance for custom and media-heavy interfaces. Both are mature; the choice usually follows the team's skills.

What we have seen building Flutter apps

Every app CarrySo publishes is a Flutter app. They compress photos, remove backgrounds with on-device machine learning, convert video with FFmpeg and parse binary metadata, all on the device, and they do it inside Flutter with heavy work in background isolates. Platform-specific code is a small fraction of each code base. That is the practical case for Flutter: the hard parts of a real app stayed shared.