Flutter, Google’s massive cross-platform app development framework, has reached version 3, bringing Material You, Linux, & macOS support, and more.
Linux and macOS Flutter apps
Over the last few years, Google has steadily built up Flutter to be one of the most dynamic cross-platform development toolkits on the market. After starting with just Android and iOS app support, the framework can also officially be used to make apps for Windows, Web, and embedded devices.
With today’s release of Flutter 3, the labor of adding platforms is complete as developers on the stable channel can now build apps for macOS as well as Linux devices and expect first-class support. For Linux, this effort has been assisted by Canonical, developers of Ubuntu, who have been using Flutter to create core experiences within Ubuntu, including parts of the setup flow.
Meanwhile, part of supporting macOS is that both Flutter and the underlying Dart programming language now have native support for Apple Silicon. Better yet, you can ship Flutter apps in the Universal Binary format, allowing them to run effectively on both Apple Silicon and Intel based Macs. This Apple Silicon support also extends to developers, with the Flutter and Dart SDKs both now ready to run on the latest generations of Mac.
Material You & dynamic themes
At last year’s Google I/O, shortly after the company announced its then-upcoming Material You design language, the Flutter team confirmed that developers would be able to bring this third generation of Material Design to their own apps. Less than a year later, we now see the fruits of that effort, with Flutter 3 bringing a variety of new Material You widgets.
Beyond that, significant effort has gone into custom theme generation within Flutter 3. Similar to Android 12, it’s possible to automatically craft an app’s entire color scheme from a single starting color. Importantly, though, this capability is in no way limited to Android 12 and its wallpaper-based themes. Should you wish, your app can use just about any color as its baseline for a custom theme.
As is often the case, this latest release of Flutter also coincides with a new update for the Dart SDK, bringing the language to version 2.17. These improvements to Dart are available for all developers, regardless of whether you use Flutter.
The hallmark feature of Dart 2.17 is the ability for developers to extend enums as well as override its default functions. This allows enums to act quite a bit more like custom written classes, should you see fit.
In an effort to reduce boilerplate code, Dart 2.17 also introduces the idea of “super parameters” when creating a class that inherits from another class. In the common example of Flutter widgets which always pass on the “key” parameter to the “Widget” class, this should save quite a few lines of code and make your code much easier to read.
First-class Firebase support
In a survey conducted of Flutter developers, it was found that a massive 63% of them use Firebase in their applications. To best reflect that reality and Flutter’s continued growth, the suite of Firebase plugins for Flutter are now “graduating” into a “fully-supported core part of the Firebase offering.” That means those plugins now fall under Firebase’s repo and website.
Additionally, there has been effort toward creating new Flutter widgets that make it easier to use Firebase in your app. For example, there’s easily reusable UI for logging into an app via Firebase Authentication.
Alongside the major changes in Flutter 3, Google is sharing the Casual Games Toolkit, a new suite of guidelines, templates, tutorials, and credits for game developers who want to use Flutter. Up until this point, the Flutter team’s focus had been on assisting the creation of apps, not games; so this is an exciting bit of growth for the framework.
To showcase Flutter’s potential for small, casual games, the delightful I/O Pinball game released earlier this week was created with Flutter and Firebase. For those wanting to dive a bit deeper into using Flutter for game development, you may also want to look into the third-party Flame game engine.
What’s next for Flutter?
Now that Flutter 3 has reached the six major platforms — Android, iOS, Web, Windows, macOS, and Linux — the big question some may have is “what’s next?” We got the chance to speak with Tim Sneath, Google’s Product Manager for Flutter, who shared that creating support for those platforms was intended to give Flutter a strong foundation to build upon.
Now that the foundation has been lain, Google will continue to build upon it in two key avenues: improving developer productivity and expanding what Flutter can do. According to Sneath, the newly announced Flutter Casual Games Toolkit is a prime example of what the latter will look like, with more new expansions to come.
FTC: We use income earning auto affiliate links. More.