Mobile apps

React Native, Flutter or native apps: how we choose

We have shipped Expo storefronts and Flutter apps. When each approach fits, and when fully native apps are worth the extra cost.

There are three main ways to build a mobile app today: separate native apps for iOS and Android, React Native, or Flutter. We have shipped work with both cross-platform options. Zeevan and KankreG, two D2C stores, are built with Expo, the React Native framework, and VeggieKing's customer and delivery-partner apps are built with Flutter. This is how we decide which one a project should use.

The three options in brief

  • Native. Two codebases: Swift for iOS and Kotlin for Android. Each app uses its platform's own tools and interface components directly.
  • React Native. One codebase in JavaScript or TypeScript, written with React. Expo adds tooling, routing and build services on top, and React Native for Web lets much of the same code run in a browser.
  • Flutter. One codebase in Dart. Flutter has its own implementation of each interface control instead of using the system's, and its code compiles to native code.

When React Native with Expo fits

React Native suits teams that already work in React and TypeScript, and products that need a website and apps from shared code. Zeevan and KankreG are web storefronts built with Expo and Expo Router, so the same React Native code that serves the browser today can be extended into store apps later, without starting again.

  • You need a website and mobile apps, and want to share screens and logic between them
  • Your team, or the team that will maintain the product, knows React
  • Most screens are standard: lists, forms, product pages and accounts

When Flutter fits

Flutter suits apps with a strongly branded interface that should look the same on every phone. Because Flutter draws its own controls, a design looks and behaves consistently across Android versions and manufacturers. VeggieKing's apps have custom festive themes, a floating cart bar, maps and live order tracking, and both the customer and delivery-partner apps are written in the same language and framework.

  • The app is mobile first, and a website is a separate product or not needed
  • The design is custom rather than close to standard iOS and Android screens
  • You want one team to build and maintain more than one app

When native is worth the extra cost

Two native codebases cost more to build and maintain, so they need a reason. Good reasons include:

  • Deep use of platform features: home-screen widgets, complex background work, advanced camera or audio, or augmented reality
  • Needing new operating-system features on the day they ship
  • An in-house team that already works natively on each platform

Questions we ask before choosing

  • Which platform matters first: Android, iOS, the web, or all three?
  • Do you need a website from the same code?
  • Which phone features does the first release use: camera, location, background tasks, Bluetooth?
  • Does the app need to work offline?
  • Who will maintain it after launch, and what do they already know?

For most business apps, such as catalogues, carts, bookings and tracking, all three approaches are fast enough. Slow apps are usually slow because of large images, too many network calls or long lists that render every row at once, and no framework fixes those on its own.

What to do next

Read our mobile app development process, or see the stacks in practice in the VeggieKing and Zeevan case studies. If you are deciding for your own product, tell us what it has to do and we will recommend a starting point.

Sources

  1. React Native documentation (opens in a new tab)
  2. Expo documentation (opens in a new tab)
  3. React Native for Web (opens in a new tab)
  4. Flutter architectural overview (opens in a new tab)
  • React Native vs native
  • Flutter
  • Expo
  • Cross-platform apps

Written by

The Novaro Solution team

Novaro Solution is a software studio in Gandhinagar, India. We build websites, web and mobile apps, AI features and marketing for companies in India and abroad, and write about what we learn doing it.

About the studio

Part of our mobile apps series

More on this topic

Next step

Not sure whether you need a store app or a web app first? Tell us what the product has to do and we'll recommend a starting point.