Flutter continues to bring amazing updates with exciting features that help developers build apps more productively. Over the past couple of years, Flutter has gained much popularity in the mobile app development realm. Businesses are opting for newer and more advanced technologies to build apps to mark their presence in the online marketplace. Flutter just released its stable release Flutter 3.0, with app support for macOS and Linux desktops as well. Recently, about 3 months ago, Flutter announced support for Windows. Now, here is the latest and much-improved Flutter release with improvements to firebase integration, and new productivity and performance features. Moreover, this release has support for Apple silicon as well.
In this article, we are going to cover all the new features and improvements Flutter has incorporated into Flutter 3.0.
Introducing Flutter 3.0
Flutter started as an attempt to revolutionize app development. This was only possible by combining the iterative development model of the web with hardware-accelerated graphics rendering. And also the pixel-level control that was previously the preserve of games. Over the last four years since Flutter came into existence, Flutter has gradually built on these foundations by adding new framework capabilities and new widgets, deeper integration with the underlying platforms, a rich library of packages, and many performances and tooling improvements.
Flutter expanded iOS and Android with web and Windows support in previous releases. And now, Flutter 3.0 brings stable support for macOS and Linux apps as well. It requires more than rendering pixels to add platform support. It includes new input and interaction models, compilation and build support, accessibility, internationalization, as well as platform-specific integration. Flutter’s goal is to give you the flexibility to take full advantage of the fundamental operating system while sharing as much UI and logic as you choose.
Flutter 3 Release Date
Flutter 3.0 was released on May 11, 2022. It came up with a stable version for macOS and Linux stable support and performance improvements as well.
What’s New in Flutter 3.0?
As flutter aims to deliver an immersive development experience to its users, Flutter 3.0 came with the most beneficial features.
Firebase Integration Improvements
While building an app, there is a lot more involved than a UI framework. To build an app, developers need a comprehensive approach that helps build, release, and operate the app. This includes services like authentication, data storage, cloud functions, and device testing. Different services like Sentry, AppWrite, and AWS Amplify. Firebase provides app services to Google. Moreover, developer benchmarking studies by SlashData show that 62% of Flutter developers choose Firebase for their apps. So, Flutter has been working with Firebase to expand and better integrate Flutter as a first-class integration, lately. This includes bringing the Firebase plugins for Flutter to 1.0 and adding better documentation and tooling. And also new widgets like FlutterFire UI provide developers with a reusable UI for auth and profile screens.
Foldable Phone Support
Interestingly, Flutter 3.0 release now also supports foldable mobile devices. New features and widgets in Flutter 3.0 allow you to create dynamic and delightful experiences on foldable devices. This only was made after a collaboration spearheaded by Microsoft.
As part of this work, MediaQuery now contains a list of DisplayFeatures that describes the bounds and states of device elements. For example hinges, folds, and cutouts. In addition, the DisplayFeatureSubScreen widget now positions its child widget without overlapping the bounds of DisplayFeatures. Also, it has already been integrated with the framework’s default dialogs and pop-ups, making Flutter aware and responsive to these elements.
Updated Gradle Version
The generated files with Flutter tools now use the latest versions of the Gradle and Android Gradle plugins. You will need to manually bump the versions to 7.4 for Gradle, and 7.1.2 for the Android Gradle plugin for existing projects.
Flutter Casual Games Toolkit
Flutter is an app framework for most developers. Unfortunately, they lack knowledge about a growing community around casual game development, taking advantage of hardware-accelerated graphics support. Interestingly, Flutter supports them with open-source game engines like Flame. Flutter also aims to make it easier for casual game developers to get started. So, at I/O they announced the Casual Games Toolkit. It provides a starter kit of templates and best practices for developers along with credits for ads and cloud services. You can easily integrate Game Center on iOS and Google Play on Android devices.
Flutter has announced a new Dart SDK, version 2.17 with newer upgrades and additions. This release brings Flutter’s core themes of leading productivity and platform portability. It offers new language features that include enums with member support, improved parameter forwarding to superclasses, and more flexibility for named parameters. Flutter also improved tools with a new major version of package:lints. It is a tool to support checking Dart code against Flutter’s best practices. Also a broad update of core library API documentation with rich code samples. For improved platform integration. Flutter has new templates for using dart:ffi (native C interop) in Flutter plugins, experimental support for RISC-V processors, and support for signing macOS and Windows executables.
Material 3 Support in Flutter 3.0
Flutter 3.0 now supports Material Design 3, the latest design system from Material Design. Flutter 3 provides support for Material 3.0. This includes ‘Material You’ having features like dynamic color, an updated color system, typography, and many updated components. Additionally, new visual effects are introduced in Android 12 like a new touch ripple design and a stretch overscroll effect. In flutter 3.0, developers can adopt an adaptable, cross-platform design system that offers dynamic color schemes and updated visual components.
Lint Package Updates
Apps built with Flutter 3.0 with flutter create automatically enable the v2.0 sets of lints. Current apps, packages, and plugins are encouraged to migrate to v2.0. This tends to follow the latest and greatest best practices in the Flutter world, by running flutter pub upgrade –major-versions flutter_lints. Most of the latest lint warnings in v2 come with automated fixes. After you’ve upgraded to the latest package version in pubspec.yaml file, you can run dart fix —-apply over your codebase. This fixes most lint warnings automatically. However, some warnings still may require manual work. Apps, packages, or plugins that aren’t using package:flutter_lints yet can migrate by following Flutter’s migration guide.
Performance Improvements in Flutter 3.0
Quite noticeably, Flutter has improved the performance of opacity animations in simple cases. Particularly, when an Opacity widget contains only a single rendering primitive, the saveLayer method omits.
Before the Flutter 3.0 release, the admission policy for the raster cache only looked at the number of draw operations in a picture, assuming that any with more than a few operations would be good candidates for caching. Unfortunately, this turned out to be in the Engine spending memory to cache pictures that were actually very fast in rendering. This release introduces a mechanism that forecasts the rendering difficulty of pictures based on the cost of draw operations that it contain.
Moreover, Flutter plans to apply this optimization to even more scenarios in the upcoming releases.
Web Image Decoding
Flutter web now also uses the ImageDecoder API and automatically detects in browsers that support it. This API is available in most Chromium-based browsers (Chrome, Edge, Opera, Samsung Browser, and more). The browser’s built-in image codecs allow the decoding of images asynchronously off the main thread. This doubles the image decoding speed and never blocks the main thread, removing all jank that images cause, previously.
Lastly, we expect the same from Flutter which will keep improving the developers’ experience. There are a lot of interesting and useful features in Flutter 3.0 which are going to help developers build fast, productive, and beautiful apps.
Before we say goodbye, if you have any questions or suggestions, do comment below. FlutterDesk would be happy to be of help.