We recently sat down with Rocket Farm Studio senior developer Brian Kayfitz who shared his insight about creating apps with Flutter. Brian calls Flutter a “zero compromise multi-platform solution” for app development. He also gave us food for thought about the comparisons between Flutter vs. React Native (RN) and Flutter vs. Native. So pull up a chair, and let’s learn a thing or two from our pro developer.
What is Flutter?
Released in 2017, Flutter is Google’s open-source UI software development kit. It’s used to develop cross platform applications for Android, iOS, Linux, macOS, Windows, Google Fuchsia and the Web, all from a single codebase. With Flutter, you can write the same codebase for multiple platforms simultaneously.
Flutter is the latest in a long line of multi-platform solutions for apps, such as Apache Cordova / PhoneGap, React Native and Appcelerator. Brian has worked with several of these platforms in the past.
According to Brian, “Native development isn’t for novices, but the end results are highly effective and elegant. Hybrid development may be faster, but depending on the platform, the results may be far from ideal. Flutter does a great job at providing the best of both worlds. Flutter is easy to work with, so you finish tasks quickly, and the end product quality is as good as Native.”
Flutter vs. Native – Round 1
Flutter provides a superb developer experience since you use Dart, a strongly typed language equivalent to Swift/Objective-C (iOS Native) and Kotlin/Java (Android Native). For Native developers, the transition is seamless.
Brian especially likes Flutter’s hot reload feature. He says, “For developers, it’s a game changer. Hot reload enables code changes to be reflected in real time once you hit save. With Native, all changes require stopping the app, rebuilding and recompling steps. Hot reload saves you 2-3 minutes on each change. Tweaks like color changes and font updates get implemented instantly.”
Brian also tells us for existing Native applications that need a new feature, you can embed Flutter views in Native apps and vice versa. All this functionality enables shorter iteration times and the freedom to experiment and innovate faster.
How much faster? Brian says, “I feel Flutter has accelerated my code writing velocity by 10x, if not more.”
Flutter Vs. Native – Round 2
Since Flutter uses Dart, it can run in an interpreted jit-mode which is how the hot reload feature works. Also, Brian tells us that since Dart is a type-safe language, it gives you improved insight (annotations, etc.) into your app for things like debugging.
When you’re done writing in Dart, you can switch it to compiled mode which makes it just as optimized and as fast as Swift and Kotlin. This makes apps built on Flutter indistinguishable from Native apps.
“I would challenge anyone to tell the difference between an app built on Flutter versus one built on Native,” says Brian.
Flutter Vs. React Native – Head to Head
When Brian last checked, Flutter had surpassed React Native on GitHub in terms of stars among developers. Both platforms have a strong support and community base. Brian likes Flutter’s documentation more than RN documentation. He also feels Flutter’s documentation is better than Apple Swift which may require third party guidance to figure things out. Brian also appreciates Flutter’s additional support content, such as YouTube videos, online articles and conference talks.
“The Flutter team is very approachable,” says Brian. “I’ve reached out to Tim Sneath, the company’s Product Manager, and he’s been really helpful. Flutter is very pro-community. They are even willing to feature your apps built on their platform.”
Flutter Security & Limitations
As far as security goes, Brian says, “Flutter is simply a UI front end building tool. The real security backend sits behind Flutter. And all the security concerns available in Native are supported by Flutter.”
What about Flutter’s limitations? As per Brian, Flutter wouldn’t be the best choice for augmented reality (AR) projects or anything highly system intensive for that matter. Flutter doesn’t do 3D well. Instead, you can write the 3D component natively, and then use Flutter to do the non-3D work. For example, in Google Stadia, the player interaction is written in Native, and the rest was created with Flutter.
The Future of Flutter
The Flutter target ecosystem keeps growing. It already includes iOS, Android, Windows, macOS, Linux and Web. Toyota uses Flutter in their car software builds, and Sony is looking into Flutter as the interface for PlayStation. Meanwhile, Google is not-so secretly developing the Fuchsia OS, which may be the successor to Android. The user interface framework for Fuchsia is Flutter. You can even build simple 2D games with Flutter using their Flame Engine.
The Benefits of Using Flutter
Here’s why developers love Flutter:
- True cross platform development – Writes the same codebase for iOS, Android, Web and desktop all at once.
- Speeds up development. Easy to use.
- Flutter uses Dart, a type-safe language.
- You can embed Flutter views in Native apps and vice versa.
- The Flutter support resources and community are outstanding.
Here’s why Flutter is great for business:
- Accelerates product development lifecycles.
- Enables dynamic and flexible product iteration.
- Provides more room for product experimentation & innovation.
- Shortens time to market.
- Keeps your developers happy.
The Choice is Yours
At Rocket Farm Studio, our developers are experts in Flutter, React Native and Native development. Since no two projects are alike, we pick the best platform for the job at hand. We nail down the technical aspects of your app development and provide the expertise to transform your product into a growth machine. Our effective Product – Market Fit approach takes you from great idea to market success faster.
Want to learn more? Contact us today.