The next generation of Flutter for Web, Mobile and Desktop.

Today, Flutter 2 is officially released. As a major upgrade to Flutter, developers using Flutter 2 can distribute applications developed using Flutter to five operating systems using the same code: IOS, Android, Windows, macOS and Linux; Running on Web versions of browsers such as Chrome, Firefo, Safari or Edge, Flutter can even be embedded in Cars, TVs and smart home appliances.

The goal of Flutter is to fundamentally change the way developers think about building applications, by starting with the user needs that need to be fulfilled, rather than the platform they need to adapt to.

Flutter allows you to have a better user experience with a better design because it is fast and compiles source code to machine code, but Flutter supports hotload during development, so changes can also be made while the application is debugging and running and the results can be seen immediately.

Finally, Flutter is open and has thousands of developers who have contributed to it and extended it through various packages.

With Flutter 2, released today, Flutter officially expands from a mobile framework to a full platform framework. With Flutter 2, developers can make their applications directly applicable to a wide variety of platforms with very little change required.

There are now over 150,000 Flutter applications in the Play store alone, and each application can be upgraded free with Flutter 2, as they can now scale to Desktop and Web without rewriting.

PS: PERSONALLY, I think the feasibility of this is too low, pure blowing water.

Flutter has been used by major companies around the world, including their mainstream applications including wechat, Grab, Yandex Go, Nubank, Sonos, Fastic, Betterment and Realtor.com.

Flutter development will also be used internally at Google, where more than 1,000 engineers are building applications using Dart and Flutter. Many of these products have been released, including: Stadia, Google One and Google Nest Hub to name a few.

Several of Google Pay’s flagship mobile apps were changed to use Flutter a few months ago, and they have made significant improvements in productivity and quality. By unifying the code base, the team eliminated functional differences between platforms and cleaned up over a million lines of code. The Google Pay report also noted that its engineers were much more efficient, technical debt was significantly reduced, and unified distribution processes (such as security reviews and trials across iOS and Android) were implemented.

Flutter on the web

One of the biggest changes in Flutter 2 is the new support for Web production quality.

Flutter’s Web support is based on hardwired 2D and 3D graphics and flexible layout and painting apis, providing an application-centric framework that takes advantage of all the advantages that the modern Web has to offer.

This initial release focuses specifically on three application scenarios:

  • Progressive Web Applications (PWA) : Combine the reach of the Web with the capabilities of desktop applications.
  • A single page application (SPA) that loads once and transfers data to and from the network.
  • Bring the existing Flutter mobile application to the Web to enable shared code for both experiences.

In the past few months, while preparing for the steady release of Web support, there have been many improvements in performance optimizations, such as the addition of a CanvasKit-powered rendering engine built by WebAssembly.

Flutter Plasma is a Demo built by community member Felix Blaschke that shows how easy it is to build complex Web graphical experiences using Dart and Flutter that can also be run locally on a desktop or mobile device.

In addition, we have been expanding Flutter to provide the best Web platform. In recent months, Flutter has added auto-fill capabilities, control of address bar urls and routing and PWA manifests, and since Desktop Browsers are as important as mobile browsers, we also add interactive scroll bars and keyboard shortcuts. This has increased the compactness of the default content under desktop and added screen reading support accessible on Windows, macOS and Chrome OS.

desktops, foldables, and embedded devices

As Flutter is increasingly extended to other device types in addition to traditional mobile devices and the Web, today’s keynote highlights three partnerships that demonstrate Flutter’s portability.

Canonical first worked with us to bring Flutter to desktop, and the developers contributed a lot of code to support development and deployment on Linux.

At today’s event, the Ubuntu team showed a demo of early new installers rewritten by Flutter. For Canonical, they provide a stable and elegant experience across a variety of hardware configurations. Looking ahead, Flutter is the default choice for future desktop and mobile applications created by Canonical.

Second, Microsoft is continuing to expand its support for Flutter. In addition to providing high quality Windows support for Flutter, today Microsoft will also release support for the Flutter engine to support emerging foldable Android devices. These devices introduce new design patterns, with applications that can extend content or take advantage of dual-screen features to provide parallel experiences. The Surface engineering team showed off their success in a blog post.

Finally, automaker Toyota motor announced plans to build its infotainment system with Flutter to bring the best digital experience into vehicles.

The use of Flutter marks a departure from the past approach to developing in-car software. Toyota chose Flutter for its high performance and consistency of experience, rapid iteration and developer ergonomics as well as the touch mechanism at the smartphone layer. Through the use of Flutter’s Embedder API, Toyota was able to tailor the Flutter to the unique needs of on-board systems.

We are excited to continue working with Toyota and other companies to apply Flutter to cars, TVS, and other embedded devices, and we hope to share more examples in the coming months.

The evolving Flutter ecosystem

There are now more than 15,000 Flutter and Dart packages available: from companies such as Amazon, Microsoft, Adobe, Alibaba, eBay and Square; Key package support such as Lottie, Sentry and SVG, and Flutter Favorite packages such as sign_IN_with_apple, Google_Fonts, Geolocator and SQflite.

Today, we announced the beta release of Google Mobile AD Flutter, a new SDK that works with AdMob and AdManager and offers multiple AD formats, including banner ads, interfolds, native ads, and rewarded video ads.

We have been testing the SDK with several major customers, such as SuaMusica (the largest music platform for independent artists in Latin America), and now we are ready to open up the Google mobile AD Flutter SDK so that it can be adopted more widely.

Updates to some of the core Firebase services for the Flutter plugin will also be announced here: Cloud Functions, Cloud Messaging, Cloud Storage and Crashlytics, Includes support for reliable NULL security and a comprehensive review of Cloud Messaging packages.

Dart: The secret sauce behind Flutter

As described earlier, Flutter 2 is portable to many different platforms and devices, and transitions easily to support Web, desktop, and embedded platforms, thanks in large part to Dart, a Google programming language optimized for multi-platform development.

Dart combines a unique set of capabilities to build applications:

  • Undisputed portability, its compiler becomes high-performance Intel and ARM machine code on Mobile and Desktop, and provides rigorously optimized JavaScript output for the Web. The same Flutter framework source code compiles to all these targets.

  • Iterative development of stateful hot overload on desktop and mobile devices, with excellent language constructs for asynchronous, concurrent mode design.

  • With Google-level performance on all of these platforms, reliable NULL security ensures NULL constraints at run time and during development.

No other language can combine all of these features. Perhaps that’s why Dart is one of the fastest growing languages on GitHub.

PS: I think it’s just a war of words.

Dart 2.12 is available now and is our largest release since version 2.0 with null Safety support. Solid NULL security provides assurance at development and runtime by eliminating the dreaded NULL reference exception. Most importantly, this feature is not a major change: developers can gradually add it to their code at their own pace and use migration tools when they are ready.

Today’s updates also include a stable implementation of FFI, the ability for developers to write C-based API high performance code and Flutter interactions, the ability to write new integrated developer analyzer tools with Flutter, and many performance and size improvements that can further upgrade code without recompiling. For more information, check out the dedicated Dart 2.12 Announcement blog post.

Flutter 2: Available now

There is much more to be said about Flutter 2 than can be covered in this article.

In fact, the original list of merged PR is a 200-page document! Please visit the independent technology blog related to Flutter 2 for information about the many new features and performance improvements.

We also have a major Demo that shows everything we just mentioned, built in collaboration with gskinner, an award-winning design team based in Edmonton, Canada. Flutter Folio is a scrapbooking app designed for all devices.

The small-screen experience is designed to capture content; Large screens allow editing with desktop and tablet specific idioms; The Web experience is tailored for sharing. All of these tailored experiences share the same code base, which is open source.

If you haven’t tried Flutter yet, you are advised to do so. It will be a major upgrade to your app development experience. Flutter provides an open source toolkit for building beautiful and fast applications for mobile, desktop, Web and embedded devices from a single code base that can meet both Google’s demanding needs and those of our customers.

Flutter is free and open source, and we are excited to see the great applications that developers are building with Flutter 2!