Flutter 3.24 is here!
This article was originally published on Medium.
The flutter team has release new version and is packed with a lot of new cool features.
The 3.24 release notes are filled with new changes.
There are 577 points completed for this release. This count includes all entries regardless of their nature — whether they are fixes, feature additions, test additions, documentation updates, or other changes.
Let’s go over the highlights:
Flutter GPU preview:
This is a new low-level graphics API. This allows developers to build and integrate custom renderers by writing Dart code and GLSL shaders. For the moment it is available only for platforms supported by Impeller: Android, iOS, macOS.
There is also a 3D rendering library powered by Flutter GPU called Flutter Scene (package: flutter_scene
).
Multi-View Embedding:
Web applications can now support multi-view embedding. It allows developers to display Flutter content in multiple HTML elements at the same time. To enable multi-view mode, set multiViewEnabled: true
in the initializeEngine
method within the flutter_bootstrap.js
file. This flexibility allows the creation of complex layouts, interactive components, and dynamic user experiences.
Check out the detailed documentation.
Video Ad Monetization:
Flutter released a new Interactive Media Ads (IMA) plugin, designed to enhance instream video ad monetization for Flutter mobile apps. This new IMA plugin introduces additional ad monetization opportunities, complementing the existing Google Mobile Ads (GMA) plugin, which primarily supports display ad formats.
Swift Package Manager Integration:
Flutter begins the adoptions of Swift Package Manager or SPM. SPM has been the new standard for a while and now we can benefit from it and it’s advantages:
Automatically manage a dependency’s dependencies. If a dependency relies on another dependency, Swift Package Manager will handle it for you.
Access to Swift package ecosystem. Flutter plugins will be able to access the packages from Swift packages!
It will simplify the Flutter installation. Because SPM in bundled in Xcode, developers won’t need to install Cocoapods and it’s dependencies anymore.
Shared Preferences plugin updates
This is one of the most used packages by flutter developers.
SharedPreferencesAsync:
- it called the native platform to retrieve the data stored on the device. Because of this, different Isolates can access the same data.SharedPreferencesWithCache
- the same as SharedPreferencesAsync but instead of retrieving the value from the native platform, it keeps a local cache.
New Slivers
This release adds new slivers:
These slivers are similar to the existing SliverPersistentHeader
and SliverAppBar
slivers, but have simpler APIs that can be combined for greater effect.
CarouselView
This release included the Material Design carousel widget: CarouselView
. The CarouselView
presents the “Uncontained” layout: a scrollable list of items that scroll to the edge of the container, and the leading and the trailing items can dynamically change size when they are scrolling out of the view and scrolling in the view.
Source: What’s new in Flutter 3.24
Breaking changes and deprecations
We also have some breaking changes in this release include changes to Navigator’s pages API, generic types in PopScope, Flutter web’s default renderer and the introduction of some new deprecations. You can see migration guidelines here.
Small changes:
Update documentation to discourage using the TextEditingController.text setter by @victorsanni in 146151
Fix cursor is not centered when cursorHeight is set (non-Apple platforms). by @bleroux in 145829
Fix memory leaks in
Hero
widget by @ValentinVignal in 147303Enhanced enum features for
AnimationStatus
by @nate-thegrate in 147801Make
CupertinoTextField
respect decoration color when disabled by @victorsanni in 149774Make popup menu hardcoded padding configurable by @bleroux in 150506
The flutter team is preparing even more updates for us:
Pub.dev package repository
refined support for topics (if you didn’t know, you can search packages based on topic/category). This means that slight varations of the same topic, will be grouped in the same category. ex: widget vs widgets
metrics for how used/downloaded. This is a big help to help us choose which package to use. They are making progress and we might enjoy this feature by the end of the year.
IDE and analyzer performance for large monorepos
The Flutter team is working on workspaces in order to improve analyzer performance for large monorepos. The current issue is that we currently have multiple overlapping analysis contexts for each package and All of its dependencies.
A new Dart Formatter
We are getting a new style that works better with the way Flutter code looks and is formatted. The rewrite is close to being done and will ship soon. If you’d like to try it out, pass the experiment flag tall-style
(flag instructions).
Resources:
What’s new in Flutter 3.24 by Kevin Chisholm