This article was first published on the public account Flutter.

Introduction Flutter1.0 stable was finally released last night. We are happy about it. For developers, having a stable version is a bit of a relief. This article mainly introduces some functions and related tools of Fllutter1.0.

At Flutter Live today at 1:45 am Beijing time, the Google Flutter team announced the release of Flutter 1.0, the first stable release of The Google UI toolkit for creating a wonderful native experience for iOS and Android from a single code base.

Today’s cross-platform mobile development is full of compromises. Developers have to choose between building the same application multiple times for multiple operating systems, or accepting the lowest common denominator solution for portability in terms of native speed and accuracy. With Flutter, we believe we have a solution that gives you the best of both worlds: hardw-accelerated graphics and UI, driven by native ARM code, for popular mobile operating systems.

1. About Flutter

Flutter will not replace the traditional Apple and Android application models to build mobile applications; Rather, it is an application engine that you can embed into an existing application or use for a brand new application.

We consider the characteristics of Flutter from four dimensions:

1. Flutter allows you to build beautiful applications

Google wants designers to be able to provide their full creative vision without being forced to cut costs by the constraints of the underlying framework. Flutter allows you to control every pixel on your screen and its powerful composability allows you to overlay and animate graphics, video, text and controls without limit. Flutter contains a full set of widgets to provide a perfect pixel experience on iOS and Android. It could eventually enable Material Design, Google’s open Design system for digital experiences.

2, Flutter quickly.

It is powered by the hardware-accelerated Skia 2D graphics engine that supports Chrome and Android. Google has designed Flutter to support burr-free, jitter free graphics at your device’s native speed. Flutter code is powered by the world-class Dart platform, which compiles native 32-bit and 64-bit ARM code for iOS and Android.

3. Flutter is efficient

Flutter introduced stateful hot Reload, a revolutionary new feature that allowed mobile developers and designers to iterate over their applications in real time. With stateful hot reloading, you can change an application’s code and see the results immediately without restarting the application or losing its state. Stateful hot reloading has changed the way developers build applications – in user surveys, developers say it makes the development cycle three times more efficient.

Flutter is open source.

Flutter is an open source project with a BSD-style license that includes contributions from hundreds of developers from around the world. In addition, there is a vibrant ecosystem of thousands of plug-ins. Because each Flutter application is a native application using 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.

Put it all together, combine it with Visual Studio Code, Android Studio, IntelliJ IDEA or the best-in-class tools of your programmer editor of choice, You have Flutter, a development environment that builds a good native experience for Android or ios from a separate code base.

2,Growth and momentum

Google announced the first beta of Flutter at Mobile World Congress ten months ago, and we are excited to see how quickly it has been adopted by the wider community, as evidenced by the thousands of Flutter apps that have been released to Apple and Apple. Google Play was stored even before 1.0 was released. It is clear that developers are ready to adopt a new approach to UI development.

Within the Flutter team, Flutter is being used on Google for a variety of products, and Google ads have switched to Flutter for their iOS and Android apps. Even before 1.0, a wide range of global customers including Abbey Road Studios, Alibaba, Capital One, Groupon, Hamilton, JD.com, Philips Hue, Reflectly and Tencent were developing or publishing applications using Flutter.

Michael Jones, senior director of engineering from the Capital One team, says their experience with Flutter was as follows:

“We are excited about Flutter’s unique insight into high-performance cross-platform development. Our engineers appreciate the promise of rapid development and hot reload capabilities, and over the past year we have seen great advances in the framework, especially native integration.

“Flutter allows Capital One to imagine that Flutter is not an ‘iOS or Android-first’ fad, but a true mobile-first model. We are excited to see Flutter 1.0 and continue to be excited about the speed of progress and the engineering community. “

At a Flutter Live event early this morning, the popular payment service Square announced the launch of two new Flutter SDKS that make it easy to accept payment for Flutter goods and services, either using the Square payment reader or within a mobile app. Square showed an example of using the app payment SDK from Collins Family Orchards, a Family farm that grows and sells fruit at farmers markets in the Pacific Northwest.

Dean Papastrat, developer of the Collins Family Orchards app, knows something about this:

“I was mesmerized by the speed of all the animations and transformations in the production build. As a Web developer, the transition to Flutter was very easy and I couldn’t believe THAT I could build a fully functional application that could be paid for in a week. “

Also at Flutter Live, 2Dimensions announced the upcoming launch of Flare, an extraordinary new tool for designers to create vector animations that can be embedded directly into the Flutter app and manipulated using code. Flare eliminates the need to design in one application, set up animations in another, and then translate all this into device-specific assets and code.

Animations built with Flare can be embedded into existing Flutter applications as widgets, allowing them to participate in full synthesizers and overlap with other text, graphics layers and even UI widgets. Integrating in this way frees animation from the “black box” constraints of other architectures and allows for continuous collaboration between designers and developers until the application is complete. This tight integration between Flutter and Flare provides a unique compelling product for digital designers and animators who want to create highly perfect mobile experiences.

Another partner betting on Flutter is Nevercode, a fast-growing provider of continuous integration and delivery (CI/CD) tools for mobile applications. At Flutter Live, they released Codemagic, a new tool designed specifically for Flutter that makes the process of building and packaging Flutter applications for Android and iOS easy to implement with a single automation. Codemagic is now available in beta, allowing you to select a GitHub repository containing your Flutter project, create a continuous build process that runs your tests with just a few clicks, and generate binary application packages that can be uploaded to the Apple and Google Play stores.

We’ve put together a short video to highlight the range and variety of applications that developers have built with Flutter since beta:

Click here to enter station B for the video link

3,Flutter1.0 new features

Since the first beta, we have been working on adding features and polish to Flutter. In particular, we’ve improved support for pixel-perfect iOS apps with new widgets; Added support for nearly two dozen different Firebase services; It also works to improve performance and reduce the size of Flutter applications. We also closed thousands of questions based on community feedback.

Flutter also includes the latest version of the Dart platform, Dart 2.1, which provides a smaller code size, faster type checking, and better type error availability. Dart 2.1 also has new language capabilities to improve productivity when building user experiences. Developers who have adopted Dart 2.1 tell us that they can see significant speed gains simply by switching to the latest engine:

While the main focus of version 1.0 was bug fixes and stabilization, we are also rolling out previews of two major new features for developers to try out in preview mode, which we expect to release in the next quarter’s release in February 2019: Add to Applications and Platform View.

4,Added to the App

When we first built Flutter, we focused on the productivity of someone building a new application from scratch. But, of course, not everyone has luxuries that can be started in the name of cleanliness. When talking to some of our big customers, it became clear that they wanted Flutter to be used for new user journeys or functions in existing applications, or to be phased into Flutter from existing applications.

The architecture of Flutter supports this model well: after all, every Flutter application contains a host Android and iOS container. But we have been working hard to make the gradual adoption of Flutter easier by updating the templates, tools and guidelines for existing applications. It is easier to share assets between Flutter and host code. We also redesigned the tool to easily connect to the existing Flutter process without using the application to start the debugger.

We will continue to work to make this experience even better. Although many customers have successfully used our guidance on adding to applications, we continue to add examples and extend support for complex solutions. In the meantime, we added the instructions for Flutter to the existing app on our Wiki, where you can keep track of the rest of the work on the GitHub project board.

5,Platform Views

While adding to an application is a useful way to gradually introduce Flutter into an existing application, it can sometimes be useful to go the other way and embed an Android or iPhone platform control into a Flutter application.

Therefore, we have introduced platform view widgets (AndroidView and UiKitView) that allow you to embed such content on each platform. We’ve been previewing Android support for a few months, but now we’re expanding support for iOS and starting to add plug-ins like Google Maps and **WebView ** that take advantage of it.

Like other components, our platform-view widget participates in the composite model, which means you can integrate it with other Flutter content. For example, in the screenshot above, the float action button in the bottom right corner is the Flutter widget with a background color of 50% alpha. This fully demonstrates the unique architectural advantages of Flutter.

While this work is ready for developers, we continue to work on improving performance and device compatibility, so we recommend caution when deploying applications that rely on PlatformView. We will continue to actively optimize platform views and expect them to be ready in time for our next quarterly update.

6,Beyond the mobile end of the Flutter

So far, Flutter has mainly targeted iOS and Android. However, our ambition for Flutter is not just to expand from mobile devices to a wider range of platforms. In fact, Flutter was designed from the start to be a portable UI kit that is flexible enough to work wherever pixels are drawn.

Some of this work has already taken place in public. Flutter Desktop Embedding is an early stage project that introduces Flutter to Desktop operating systems, including Windows, MacOS and Linux. We also recently published informal details of using Flutter on Raspberry Pi as a way to demonstrate support for Flutter embedding to smaller devices that may not contain a full desktop environment.

This week, at Flutter Live, we got our first look at an experimental project we’re working on in our lab that significantly expands the places Flutter can operate.

Hummingbird is a Web-based implementation of the Flutter runtime that uses the capabilities of the Dart platform to compile not only native ARM code but also JavaScript. This allows the Flutter code to run on the standards-based Web without change.

Of course, mobile remains our top priority, and you can expect to see the bulk of Google’s work on these core mobile solutions in the coming months.