Google created Flutter a number of years ago, with the aim to make a cross-platform software framework. Flutter’s biggest strength is that it can be used to build applications for Android, iOS, Linux, Windows, macOS, and even the web, and all from the same shared codebase. While building apps for Windows received stable support back in February, both macOS and Linux were still only in beta. Now that’s changing, as Google has announced Flutter 3 at this year’s Google I/O, complete with stable support for building apps for macOS and Linux.
Of course, cross-platform support for both of these new platforms requires more than just programs being able to run. They need to fit in with the rest of the experience, and they need to support specific features that may be unique, as well. That’s why Google is highlighting two things: the first is that Linux support helped by Canonical (the publisher of Ubuntu) and Google collaborating in order to “offer a highly-integrated, best-of-breed option for development.”
As Google puts it, Canonical is already developing with “Flutter for key shell experiences including installation and firmware updates.” What’s more, their Linux-specific packages “provide an idiomatic API for core operating system services including dbus, gsettings, networkmanager, Bluetooth and desktop notifications, as well as a comprehensive theme and widget set for Yaru, the Ubuntu look and feel.”
As for macOS, Google invested in supporting both Intel and Apple Silicon devices, with Universal Binary support that allows apps to package executables that run natively on both architectures.
Firebase and Flutter
Google’s Firebase is a pretty comprehensive set of development tools. Its goal is to make app development and maintenance easier, with features like detailed crash reporting, user analytics, authentication, and storage. According to Google, 63% of Flutter developers make use of Firebase in their apps, and the team has been trying to integrate Firebase and Flutter as a result. That integration is now better than ever, with improved documentation and tooling and new widgets such as FlutterFire UI which provides developers with reusable UI for auth and profile screens.
In addition, Flutter’s Crashlytics plugin has been updated so that developers can track fatal errors across users in real-time, with the same set of features that other iOS and Android developers would get. It’s much easier to set up and configure too.
Fundamental improvements to Flutter 3
Of course, Flutter 3 isn’t just about expanding the framework’s platform support. It introduces other things too, including support for Material Design 3. Android 12 saw the launch of Material Design 3, including the Material You color theming engine.
Material Design 3 isn’t the only fundamental improvement that arrives with Flutter 3. It now supports Apple Silicon natively — for both development and compiled output. Dart added support for Apple Silicon late last year, and Flutter can take advantage of it for much faster compilation on M1-powered devices.
As for Dart-specific changes, Google says that it has introduced three new language features that will aid developers. Those three features are enhanced enumerations, named arguments anywhere, and super constructors. They’ve also added executable signing, experimental RISC-V support, an upgraded linter, and new documentation. Google has a dedicated blog that you can check out for more information about Dart 2.17.