Welcome to the latest Flutter update Guide! Flutter 3.24 has exciting new features and improvements to enhance the app development experience.
One of the standout highlights is the preview of Flutter GPU, which empowers the creation of advanced graphics and immersive 3D scenes within Flutter. Additionally, web apps can now seamlessly embed multiple Flutter views, boosting the app’s versatility. And that’s not all—this update also includes support for video ad monetization. Dive in and explore all the possibilities Flutter 3.24 offers!
Key Features
Significant GPU Rendering
This new low-level graphics API allows the build of custom renderers using Dart code and GLSL shaders, eliminating the need for native platform code.
Flutter GPU enhances rendering capabilities, enabling richer graphics and 3D scenes. It currently requires Impeller rendering, available on iOS, macOS, and Android.
With this API, you gain complete control over render pass bindings, vertex stages, and GPU data loading, giving you the tools to push your graphics to the next level.
Multi-View Embedding - Web
Flutter web applications can now utilize multi-view embedding, enabling developers to render content in multiple HTML elements simultaneously. This feature, called “embedded mode” or “multi-view,” provides flexibility for integrating Flutter views into existing web applications.
In multi-view mode, a Flutter web application doesn’t render immediately upon launch. Instead, it waits for the host application to add the first “view” using the addView method. The host application can dynamically add or remove these views, and Flutter will adjust its widgets accordingly.
Dynamic App Bars with New Slivers
-
SliverFloatingHeader
This feature lets app bars float over content as users scroll, creating a smooth and visually appealing experience.
-
PinnedHeaderSliver
This keeps the app bar anchored at the top of the screen, ensuring it remains visible while users scroll down.
-
SliverResizingHeader
This functionality allows the app bar to dynamically resize based on the scroll position, facilitating more interactive and responsive designs.
Cupertino Library Enhancements
One major improvement is the enhanced haptic feedback for Cupertino Action Sheet buttons, which now deliver a more tactile and responsive experience. Additionally, these buttons' font size and weight have been adjusted to better match native iOS aesthetics. New focus properties have also been introduced for Cupertino Button, which allows customizing the color of a disabled CupertinoText Field.
Introducing TreeView and CarouselView Widgets
- TreeView Widget
Included in the two dimensional scrollable library, It is designed for creating scrolling tree structures that can expand in various directions. Additionally, it features TreeSliver, which supports one-dimensional scrolling trees while ensuring compatibility with the TreeView API for seamless integration.
Updated SelectionArea Widget
SelectionArea now includes support for more native gestures. By default, the SelectionArea and SelectableRegion widgets leverage these new gestures.
A. Double Tap: Selects the word at the tapped position (supported on native Android, Fuchsia, iOS, and Android/Fuchsia web).
B. Double Tap + Drag: Extends the selection across word blocks (supported on native Android, Fuchsia, iOS, and iOS web).
C. Triple Click: Selects the paragraph block at the clicked position.
D. Triple Click + Drag: Extends the selection across paragraph blocks.
Improved defaults for downscaled images
The default FilterQuality for images has been adjusted from FilterQuality.low to FilterQuality.medium. This change addresses situations where a large image is much larger than its destination rectangle; using FilterQuality.low can lead to a pixelated look and slower rendering than FilterQuality.medium.
Enhanced enum features for AnimationStatus
Enhanced enum features have been added to AnimationStatus, introducing new getters. While some of these getters were previously available in Animation subclasses like AnimationController and CurvedAnimation, they are now accessible across all Animation subclasses and AnimationStatus. Additionally, a toggle method has been added to AnimationController, allowing for easy switching of the animation's direction.
Advanced DevTools for Enhanced Development Experience
Advanced DevTools enhances debugging and profiling capabilities. These tools deliver deeper insights into app performance, allowing developers to track memory usage, monitor frame rendering times, and effectively identify potential bottlenecks.
Video ad monetization support
A new Interactive Media Ads (IMA) plugin has been released to support instream video ad monetization in Flutter mobile apps.This IMA plugin enhances ad monetization options for Flutter applications, complementing the existing Google Mobile Ads (GMA) plugin.
- Seamless Monetization: Effortlessly monetize video player content in Flutter apps. For example, when a user clicks play on a video, the Flutter IMA plugin enables to display a 15-second ad before the video begins.
- Access to Native IMA SDK Benefits: Leverage the advantages of the native IMA SDK, including access to premium Google ad demand and compliance with industry standards like IAB VAST.
The initial launch version supports pre-roll video ads on both Android and iOS platforms.
11.Other Updates
Swift Package Manager initial support: Flutter currently relies on CocoaPods to manage native iOS and macOS dependencies. With Flutter 3.24, early support for Swift Package Manager has been introduced, providing access to the Swift package ecosystem.
Shared Preferences Plugin Updates:
- SharedPreferencesAsync: This API allows for asynchronous operations, improving performance when accessing shared preferences.
- SharedPreferencesWithCache: This API introduces caching functionality, enhancing efficiency by reducing the need for repeated reads from storage.
Dart 3.5 : Dart 3.5 brings valuable features like pattern matching and record types that greatly improve code expressiveness and reliability. Pattern matching simplifies conditional logic, allowing for cleaner and more intuitive code, while record types let you group multiple values without creating custom classes. Together, these enhancements streamline the development process, enabling developers to build high-quality applications more quickly and with fewer bugs. Overall, Dart 3.5 equips developers to write more efficient and maintainable code.
Final Thoughts
Flutter 3.24 marks a significant milestone for the framework, introducing new features, performance improvements, and tooling enhancements that reinforce its status as a top choice for cross-platform development