What Drives Choosing Flutter Over React Native?
For those looking at open-source options for applications, this can mean choosing between Flutter and React Native. Though there are pros and cons with each, and React Native has been around longer, Flutter may be the better choice right now.
And if you looking to launch applications but can’t get the development team you need. And you’ve been told your runway is now shorter in anticipation of a recession and rising inflation. Your software development framework may play a bigger role than you expect.
Many mobile-first companies that are considering cross-platform solutions are choosing Flutter instead of React Native. For example, listen to what Sam Moore of Betterment had to say on Venturi’s Voice podcast earlier. And according to the 2021 State of Developer Ecosystem survey from JetBrains, Flutter has “surpassed React Native to become the most popular cross-platform mobile framework.” What’s driving that?
Speaking talent’s language
Take a step back from talent for a moment, and ask what the factors are driving your choices between open-source development kits for your multi-platform mobile development. How is that influencing your ability to grow? Here are eight questions to consider:
- Do we want to be multi-platform (iOS, Android, Desktop, Web, Embedded), or is mobile cross-platform (iOS and Android) sufficient?
- Which options give us the best performance and quality?
- Which option is growing and provides the best long-term benefit?
- What approach has the best developer experience?
- What is the learning curve and impact on productivity?
- Will we be able to train/hire effectively?
- Will our team benefit from streamlining our engineering management process?
- Do we value building and learning in a community-focused manner?
Let’s go through these questions in a bit more detail.
Cross-platform and multi-capability
Do you need to be cross-platform? React Native has helped popularize the cross-platform approach. But Flutter’s multi-platform ability to go beyond mobile to include Web, Mac, Windows, Linux, and more has been a significant advancement and selling point. Consider multi-capability dimensions as well. Can a development kit be useful for more than building apps that target different screens?
Here, Flutter enables developers to expand beyond traditional app development. They can move into areas that may have required entirely new workstreams and tooling earlier. These include games, backend code, and experiences for embedded devices. Flutter uses familiar tooling without requiring fluency with a new tech stack.
You can then program on a Raspberry Pi, like this project by Flutter GDE Roman Jaqeuz,get a game underway with 2D effects and physics, or even advance an infotainment system in a motor vehicle.
Further, with so much change in devices, the platform independence of Flutter is a big de-risker. As David DeRemer at Very Good Ventures points out – “Flutter is about platform ‘independence’ as much as it is about ‘multi-platform.’” He says you can create a single codebase and deploy it on any platform that can run the Flutter engine.
This is important because if you’re a hardware startup and your device has a screen user interface, but you’re early in the development phase and you haven’t finalized your OS, what do you do? Do you go with Linux, Android, or possibly Windows? That decision doesn’t have to be a gating factor that slows you down, and you can change your OS later if needed.
Catching up
Insiders say React Native has been catching up and has fixed a number of areas where Flutter has been out ahead.
Commentator and programmer Shalitha Suranga wrote last year, “Flutter apps exhibit great performance improvement over React Native applications due to blazing-fast Dart-to-Native binary communication. React Native communicates with native APIs via a JavaScript bridge.
The JavaScript bridge concept doesn’t perform well for all development requirements. As a result, the developer community started criticizing React Native since it showed poor performances on low-end devices and drained batteries so fast due to above-average resource usage.”
But Suranga reports React Native has been busy catching up and may be becoming more viable again. That may be true, which leads us to teams and efficiency.
A rallying point for streamlined teams
With Flutter, teams don’t need to be organized around platforms. You can focus on features, which is helpful for mobile but also for improving efficiency with web and other platform teams. Organizations building native apps often have separate teams for iOS and Android, and yet others have teams for web and desktop. Flutter teams can easily collaborate and work on the same codebase, and the platform is no longer the central organizing factor.
This single team streamlining is built for what’s ahead, and with a vast ecosystem, devs can find high-quality open-source tools and support from well-known brands like Canonical and Microsoft.
While React Native teams are also more streamlined with respect to mobile, Flutter’s multiplatform nature means the streamlined efforts of a team can expand to nearly any platform.
Which option is growing and maturing best?
You’ve probably heard the words “React Native” for longer and more persistently than “Flutter.” And it’s easy to assume the pool of developer talent is deeper on the React Native side, given its history.
That being said, to date, more than 500,000 apps have been built with Flutter. Web and desktop apps are likely to follow suit now that Flutter is officially stable for web, Windows, macOS, and Linux. The release of Flutter 3.0 and Dart 2.17 came with updates that deliver stability and maturity. So, Flutter’s now stable for six platforms, including Linux, macOS, iOS, Android, web, and Windows. There’s advanced support, new lint rules, performance improvements, and Material Design 3 support.
While exact usage metrics are hard to come by, the Flutter community points to trends on GitHub and StackOverflow to illustrate its rapid growth relative to other alternatives.
Building and learning in the open
React Native is open source and boasts a strong operations support system (OSS) network thanks to JavaScript.
That being said, looking at the source code, developers can see exactly how Flutter works. If you run into a problem, you can open an issue on the repo, and the Flutter team promptly responds. Flutter maintains an up-to-date roadmap, and they deliver annual updates on the strategy for the UI toolkit. There are no surprises. Teams can be confident that what they see is what they get.
There’s an extensive global community of other passionate developers who continually use open-sourcing packages and content. Find a helpful open-source package on pub.dev and check out this list with favorites.
What about Dart?
RedMonk shows Dart is now on the playing field with JavaScript and Python, which then plays a role in Flutter. According to RedMonk analyst James Governor “Dart is, like so many technologies, a 10-year overnight success story.” Dart is easy to learn, especially if you’re coming from JavaScript or Swift.
Dart is more than just the language powering Flutter. It’s on the server. With solutions like Serverpod and Alfred, Dart’s full-stack capabilities are growing. Open-sourced Dart Frog has now emerged as a popular backend framework. It can be used to set up a simple backend, create middleware, and interact with a legacy backend. See what Felix Angelov at Very Good Ventures had to say about Dart Frog’s stability in August.
This provides a unified tech stack with shared tooling and models. With Dart Frog, developers familiar with Dart aren’t limited to building for the front end.
Here we go!
Doing more with less is becoming the watchword for the year ahead. But you need a critical mass of talent that can carry your digital initiatives forward, thus carrying the business forward. That’s why paying attention to the tools you’re using is important.
Are they allowing your team to do more, more efficiently, and without burning them out? And does the sophistication of your operation and your development process create a halo around what you’re doing and attract more of the right people? The answers can help you avoid the fate of others panicking around you.
Featured Image Credit: Photo by ThisIsEngineering; Pexels; Thank you!