When Flutter came on the scene a few years ago, we really wondered if the app development framework held the key to better apps. The big hope was that Google had learned their lessons from the Angular 2.0 mishaps back in 2016 and would give us something solid. Something we could rely on in a fragmented ecosystem.

From the jump, we’ll admit that Flutter did create a better experience for developers. The tooling was much better than other offerings and Dart language - although novel - is very much a programmers’ programming language.

Fast forward to today and we can say, categorically, that Flutter does not move us ahead. At least not fast enough.

Read "Add shapes and textures to 3D animations with React, Expo and ThreeJS."

Flutter resists fast updates

Flutter’s name suggests fast movement, doesn’t it? But when it comes to updates, Google’s framework might be more suitably named Trudge.

Over-the-air (OTA) updates - a lifeline for fast development - won’t work with Flutter. Google is doing everything possible to ensure you use what they consider the proper channels. And by the proper channels they mean Google and their Play Store. This is a killer when you’re a startup needing to modify your product and push out new features all the time.

When Google is busy, your app release has to wait.

Got a bug you need to fix urgently? Or a feature that needs to get on your platform today? Going through Google or Apple means your new code will take anywhere from three hours to three days to go from a developer’s laptop to your users’ devices. Then there’s the chunk of time a developer has to take to get the code to Google or Apple in the first place. The OTA method, by the way, takes less than three minutes total.

That’s why we use React Native and Expo instead. Expo breaks your app down into dynamic bundles that don’t have to pass through Google’s process. OTAs are a go. And that means your product is too.

Flutter doesn’t work with EAS

Because Flutter doesn’t work with Expo, you can’t access OTA. Crucially, you also can’t take advantage of Expo Application Services (EAS), Expo’s new cloud service that automatically builds your app for you.

To make it clear why this is such a big deal for development, let’s talk about... pizza.

Building an app locally with XCode or Android Studio is like making a pizza from scratch. This error-prone process requires a lot of your time and uses up your laptops’ resources. You have to:

  • Buy the ingredients from the shop (establish your build environment)
  • Assemble them in the kitchen (resolve dependencies)
  • Bake your pizza in the oven for 20 minutes (build and compile)

When you build with EAS, it’s like having your favourite Italian restaurant deliver freshly baked pizza directly to your door. By leaving it to the professionals you get a better outcome and free up time to tackle more important tasks.

Because EAS is created and optimised specifically for React Native, it’s much easier to work with than other generic cloud services - and it certainly beats building locally. When you can’t use OTA because you’re changing native code, EAS gives you a way to dine like a native Italian instead.

Plus, instead of delivering your pizza (build) straight home (to your laptop), EAS can even send it directly to Google or Apple so you can skip the upload step altogether.

“The most powerful tool we have as developers is automation.”                     — Scott Hanselman

Read: "Expo OTA Updates Not Working? Here's How expo-ota-manager Can Save You Time and Hassle with OTA Updates."

Flutter doesn’t have much code in the bank

While React Native allows you to access the huge sweep of SDKs, or libraries of code, that come with Expo and other third party services, Flutter doesn’t have much to back it up.

Flutter has half as many third party libraries as React Native. This means there are fewer opportunities to use off-the-shelf functionality and often results in unnecessary (and costly) custom development.

The Flutter community is smaller too. Not many developers work with the Dart programming language, and the ones who do usually charge more since they went out of their way to learn it. Typically, the more obscure your language, the more expensive the developers.

So to be able to quickly throw code at an expert and tell them to get on with it, you’re going to need something that isn’t Flutter. React Native lets you quickly put more minds on the task as new challenges arise. And because React Native works with JavaScript, it means you can even have your web team support your app when you need them to.

Read: "How to set up a secure Supabase project."

To learn more of the benefits of React Native and Expo or to see how Morrow can build or support your platform, don’t hesitate to get in touch.

Want experts on your side to drive forward your project?
Need a second opinion on something?
We’re here to help!
Find out more
a photo of the Morrow team sat at a dinner table
More insights