Flutter 3.32 introduces a suite of enhancements aimed at improving developer productivity and delivering high-fidelity user experiences across platforms. Here's an overview of the key updates:
Hot Reload on Web (Experimental): Developers can now utilize hot reload functionality in web applications, a highly requested feature. This is enabled by adding the --web-experimental-hot-reload
flag when running the application. In Visual Studio Code, this can be configured within the launch.json
file. Additionally, DartPad now supports hot reload, allowing for quicker iterations during development.
Introduction of Expansible
Widget: A new Expansible
widget has been added to facilitate the creation of expandable and collapsible UI elements with customizable themes. This serves as the foundation for the Material-styled ExpansionTile
.
RawMenuAnchor
Widget: Contributed by the community, RawMenuAnchor
provides a base for creating menus with diverse visual themes, offering developers greater control over menu appearance and behavior.
Rounded Superellipse ("Squircle") Support: Flutter now supports the rounded superellipse shape, commonly known as the "Apple squircle," enhancing the native look and feel on iOS platforms. Widgets like CupertinoAlertDialog
and CupertinoActionSheet
have been updated to incorporate this shape.
Cupertino Sheet Enhancements: Improvements include fixing system UI theme settings on Android when sheets open, adjusting navigation bar height, and ensuring content isn't cut off at the bottom. A new enableDrag
parameter allows developers to disable the drag-down-to-dismiss behavior.
Navigation Bar Animations: The CupertinoSliverNavigationBar.search
widget now features improved animations when opening or closing the search view, along with better alignment of search field icons. Route transitions between navigation bars have been updated to match the latest iOS transitions.
CarouselController Improvements: The CarouselController
now includes an animateToIndex
method, enabling smooth, index-based navigation for carousels with both fixed and dynamic item sizes.Medium
TabBar and SearchAnchor Callbacks: TabBar
now supports onHover
and onFocusChange
callbacks, providing more control over widget appearance. SearchAnchor
and SearchAnchor.bar
include viewOnOpen
and onOpen
callbacks, respectively, for better event handling.
Custom Calendar Support: CalendarDatePicker
accepts a calendarDelegate
, allowing integration of custom calendar logic beyond the Gregorian system.
Dialog Animation Customization: Dialogs now support an animationStyle
parameter, enabling customization of opening and closing animations.
Divider Customization: The Divider
widget now accepts a borderRadius
parameter, allowing for rounded edges, especially useful when the divider is thick.
DropdownMenu and Slider Fixes: The DropdownMenu
widget's menu width can now be smaller than the text field, resolving previous layout issues. Slider
and RangeSlider
widgets have improved hover behaviors and thumb interactions.
Optimized Semantics Tree Compilation: Semantics compilation time has been reduced by approximately 80%, translating to a 30% reduction in frame time for web applications with semantics enabled.
Granular Semantics Roles: A new SemanticsRole
API allows developers to assign specific roles to widget subtrees, enhancing assistive technology interpretations. This feature is currently available for web applications, with support for other platforms forthcoming.
Additional Accessibility Enhancements:
Improved screen reader support across various widgets.
Refined web focus behavior for smoother navigation.
Enhanced link recognition for Android TalkBack.
Support for Windows high-contrast mode in web applications.
Improved iOS Voice Control experience by eliminating unnecessary labels on non-actionable widgets.
Introduction of the system text selection context menu on iOS.
Autocomplete
widget options now utilize OverlayPortal
, improving performance and layout.
Customization of onTapUpOutside
behavior in text fields is now possible.
Developers can generate custom widgets as error messages for FormField
, beyond just error text.
Multi-Window Support Progress: Canonical has contributed to enabling multiple windows in desktop applications, addressing issues related to accessibility, app lifecycle, focus, keyboard events, text input, and mouse events.
Merged UI and Platform Threads: Windows and macOS platforms now support merging UI and platform threads, allowing Dart FFI to interoperate with native APIs that require platform thread execution. This can be enabled through specific configurations in the application's main files.
iOS Paste Experience: Users can now paste content into basic text fields without encountering confirmation dialogs, streamlining the user experience.
Android Gradle Plugin Migration: The Flutter Gradle plugin has been migrated from Groovy to Kotlin, facilitating easier contributions and enabling unit testing for the plugin.
Impeller Rendering Updates: Adjustments have been made to the devices using Impeller's Vulkan versus OpenGLES backend, optimizing performance and stability across various Android devices. Text rendering has been improved, with smoother animations and higher resolution glyphs.
Flutter Property Editor: A new tool within DevTools allows developers to easily edit widget properties and access documentation, available in both VS Code and Android Studio/IntelliJ.
DevTools Improvements: Enhancements include offline support for the Network screen, bug fixes across various tools, and performance improvements leading to faster data load times and reduced memory-related crashes.
Analyzer Enhancements: The Dart Analyzer now supports "doc imports," enabling external elements to be referenced in documentation comments without importing them. Several quick fixes, assists, and renaming improvements have also been made.
Gemini Integration in Android Studio: Gemini now offers first-class support for Dart and Flutter development within Android Studio, assisting developers in building high-performance Flutter apps more efficiently.
Firebase AI Logic: The new firebase_ai
package allows developers to integrate Gemini and Imagen models directly into Flutter applications, providing access to generative AI capabilities without the need for server-side SDKs.
AI Monitoring Dashboard: A new dashboard in the Firebase console offers detailed insights into Gemini API usage, including consumption patterns, performance metrics, and potential issues, enabling data-driven decisions and efficient usage of AI resources.
Android Accessibility Announcements: Semantic announcement events are deprecated in favor of "polite" implicit announcements using SemanticProperties.liveRegion
.
Discontinued Packages: Support for six packages, including flutter_markdown
and flutter_adaptive_scaffold
, has been discontinued.
Minimum Platform Versions: Support for iOS 12 and macOS 10.14 will be deprecated in the next stable release, with the minimum versions moving to iOS 13 and macOS 10.15.
Other Deprecations: Several APIs have been deprecated or renamed to align with updated standards and improve consistency across the framework