Google has unveiled its Flutter 1.0 “app engine”, bringing the software development kit (SDK) out of beta. The cross-platform application development tool allows users to create mobile apps for iOS and Android from a single codebase.
Among its features are “stateful hot reload” which allows developers to iterate on their apps in real time; familiar to web app developers, but a welcome fillip for mobile app devs; Google claims it makes development cycles three times more productive.
Cross-platform development has not previously had a great reputation.
While the benefits are clear – shorter development cycles (instead of developing two separate apps you only develop one, then share that code across operating systems) and cost efficiency – application performance has typically suffered as a result.
The risk: rather than one good app, you end up with two bad ones.
Flutter 1.0: New Bells, Whistles, Uses
Flutter is powered by the Skia 2D graphics engine that underpins Chrome and Android.
Google’s Tim Sneath, Group Product Manager for Flutter, said: “We architected Flutter to be able to support glitch-free, jank-free graphics at the native speed of your device. Flutter code is powered by the world-class Dart platform, which enables compilation to native 32-bit and 64-bit ARM code for iOS and Android.”
The project is an open source one with a “BSD-style” licence and comes with plentiful third-party plug-ins and widgets.
Software engineer Ashley Narayanen told Computer Business Review: “While the ability to target more than one platform is nothing new (see Xamarin, Cordova, React Native), the main interest here is that it’s a product of Google itself, rather than being a third party component. The other key point is that Flutter will be the primary development framework for Google’s next generation operating system Fucshia with is currently in gestation. Even frameworks such a Xamarin, while offering a native experience do suffer from the pain of cross-platform targeting as not 100 percent of components can be reused across both platforms (iOS and Android).”
He added: “Flutter is also designed to support Google’s ‘Material’ design language as well. That makes heavy use of shadows and other effects so it does make a point of using native hardware graphics acceleration on both platforms so it’s more capable of handling such workloads.”
Big Guns Adopting It, Says Google…
Abbey Road Studios, Alibaba, Capital One, Groupon, JD.com and Tencent are among the companies already developing or shipping apps with Flutter, Google said.
At a Flutter Live launch event in London on Tuesday, the mobile payment service Square announced two new Flutter SDKs that make it easy to accept payments for goods and services with Flutter, whether in-person using a Square payment reader or by taking payments inside a mobile app developed on the platform.
Animators 2Dimensions meanwhile announced the immediate availability of Flare, a tool for designers to create vector animations that can be embedded directly into a Flutter app and manipulated with code. Flare eliminates the need to design in one app, animate in another, then convert all of that to device-specific assets and code.
Developers taking to Hacker News to discuss their respective benefits described Flutter as “like lego” with the ability to simply compose the component hierarchy, without too much “fiddly” CSS. App design, in short, has been radically simplified.
One user, by contrast, described React Native as “the typical JavaScript dependency hell where things blow up at run-time with cryptical errors” while the UI development process with Xamarin (a cross-platform framework with C# and native platform libraries wrapped in a .NET layer) is widely regarded as challenging with the need to write a chunky amount of native code for platform-specific customisation.