What is new in Flutter 3.16, The latest Flutter stable release, version 3.16, marks another significant milestone for the popular framework. This release introduces Material 3 as the default theme, enhancing the visual appeal and user experience of applications. A notable addition is the preview of Impeller for Android, which is set to bring substantial performance improvements.
Developers will appreciate the new capability to add extensions for DevTools, expanding the framework’s flexibility and usability. This update is not just about technical enhancements; it also aligns with major updates to the Flutter Casual Games Toolkit, opening new avenues for game developers.
The Flutter community’s commitment and collaborative spirit are evident in this release. Over the past three months, an impressive 928 pull requests have been merged, thanks to the efforts of 145 community contributors. Remarkably, 40 of these contributors made their first commit to Flutter, showcasing the growing and diverse talent pool contributing to the framework’s evolution.
This release is packed with new features and improvements, a testament to the vibrant and active Flutter community. It’s an exciting time for developers and users alike, as Flutter continues to push the boundaries of what’s possible in app development.
Flutter’s 3.16 release heralds a significant shift in its design aesthetics with the integration of Material 3 as the default theme. This update, initially introduced in Flutter 3.10 back in May 2023, brings the framework in line with the latest Material Design specifications. This transition introduces new components, themes, and a refreshed look for existing components.
Previously, adopting Material 3’s enhancements required opting in using the useMaterial3
theme flag. However, with the 3.16 release, useMaterial3
is now enabled by default (Flutter Issue #130764). Developers can still opt for the older Material 2 by setting useMaterial3: false
, but it’s important to note that Material 2 is on the path to deprecation.
The shift to Material 3 might initially result in some visual inconsistencies in your UI. To address this, it’s recommended to transition to the new widget implementations, like NavigationBar
. For comprehensive guidance, refer to the Material 3 umbrella issue on GitHub.
Power Your Growth on Google Play: Discover the Latest Updates
To familiarize yourself with the new components, Flutter provides a demo application. This app is particularly useful as it allows toggling between Material 2 and 3, enabling a direct comparison of the changes.
The look of Material 3 components is largely defined by [ThemeData.colorScheme]
and [ThemeData.textTheme]
. To create a Material 3 color scheme, ColorScheme.fromSeed()
is recommended. This method ensures that the generated schemes are not only visually appealing but also meet accessibility contrast requirements. Another interesting feature is ColorScheme.fromImageProvider
, which allows color schemes to be derived from dominant colors in an image. For further customization, component themes like ThemeData.segmentedButtonTheme
or ThemeData.snackBarTheme
can be added to ThemeData, where non-null properties will override default settings detailed in the component’s API documentation.
The latest Flutter release takes a significant leap in enhancing Material 3 motion, introducing the Easing and Durations classes. These additions are designed to provide more fluid and responsive animations, aligning with the evolving Material Design standards.
In an effort to streamline and update its animation offerings, Flutter has renamed Material 2 curves to include the term “legacy.” This change signals the upcoming deprecation and eventual removal of these legacy curves (Flutter Issue #129942), encouraging developers to transition to the newer Material 3 standards for a more modern UI experience.
Flutter’s new update significantly improves user interaction on native iOS platforms. Now, when users select text, they can access an expanded share menu offering standard services. This enhancement includes the addition of ‘look up,’ ‘search,’ and ‘share’ options, broadening the scope of user actions and integrations directly from the text selection interface. This feature aims to enhance user experience by providing more functionality and convenience in text interactions.
Global Text Scale Factor with TextScaler
Flutter’s commitment to accessibility takes a leap forward with the introduction of the TextScaler class. Designed to support the non-linear font scaling feature of Android 14, TextScaler is a welcome addition for users who are visually impaired. This new class supersedes the previously used Text.textScaleFactor
property, making it easier to implement a global text scale factor across applications (Flutter Issue #128522).
The SelectionArea widget in Flutter has been updated to more intuitively support native gestures. This enhancement is particularly beneficial for devices with different input methods, like touchscreens and mice.
These updates to SelectionArea and SelectableRegion underline Flutter’s ongoing efforts to refine user experience across various devices and input methods.
Top-notch Blooket Hacks GitHub: Unleash Your No. 1 Blooket Mastery
Flutter 3.16 introduces an improved focus management system. The FocusManager
‘s applyFocusChangesIfNeeded
function now efficiently manages focus changes when using menu items. When a user interacts with a menu item, the focus is seamlessly returned to the item that was in focus before the menu was opened, enhancing the user experience and interaction flow (Flutter Issue #130536).
The SelectionArea
widget in Flutter has been updated to support a variety of native gestures, further refining user interaction on different devices:
These gestures, available by default in SelectionArea
and SelectableRegion
, offer an intuitive and efficient way to interact with text using a mouse or touch inputs.
The latest release includes a preview of Impeller on Android, ready for feedback on the stable channel. The focus has been on developing a Vulkan backend for Impeller, and the team is now seeking feedback on its performance on Vulkan-capable devices. Note that Impeller may not perform as expected on devices without Vulkan support. Flutter developers can experiment with Impeller on Vulkan-capable Android devices by using specific flags in the flutter run
command or by setting it in the AndroidManifest.xml
(Impeller Vulkan Support Details).
The Flutter team has worked on optimizing engine performance, particularly on mobile devices with heterogeneous multiprocessing. Improvements in thread management and core affinity have resulted in noticeably smoother experiences, especially on Android. The impact on iOS devices is less dramatic due to the smaller performance difference between their core types.
Several API and fidelity improvements accompany this release, including:
Flutter’s Casual Games Toolkit receives a major update, offering new resources, templates, and integrations for game developers. This toolkit aids in moving from concept to launch, featuring genre-specific templates and service integrations like Play Games Services and in-app purchases (Games Toolkit Details).
Flutter Timeline events are now integrated into the performance panel of Chrome DevTools, improving debugging capabilities for web applications.
iOS App Extensions Support
Flutter now supports the development of certain iOS app extensions, allowing developers to utilize Flutter widgets for extension UIs. This feature, however, is not universal due to potential API limitations or memory constraints (iOS App Extensions Documentation).
The new DevTools extensions framework enables package authors to build custom tools and leverage existing DevTools frameworks, enhancing debugging and app analysis capabilities.
The Flutter Favorite program has been rebooted, recognizing several new packages as Flutter Favorites. Additionally, a virtual summit was held to foster collaboration among pub.dev contributors.
Flutter 3.16’s success is attributed to the extensive contributions from the Flutter community. The community’s engagement and contributions have been instrumental in shaping Flutter into a productive and delightful toolkit.
Flutter 3.16, including Dart 3.2, is available on the stable channel. To start using the latest updates, simply run flutter upgrade
.
For a comprehensive list of changes and PRs included in this release, refer to the Flutter 3.16 release notes and changelog.
Material 3 introduces new components, themes, and updated visuals for existing components, thereby enhancing the user interface and experience in Flutter applications.
Impeller is a new graphical renderer with a focus on a Vulkan backend, aimed at improving performance on Android devices. It’s in preview mode for Vulkan-capable devices in Flutter 3.16.
Yes, developers can opt for Material 2 by setting useMaterial3: false
. However, it’s important to note that Material 2 will eventually be deprecated.
Flutter 3.16 has updated the SelectionArea widget to support single click, double click, and double click plus drag gestures for a more intuitive text interaction experience.
TextScaler is a new class that replaces the Text.textScaleFactor
property, designed to support non-linear font scaling in Android 14, thereby enhancing accessibility for visually impaired users.
Flutter 3.16 has optimized engine performance, especially for mobile devices with heterogeneous multiprocessing, resulting in smoother experiences, particularly on Android.
The toolkit has received a major update with new resources, templates, and integrations, such as Play Games Services and in-app purchases, aiding game developers from concept to launch.
Flutter Timeline events are now integrated into the performance panel of Chrome DevTools, improving the debugging capabilities for web applications.
The DevTools Extensions Framework allows package authors to build custom tools and leverage existing DevTools frameworks, enhancing debugging and app analysis capabilities.
To upgrade to Flutter 3.16, including Dart 3.2, run the flutter upgrade
command. This version is available on the stable channel.
For a detailed list of changes and PRs included in this release, refer to the Flutter 3.16 release notes and changelog.
In honor of the International Day of Family Remittances (IDFR) 2024, Flutterwave, Africa's leading payment…
PadhAI, a groundbreaking AI app, has stunned the education world by scoring 170 out of…
Vector databases are essential for managing high-dimensional data efficiently, making them crucial in fields like…
Welcome to the whimsical world of Flutter app development services! From crafting sleek, cross-platform applications…
Flutter, Google's UI toolkit, has revolutionized app development by enabling developers to build natively compiled…
SQL (Structured Query Language) is a powerful tool for managing and manipulating databases. From converting…
View Comments
Good blog you have got here.. It's hard to find excellent writing like yours these days.
I really appreciate individuals like you! Take care!!
I take pleasure in, lead to I found just what I used to be having a
look for. You've ended my four day lengthy hunt!
God Bless you man. Have a great day. Bye