All articles

Engineering3 min read

Flutter vs React Native vs native: what we use and why

Flutter, React Native or native iOS and Android? Why we built rallyp0int in Flutter, moved FlatMatch to React Native and Expo, and how we choose.

By Blank Software

In this article5 sections+
  1. 01The three options in brief
  2. 02Why rallyp0int is built in Flutter
  3. 03Why FlatMatch moved to React Native and Expo
  4. 04The honest trade-offs
  5. 05How we choose for a client

We have shipped apps more than one way, so this is not a pitch for one framework. rallyp0int, our events map, is built in Flutter. FlatMatch, our rental platform, moved its mobile app to React Native and Expo in September 2026. Here is how the three options compare and how we decide.

The three options in brief

ApproachLanguageHow it draws the screenCodebases
FlutterDartDraws its own widgets on every platformOne for iOS and Android
React NativeTypeScript or JavaScriptUses the native interface components of each platformOne for iOS and Android
NativeSwift for iOS, Kotlin for AndroidUses the native interface components of each platformOne per platform

Why rallyp0int is built in Flutter

rallyp0int puts local events onto a single live map, with clustering that keeps thousands of pins readable. Most of the app is that map and the custom screens around it. Flutter gave us one codebase and full control over how every screen looks, and it works well with the Google Maps and Firebase services the app runs on.

Why FlatMatch moved to React Native and Expo

FlatMatch started on the web. Renters, landlords and property managers all use it in the browser, and its rules are detailed: six roles enforced on the server, an auditable match score, and rooms and whole properties on the same system. For the mobile app, the biggest risk was those rules drifting apart between web and mobile.

React Native lets the mobile app share one TypeScript package with the web app for types, validation and business rules. A rule changes once and both apps get it. Expo takes care of much of the build and release work for iOS and Android, which keeps a small team moving.

The honest trade-offs

  • Flutter: one codebase and a consistent look everywhere, and well suited to custom, animated interfaces. The catch is Dart. Most web teams do not use it, so little code is shared with a web app written in TypeScript.
  • React Native: one codebase in TypeScript, the same language as most modern web apps, so types and logic can be shared across web and mobile. The catch is that some features still need native code or a third-party library, and upgrades take care.
  • Native: full access to every platform feature as soon as Apple or Google release it, and the most platform-true feel. The catch is two codebases to build, test and maintain for every feature, often by two different specialists.

How we choose for a client

  • If you also need a web app that follows the same rules, React Native with a shared TypeScript package is usually the best fit.
  • If the app stands on its own and is mostly a custom, highly visual interface, Flutter is a strong choice.
  • If the app depends on deep platform features, such as advanced camera work, Bluetooth or heavy background processing, native can be worth the extra cost.
  • For most business apps any of the three can do the job. The deciding factors are the code you already have, who will maintain it and what else it has to connect to.

Whichever we recommend, we explain why before anything is built. We run apps on both Flutter and React Native ourselves, so the advice comes from living with both.

Planning an app?

Tell us what you have in mind. We will scope it with you and send a written proposal.

Start a project