Introducing Flutter 3
The culmination of our journey to multiplatform UI development on phone, desktop, and web
We’re delighted to announce the launch of Flutter 3 as part of the Google I/O keynote. Flutter 3 completes our roadmap from a mobile-centric to a multiplatform framework, with the availability of macOS and Linux desktop app support, along with improvements to Firebase integration, new productivity and performance features, and support for Apple Silicon.
The journey to Flutter 3
We started Flutter as an attempt to revolutionize app development: combining the iterative development model of the web with hardware-accelerated graphics rendering and pixel-level control that were previously the preserve of games. Over the last four years since Flutter 1.0 beta, we’ve gradually built on these foundations, adding new framework capabilities and new widgets, deeper integration with the underlying platforms, a rich library of packages and many performance and tooling improvements.
As the product has matured, more of you have started to build apps with it. Today there are over 500,000 apps built with Flutter. Analytics from research firms like data.ai, along with public testimonials, show Flutter is used by a broad list of customers in many segments: from social apps like WeChat to finance and banking apps like Betterment and Nubank; from commerce apps like SHEIN and trip.com to lifestyle apps like Fastic and Tabcorp; from companion apps like My BMW to public institutions such as the Brazil government.
Today there are over 500,000 apps built with Flutter.
Developers tell us that Flutter helps build beautiful apps more quickly for more platforms. In our most recent user study:
- 91% of developers agreed that Flutter reduced the time it took to build and publish an app.
- 85% of developers agreed that Flutter made their app more beautiful than before.
- 85% agreed that it enabled them to publish their app for more platforms than before.
In a recent blog post by Sonos discussing their revamped setup experience, they emphasized the second of these:
“It is not an exaggeration to say that [Flutter] has unlocked a degree of “premium” unlike anything our team had delivered before. Most important to our designers, the ease with which new UIs can be built means that our team spends less time saying “no” to specs and more time iterating on them. If this sounds worth it, we’d recommend giving Flutter a try — we’re glad we did.”
Introducing Flutter 3
Today, we’re introducing Flutter 3, which is the culmination of our journey to fill out the platforms supported by Flutter. With Flutter 3, you can build beautiful experiences for six platforms from a single codebase, giving developers unparalleled productivity and enabling startups to bring new ideas to the full addressable market from day one.
In previous releases, we supplemented iOS and Android with web and Windows support, and now Flutter 3 adds stable support for macOS and Linux apps. Adding platform support requires more than rendering pixels: it includes new input and interaction models, compilation and build support, accessibility and internationalization, and platform-specific integration. Our goal is to give you the flexibility to take full advantage of the underlying operating system while sharing as much UI and logic as you choose.
On macOS, we’ve invested in supporting both Intel and Apple Silicon, with Universal Binary support that allows apps to package executables that run natively on both architectures. On Linux, Canonical and Google have collaborated to offer a highly-integrated, best-of-breed option for development.
A great example of how Flutter enables beautiful desktop experiences is Superlist, which launches in beta today. Superlist provides supercharged collaboration, through a new app that combines lists, tasks, and freeform content into a fresh take on to-do lists and personal planning. The Superlist team selected Flutter for its ability to deliver a fast, highly-branded desktop experience, and we think their progress to date demonstrates why it has proven to be a great choice.
Flutter 3 also improves on many of the fundamentals, with improved performance, Material You support, and productivity updates.
In addition to the work mentioned above, with this version, Flutter is fully native on Apple silicon for development. While Flutter has been compatible with M1-powered Apple devices since their release, Flutter now takes full advantage of Dart’s support for Apple silicon, enabling much faster compilation on M1-powered devices and support for universal binaries for macOS apps.
Our work for Material Design 3 is largely complete in this release, allowing developers to take advantage of an adaptable, cross-platform design system that offers dynamic color schemes and updated visual components:
Our detailed technical blog post expands on these and the many other new features in Flutter 3.
Flutter is powered by Dart, a high-productivity, portable language for multiplatform development. Our work on Dart in this cycle includes new language features that reduce boilerplate and aid readability, experimental RISC-V support, an upgraded linter, and new documentation. For further details on all the new improvements in Dart 2.17, check out the dedicated blog.
Firebase and Flutter
Of course, there’s more to building an app than a UI framework. App publishers need a comprehensive suite of tools to help you build, release, and operate your apps, including services like authentication, data storage, cloud functions, and device testing. There are a variety of services that support Flutter, including Sentry, AppWrite, and AWS Amplify.
Google’s offering for app services is Firebase, and developer benchmarking studies by SlashData show that 62% of Flutter developers use Firebase in their apps. So over the last few releases, we’ve been working with Firebase to expand and better integrate Flutter as a first-class integration. That has included bringing the Firebase plugins for Flutter to 1.0, adding better documentation and tooling, and new widgets like FlutterFire UI that provide developers with reusable UI for auth and profile screens.
Today we’re announcing the graduation of Flutter/Firebase integration to a fully-supported core part of the Firebase offering. We’re moving the source code and documentation into the main Firebase repo and site, and you can count on us evolving Firebase support for Flutter in lockstep with Android and iOS.
In addition, we’ve made major improvements to support Flutter apps using Crashlytics, Firebase’s popular real-time crash reporting service. With the updates to the Flutter Crashlytics plugin, you can track fatal errors in real time, giving you the same set of features that are available to other iOS and Android developers. This includes important alerting and metrics like “crash-free users” that help you stay on top of your app’s stability. The Crashlytics analysis pipeline has been upgraded to improve clustering of Flutter crashes, making it faster to triage, prioritize, and fix issues. And lastly, we streamlined the plugin setup process so that it only requires a couple of steps to get up and running with Crashlytics, right from your Dart code.
Flutter Casual Games Toolkit
For most developers, Flutter is an app framework. But there’s also a growing community around casual game development, taking advantage of the hardware-accelerated graphics support provided by Flutter along with open source game engines like Flame. We want to make it easier for casual game developers to get started, so at I/O today we’re announcing the Casual Games Toolkit, which provides a starter kit of templates and best practices along with credits for ads and cloud services.
Although Flutter isn’t designed for high-intensity 3D action gaming, even some of those games have turned to Flutter for non-game UI, including popular games like PUBG Mobile that have hundreds of millions of users. And for I/O we thought we’d see how far we could push our technology, so we’ve created a fun pinball game that is powered by Firebase and Flutter’s web support. I/O Pinball provides a custom table designed around four of Google’s favorite mascots: Flutter’s Dash, Firebase’s Sparky, the Android robot, and the Chrome dinosaur, and lets you compete with others for the high score. We think it’s a fun way to showcase Flutter’s versatility.
Sponsored by Google, powered by community
One thing we love about Flutter is that it’s not just a Google product — it’s an “everybody” product. Open source means that we can all participate and have a stake in its success, whether by contributing new code or documentation, creating packages that give the core framework new superpowers, writing books and training courses that teach others, or helping organize events and user groups.
To showcase the community at its best, we recently sponsored a Puzzle Hack challenge in collaboration with DevPost, offering developers the chance to showcase their skills by reimagining the classic sliding puzzle with Flutter. This proved a fantastic demonstration of how web, desktop, and mobile come together: now we can all play the games online or via the stores.
We put together this video to showcase some of our favorite submissions and prize winners; we think you’ll enjoy it:
Thank you for your support of Flutter, and welcome to Flutter 3!