On March 3 there was the Flutter Engage, an event organized by the Flutter team to reveal the news they have focused on in recent months and say that it was an extraordinary event is an understatement, and in this article, I want to bring you all the news announced.
Flutter 2 is a major upgrade from the previous 1.22 version and it ships support for five operating systems: iOS, Android, Windows, macOS, and Linux. In addition to this, support for Flutter Web has arrived at its stable version. So when you build an app with Flutter you can target 6 different platforms and this is pretty amazing!
The Flutter team works very hard to ship beautiful experiences, you can write Apps that runs fast on every platform thanks to the compilation to machine code and follows the latest UI trends, by targeting multiple platforms you can boost the productivity of your team, remove feature disparity between platforms and with hot reload you can see results immediately. Lots of customers from all around the world use everyday apps built with Flutter, there are already over 150,000 Flutter apps out there on the Play Store, and Google itself is pushing a lot on Flutter apps like Stadia, Google Pay, Google Analytics, Google Admob and Ads.
To demonstrate an App running on all 6 platforms that Flutter 2 supports, gskinner release Flutter Folio where you can find native controls and custom elements, screen size & input devices that adapt to the platform, deep-link & browser support and all the source code it's open-source with a MIT license.
This is probably the second-best announcement of the day because now you can create production-quality apps with full support for the web. As said early Web is supported as device target so you can create apps that truly are web apps, now your app built for iOS and Android can run on the browser too. Flutter is perfect for Progressive web apps (PWAs), Single page apps (SPAs) and obviously bringing existing Flutter mobile apps to the web.
Under the hood, the Flutter team made lots of improvements on the stability and performance of the apps by a new CanvasKit-powered rendering engine built with WebAssembly, support for custom URL so users can reach the app with just one click, support for multiple form factor from the mobile to the desktop, support form scrollbars that can be controlled by a mouse or keyboard, support for accessibility to navigate a Flutter web app and much more.
Desktop and Embedded
Lots happened also on these platforms with collaboration with Canonical, Microsoft, and Toyota to bring Flutter apps on desktop and embedded devices.
Canonical said that now Flutter is the default choice for future desktop and mobile apps and they are developing the Ubuntu installer in Flutter so I think that It's a bold move from Canonical because the installer is the first software used in a distro so they are working very hard to bring a rock-solid and beautiful experience.
Microsoft also started a collaboration to offer high-quality Windows support in Flutter, by releasing contributions to the Flutter engine that support foldable Android devices. On devices like that user can interact with the app by taking advantage of the dual-screen setup with a side-by-side experience or use only one screen by closing the foldable device and the app must react correctly when the user switch from one mode to another.
Toyota also chooses Flutter for its next generation of infotainment systems because of its high performance and consistency of experience, fast iteration, and developer ergonomics as well as smartphone-tier touch mechanics.
Dart & Null Safety
Sound Null Safety is a super useful addition to the language because lets to distinguishing nullable types from non-nullable types, now you can prevent null error crashes at compile-time and develop more stable apps that eventually crash on development but not when used in production. This feature can be added incrementally within our code as we refactor it and there is also a tool called
dart migrate to help us make the changes (more on this article). By enabling null safety the compiler can optimize your code much better because it doesn’t need to check for nulls every time you declare a variable, this optimization can also decrease app size and run your app faster.
Lots of packages for Firebase like Core, Authentication, Cloud Firestore, Cloud Functions, Cloud Messaging, Cloud Storage and Crashlytics, have been updated to support null safety, and now documentation contains common usage tutorials for Android, iOS, web, and macOS.
Flutter team also announced that now there's a beta release for Google Mobile Ads, with support for AdMob and AdManager and a variety of ad formats, including banner, interstitial, native, and rewarded video ads that you can use as a source of monetization within the applications developed in Flutter.
I think that this event puts a HUGE focus on Flutter and how this can be used to develop an incredible amount of apps for many different platforms starting from a single code base, apps that are fast and stable ready for all scenarios from mobile to web via the desktop.
- Announcing Flutter 2
- Google launches Flutter 2.0 to target developers across all platforms
- What’s New in Flutter 2
- Flutter Engage: A roundup of new announcements
- Flutter Engage Brings Flutter 2, Web in Stable, Infotainment & More!
- Flutter Engage Recap
- Flutter 2 Is Here: All You Need to Know After Flutter Engage