Skip to content
ThemeStack

React Native or Flutter: choosing without the tribalism

Both ship excellent apps. The right answer depends on your team's existing code, your design ambitions and who you can hire.

HN

Hieu Nguyen

Founder & lead engineer

Published on · 8 min read

React Native or Flutter: choosing without the tribalism

Nobody needs another benchmark post. Here is the decision as it actually plays out in teams.

Pick React Native if you already write TypeScript

The real win is not code sharing — it is people sharing. Your web developers can read, review and fix the mobile codebase. Types, validation schemas, API clients and business logic move across unchanged. With Expo, the build and release pipeline is somebody else's problem.

The cost: you inherit the JavaScript ecosystem's dependency churn, and heavily custom animation work eventually means touching native code.

Pick Flutter if the design is ambitious

Flutter draws every pixel itself, so a distinctive design system looks identical on both platforms with no per-OS surprises. Complex custom animation is easier and faster than the React Native equivalent. Dart is a small, pleasant language that a TypeScript developer learns in a week.

The cost: it is a separate hiring pool and a separate ecosystem. Nothing is shared with your web code — not types, not validators, not utilities.

What genuinely doesn't matter

Raw performance. Both are fast enough that your API latency and image sizes dominate. If your app feels slow, it is almost never the framework.

What actually decides it

  • Do your existing developers write TypeScript? → React Native
  • Is the design highly custom and animation-heavy? → Flutter
  • Do you need to ship a web version from the same code? → React Native
  • Do you need pixel-identical rendering across old Android devices? → Flutter
  • Can you hire Dart developers where you are? → check before committing

Both answers are defensible. Picking one and committing beats a quarter of debate.

  • react native
  • flutter
  • cross platform
  • mobile development
Back to blog

Keep reading