Flutter 3.29

What’s New in Flutter 3.29?

Flutter 3.29 is here, bringing some exciting updates that improve app development and performance. With contributions from 104 talented community members, this release refines key areas like Impeller, Cupertino, and DevTools. Let’s dive into what’s new in this version!

Framework Updates

Cupertino Updates

Flutter 3.29 introduces some neat changes to the Cupertino widgets, bringing a more polished iOS feel to your apps.

  • CupertinoNavigationBar and CupertinoSliverNavigationBar can now accept a bottom widget—perfect for adding a search field or a segmented control.
  • CupertinoSliverNavigationBar has a new bottomMode property, letting you choose how the widget behaves when scrolling.
  • There’s also a new CupertinoNavigationBar.large constructor that allows you to display a larger navigation title.

A special shout-out to the community contributor davidhicks980, who helped improve the background blur in Cupertino popups, making them look even more like native iOS apps.

Additionally, CupertinoAlertDialog now looks better in dark mode, and Flutter has improved text selection on iOS, including the magnifier’s border color matching the current theme.

Material Updates

Material Design 3 (M3) continues to evolve in Flutter 3.29:

  • FadeForwardsPageTransitionsBuilder: This new page transition matches Android’s latest behavior. Pages now slide and fade in/out simultaneously during transitions.
  • CircularProgressIndicator and LinearProgressIndicator have been updated to match the latest Material Design 3 specs. You can toggle between the old and new design easily.
  • The Slider widget has received a design refresh, aligning with Material 3’s latest look.

Plus, there are fixes and improvements to the TabBar, RangeSlider, and DropdownMenu components, making them more intuitive to use.

Text Selection Improvements

Flutter now provides better support for text selection. You can now track text selection with the SelectionListener and SelectableRegion widgets. These help developers monitor and respond to changes in selection with more detail, which is especially useful for building custom text editing experiences.

Accessibility

Flutter 3.29 improves the accessibility of several widgets:

  • Form widgets will only announce the first error they encounter, making screen reader feedback clearer.
  • Dropdown menus now announce their labels correctly when a screen reader is enabled.

Web Updates

Flutter’s WebAssembly (wasm) support is getting easier. Previously, you had to set special HTTP headers for your Flutter web apps. Now, the default settings are enough for running with wasm, though limited to a single thread. Additionally, Flutter has fixed some image issues related to CORS and WebGL backends, improving image loading performance.

Impeller Engine Updates

Flutter 3.29 brings Impeller to the forefront as the default rendering engine for most platforms.

  • Impeller Vulkan support has been improved to address flickering and stability issues reported on older Android devices.
  • For Android devices without Vulkan support, Impeller OpenGLES is now the fallback renderer, ensuring compatibility across all devices.
  • On iOS, Skia support is removed, and Impeller is now the standard. This move reduces app size and improves performance in the long run.

New Impeller Features:

  • BackdropFilter optimizations: Multiple backdrop filters now perform better with the new BackdropGroup widget.
  • ImageFilter.shader: A new feature lets you apply custom shaders to widgets, improving graphics performance and visual effects.

Dart Threading Changes

One significant change is how Dart code is executed on Android and iOS. Previously, Dart ran on a separate UI thread, which sometimes caused issues with platform interactions. Now, Dart runs directly on the main thread, improving performance and making platform communication more efficient.

DevTools and IDE Updates

The DevTools inspector gets a major update in Flutter 3.29, making it more powerful and easier to use:

  • The widget tree is more compact, and the new widget properties view is more intuitive.
  • DevTools also now supports real-time updates during hot reload and navigation events.
  • Logging tool improvements: Logs now display additional metadata, including log severity and isolate information, helping developers debug more effectively.

Breaking Changes and Deprecations

While Flutter 3.29 comes with exciting new features, there are a few changes you should be aware of:

  • Deprecated Packages: A handful of packages (like flutter_image and flutter_markdown) will no longer be supported after April 30th, 2025. If you’re using any of these, be sure to explore alternatives.
  • Removal of Script-based Gradle Plugin: The old method of applying the Flutter Gradle plugin is being phased out. Make sure your projects are updated to avoid build issues.
  • HTML Renderer Removal: The HTML renderer for Flutter Web has been removed. You now have more control over how images are displayed on the web.

Conclusion

Flutter 3.29 brings a host of improvements and exciting new features that make it easier and faster to build great apps. Whether you’re developing for mobile, web, or desktop, this release boosts performance, enhances accessibility, and improves developer tools.

As always, big thanks to the Flutter community for making these updates possible. Check out the full release notes and upgrade your Flutter projects to start taking advantage of all the new features today!

Back To Top