About two years ago TTT chose React Native as our primary app development framework. Since then, we’ve successfully developed around 12 apps for mobile and web projects.
What you might not know is that, before going with React Native, we considered using Flutter, Google’s open-source SDK. Unfortunately, Flutter wasn’t viable at the time partly because it had a small community and didn’t support web development.
In the years since then, Flutter’s community has grown a lot. Moreover, at the Flutter Interact 2019 conference this past December, Google made a landmark announcement. They were launching beta web support for Flutter!
With this key feature in place, the time might be right to reevaluate if Flutter is better than React Native for building cross-platform apps.
Why adopt Flutter in 2020?
Many people have discussed the differences between Flutter and React Native, especially in how it relates to developers. As someone who oversees a team, coordinates projects and reflects on processes at TTT, I would like to give my perspective.
Here are several key considerations when comparing Google’s Flutter to Facebook’s React Native.
Flutter offers native performance in applications, something that React Native is still behind in. Although React Native has made some improvements in the latest releases, this is a key aspect that Flutter does better with than React Native.
Due to its native performance, Flutter provides a better UI and smoother animations. This means Flutter can craft more powerful and more efficient app experiences with less testing and in less time.
Another significant benefit of Flutter’s performance is built-in Continuous Integration and Continuous Delivery (CI/CD). While React Native is capable of CD/CI, Flutter has documentation directly from Google which is more frequently updated.
All of this said, nothing is perfect. Even the most simple and straightforward development tools benefit from having a community that works together to solve issues.
The growing community of developers and enthusiasts
StackOverflow is every developer’s best friend.
This doesn’t change when working in a team. Fortunately, Flutter has a rapidly growing community base with a flourishing library and packages ecosystem.
In Github’s 2019 State of the Octoverse report, Flutter was ranked the second-fastest growing open-source project with a 279% increase in contributions.
If a dev needs community support to troubleshoot an issue, they could ask a question on StackOverflow. Currently, new questions tagged with ‘flutter’ often receive several responses within hours. With this kind of community support, week-long troubleshooting could be resolved in a single workday.
Right now, there are over 34,000 Flutter related questions on StackOverflow going back as far as 2015. While there are over 67,000 questions related to React Native, you might expect fewer questions from the Flutter community for a few reasons. Flutter is newer and it also has more built-in infrastructure, which simplifies certain uses reducing the need for community support.
I expect to see an influx of questions on StackOverflow and other online communities as Flutter’s web support gets rolled out into a full release.
Flutter is no longer just an alternative for hybrid mobile development. It’s an alternative for building apps for mobile and web.
In the words of Google itself, “web support for Flutter enables existing mobile-based applications to be packaged as a PWA (Progressive Web Application) for reach to a broader variety of devices, or to provide a companion web experience to an existing app.”
Unfortunately, Flutter isn’t suitable for deploying web apps to production while Flutter for Web is in beta – but maybe soon! Web support has been on Flutter’s roadmap for years so it’s exciting to see concrete steps towards a full stable release.
That said, some simple beta projects do tackle this. For example, the New York Times’ Ken Ken puzzle was done using Flutter for Web. Try it out here.
Although Google’s mission for Flutter is to be “the best framework for developing beautiful experiences for any screen,” it isn’t there quite yet.
While the development speed, expressive and flexible UI (due to its native performance) and community support for Flutter outperform that of React Native the web capabilities must be stronger before a company like TTT could consider making a full switch over.
Will Flutter take the lead in the future? Well, it’s certainly possible. I’m excited to see what the future holds!
If you’re a developer curious about Flutter, I would encourage you to try it out yourself. Google Developers Codelabs has tutorials on getting started making your own app.