Technology · Mobile

Flutter

One codebase that paints its own pixels — iOS and Android that look identical, ship together.

Made by
Google
First release
2017
Language
Dart
In our stack since
2019
In plain English

What it is, and why we use it.

Flutter is Google's UI toolkit for building natively-compiled apps from a single Dart codebase. Unlike frameworks that wrap native components, Flutter renders every pixel itself with its own engine (Impeller) — which is why a Flutter app looks and animates exactly the same on a three-year-old Android phone as on the newest iPhone.

We reach for Flutter when a single codebase is the right call for the product — and go fully native when it isn't. Where we do use it, we pair it with native Swift/Kotlin modules when a package falls short — payments SDKs, background audio, IoT bridges — so clients get cross-platform economics without cross-platform compromises.

Key differences

Flutter vs React Native vs Native (Swift / Kotlin).

The real question is never "is Flutter good?" — it's Flutter against React Native against going fully native. Here's how we draw the line.

DimensionFlutterReact NativeNative (Swift / Kotlin)
LanguageDartJavaScript / TypeScriptSwift & Kotlin
How UI is drawnOwn rendering engine — pixel-identical on every deviceTranslates to real native components per platformThe platform's own components, directly
PerformanceCompiled to machine code; 60–120fps animation is the normFast, but the JS bridge can stutter under heavy loadThe ceiling — nothing between you and the metal
Code shared across platforms~95% — UI included~85% — UI mostly shared, platform quirks remain0% — two codebases, two teams
Platform look & feelConsistent brand-first UI; mimics platform where neededClosest to native feel out of the boxPerfectly native, always
Hiring & ecosystemSmaller talent pool, very strong first-party packagesHuge — any React developer can contributeDeep but split across two specialised teams
Cost of two platforms≈ 1.1× a single app≈ 1.2× a single app≈ 1.9× a single app

Flutter wins when

  • Design-heavy, brand-first products where both platforms must look identical
  • Animation-rich consumer apps on a startup budget
  • Markets full of low-end Android devices — its renderer doesn't care

React Native wins when

  • Your team already lives in React and TypeScript
  • You want over-the-air updates without store review
  • The app should feel strictly platform-native

Native wins when

  • You need bleeding-edge OS features the day they ship
  • Hardware-intensive work: AR, advanced camera, ultra-low-latency audio
  • Budget allows two dedicated teams and you're optimising the last 5%
Our take

For 8 out of 10 briefs we see, Flutter is the right call: one team, one release train, no visual drift between platforms. We reach past it only when an app lives or dies on a native-only capability.

Thinking about Flutter?

Tell us what you're building — we'll tell you honestly whether Flutter is the right tool for it.