Google first introduced its newest brainchild, Flutter, in 2017 at its annual I/O developer festival. Great—another cross-platform tool to consider, lamented the skeptics. Fast-forward deep into 2018 and the mobile app SDK is still generating buzz and emerging as a go-to framework for both Android and iOS users alike. So, why is Flutter stealing the shine from its cross-platform competitors like PhoneGap, Ionic, Cordova, Xamarin, and React Native? According to its architects, Flutter promises to build “high-performance, high-fidelity apps for iOS and Android, from a single codebase.” Is it time to add Flutter to your mobile app development toolbox? Let’s explore its specs and see if the SDK-hype holds water.
Less is More
Developers rejoice – Flutter touts one codebase to cover two platforms. It simply doesn’t rely on the platform as a foundation. Instead, Flutter boasts its own designs and uses a high-octane rendering engine to draw widgets (including Material Design). Hence, your apps can peacefully coexist on both iOS and Android platforms. Don’t want your iOS and Android mobile apps to be identical twins? Flutter allows you to build fraternal ones instead. By using themes to adopt different colors and dimensions, developers can preserve the integrity and functionality of the app on both platforms but still differentiate the aesthetic.
One app + two platforms = less testing. Go ahead, QA teams – rejoice with the developers. With one codebase, Flutter minimizes the number of tests that must be written. So, QA specialists can ostensibly streamline their processes by checking one app (assuming only cosmetic differences exist between the iOS and Android versions). Additionally, Flutter offers its own SDK testing framework and provides APIs to help you with unit tests and integration.
Now You’re Speaking My Language
With Flutter, iOS and Android mobile apps are written in Dart, a Google-developed, object-oriented language that could best be described as a first cousin of Java in terms of look and ease of use. Novice coders, fret not. If you have experience using C++, C#, or Java, you should be able to master the nuances of Dart in less than a week. Dart fans praise the language for its simplicity and clean syntax.
Flutter’s Dart-based mobile app development satisfies your need for speed as code is pre-compiled into a native ARM library. The robust Flutter library loads once the app is launched, and all input and renderings are then assigned to the compiled code. This process is akin to how many game engines work.
Hot Off the Press
The show-stealing Flutter feature for most mobile app developers is its hot reload. This uber-smart and lightning-quick developer cycle allows you to reload code on a running app while still retaining its state. In other words, you can change UI, add features, iterate, and even grab a sandwich all during the app’s runtime. Simply employ hot reload and voilà — changes are instantly applied. No need to trek all the way back to the home screen after every reload. Hot reload is a testament to Flutter’s powerful architecture, as it’s not an add-on, but rather part of the framework’s original design.
Wealth of Widgets
Flutter boasts “expressive, beautiful, and flexible UIs.” It’s a bold statement, but does the SDK deliver as promised on the design front? With its flush catalog of widgets, layouts, and themes to accommodate both the iOS (Cupertino) and the Android (Material Design) developer populace, Flutter puts its money where its mouth is.
While it comes with its own readily accessible UI elements that follow all platform specs, Flutter also gives mobile app developers the latitude to customize widgets or simply create their own. By adopting a singular UI framework, language, and library set, Flutter yields higher quality apps with ease of multi-platform publishing.
Make New Apps, But Keep the Old
Another perk of using Flutter is that you can run your new app on older devices without fear of compromising its look or functionality. Older versions of both iOS and Android systems can support Flutter at no additional cost to the user. Well, maybe not all stone-age systems make the cut, but devices that run on iOS 8 (or newer) and Android Jelly Bean (or newer) are in the clear.
To Flutter or Not to Flutter?
Sure, everyone in the mobile app development community is extolling the virtues of Flutter these days. But do the rewards outweigh the risks? At this point in time, the cross-platform SDK seems to be rooted on solid ground, but it’s prudent to consider the framework’s shortcomings before jumping on the Flutter-wagon.
For starters, Flutter is out of the beta woods, but still in Release Preview 1 phase. In other words, there is a likelihood that future updates are on the horizon, which may necessitate changes to your code. Additionally, despite the comprehensive support resources and libraries available for Flutter users, Google’s new framework hasn’t covered every functionality. Thus, there may be instances which require your developers to absorb the arduous task of building something from scratch.
If you’re not quite ready to dive head-first into the free, open-source Flutter pool, at least get your feet wet. You can access the tutorial and develop your own opinion….and maybe even your own app.