At Flutter Live in London today, Google launched version 1.0 of Flutter, the company’s open source mobile UI framework that helps developers build native interfaces for Android and iOS. Google also revealed several new third-party integrations and previewed some new features coming soon.
Flutter went through six previews before today’s 1.0 release. It was first announced as an early alpha at Google’s I/O developers conference in May 2017. The first beta arrived in February, followed by two more, and then two release previews. Meant to compete with frameworks like Facebook’s React Native, the library is designed to combine the performance and platform integrations of native mobile with the rapid development and multi-platform reach of portable UI toolkits. Flutter apps are built using Google’s Dart programming language.
Google pitches Flutter as an app engine that you can either embed into an existing app or use to build an entirely new app. The team highlights four Flutter characteristics:
- Flutter enables you to build beautiful apps. Flutter lets you control every pixel on the screen, and its powerful compositing capabilities let you overlay and animate graphics, video, text and controls without limitation. Flutter includes a full set of widgets that deliver pixel-perfect experiences on both iOS and Android. And it enables the ultimate realization of Material Design, Google’s open design system for digital experiences.
- Flutter is fast. It’s powered by the same hardware-accelerated Skia 2D graphics engine that underpins Chrome and Android. 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.
- Flutter is productive. Flutter introduces stateful hot reload, a revolutionary new capability for mobile developers and designers to iterate on their apps in real time. With stateful hot reload, you can make changes to the code of your app and see the results instantly without restarting your app or losing its state. Stateful hot reload transforms the way developers build an app — and in user surveys, developers say it makes their development cycle three times more productive.
- Flutter is open. Flutter is an open source project with a BSD-style license, and includes the contributions of hundreds of developers from around the world. In addition, there’s a vibrant ecosystem of thousands of plug-ins. And because every Flutter app is a native app that uses the standard Android and iOS build tools, you can access everything from the underlying operating system, including code and UI written in Kotlin or Java on Android, and Swift or Objective-C on iOS.
Flutter 1.0: stable channel
With the 1.0 release, Flutter has gained a stable channel, in addition to the existing beta, dev, and master channels. The stable channel updates less often than other channels, as you might expect — Google hopes to update it on a quarterly basis. If you already have Flutter installed, just type the command
flutter upgrade to get the latest build. If you don’t, follow the getting started guide for Windows, macOS, or Linux.
Since the first beta, the Flutter team has rounded out support for pixel-perfect iOS apps with new widgets, added support for nearly 20 different Firebase services, improved performance, reduced the size of Flutter apps, and closed out thousands of issues.
Flutter 1.0 also includes the latest version of the Dart platform (Flutter apps are built using Google’s Dart programming language). Dart 2.1 offers smaller code size, faster type checks, better usability for type errors, and new language features to improve productivity when building user experiences.
Add to App and Platform Views
The primary focus of the 1.0 release has been bug fixes and stabilization. Still, Google today is previewing two major new features for developers to try before they ship in February 2019.
Add to App makes it easier to incrementally adopt Flutter, for when you don’t have the luxury of building a Flutter app from scratch. The team has made it easier to share assets between Flutter and host code, as well as reworked the tooling for attaching to an existing Flutter process without launching the debugger with the application. More information is available on GitHub.
Platform Views meanwhile introduces widgets (AndroidView and UiKitView) that embed an Android or iPhone platform control in a Flutter app. Android support has been around for a couple of months, but now is expanding to iOS, and the team has started to add plugins like Google Maps and WebView. Like other components, platform view widgets participate in the composition model, which means that you can integrate them with other Flutter content.
Google says new developers are continuing to adopt Flutter. The company notes that thousands of Flutter-based apps made it to the Apple App Store and Google Play over the past 10 months, even before version 1.0. Internally, Flutter is being used at Google for a wide array of products, with Google Ads already having switched to Flutter for its Android and iOS apps. Other big names developing or shipping apps with Flutter include Abbey Road Studios, Alibaba, Capital One, Groupon, Hamilton, JD.com, Philips Hue, Reflectly, and Tencent.
Some companies are not just using Flutter, but helping developers build with it. At Flutter Live today, Square announced two new Flutter SDKs that make it easy to accept payments for goods and services with Flutter (including in-person using a Square payment reader and by taking payments inside a mobile app). Also at the event, 2Dimensions announced the availability of Flare, a new tool for designers to create vector animations that can be embedded directly into a Flutter app and manipulated with code. Finally, Nevercode announced Codemagic, a new tool that makes it easy to automate the process of building and packaging Flutter apps for both Android and iOS from a single automation.
Also at Flutter Live today, Google announced it is experimenting with running Flutter on the web under codename Hummingbird. So far, the Web Engine is able to render most of the Flutter Gallery, including the Material widgets, Material Theming, and the Shrine and Contact Profile demo apps (the Cupertino widgets have not been ported). Details are available here and Google says it plans to open-source Hummingbird soon.
For more information about Flutter, Google offers a slew of resources, including documentation, code labs, common samples, technical videos, newsletters, articles, developer shows, discussion groups, chat rooms, and community support.