
Flutter 3.32 has just dropped, fresh off the heels of Google I/O 2025. This isn’t just a minor tweak; it’s a significant upgrade packed with features designed to seriously boost developer productivity, refine UI visuals, and enhance cross-platform capabilities. Let’s dig into all the key improvements.
Topics Covered in This Blog
- Flutter 3.32 Release Overview
- iOS & Cupertino Enhancements
- Framework & Widget Improvements
- DevTools Improvements
- AI Integration with Firebase
- Accessibility Improvements
- Performance & Platform Updates
- Reloading in DartPad
- Navigation Bars (Cupertino)
- Material Library Enhancements
- Text Input Improvements
- Gemini in Android Studio Integration
- Discontinued Package Support
- Material Theme System Refinements
- Breaking Changes & Deprecations
Web Development Enhancements
hot reload is finally making its way to Flutter web, though it’s currently in an experimental phase. This is a huge deal because it means you can make changes to your code and see them instantly reflected in your running web app, without having to completely restart it. Imagine how much faster your development cycle will be now!
To get this game-changing feature up and running:
- Command Line:
flutter run -d chrome --web-experimental-hot-reload
- VS Code Configuration:

On the iOS front, there are some noticeable improvements, especially for those who care about native fidelity.
Cupertino Squircles for Native Fidelity
You know those subtly rounded, almost-square shapes you see in native iOS apps? Flutter 3.32 is bringing that look to its Cupertino widgets. We’re talking “squircles”—those superellipse shapes—now appearing in components like CupertinoAlertDialog and CupertinoActionSheet. This might seem like a small detail, but it really helps Flutter’s iOS components feel even more at home on Apple devices, blending seamlessly with the native design.
So, how can you put these new squircles to use in your apps? Flutter 3.32 gives you a few new APIs to play with:
- RoundedSuperellipseBorder: You can use this for painting borders or as a general shape for your widgets.
- ClipRSuperellipse: This is your go-to for clipping content into that perfect squircle shape.
- For more fine-grained control, you’ve got lower-level APIs like Canvas.drawRSuperellipse, Canvas.clipRSuperellipse, and Path.addRSuperellipse.
Just a heads-up, this rounded superellipse feature is still under active development. Right now, it’s fully supported on iOS and Android.
Framework & Widget Improvements
- New Widgets: Expansible and RawMenuAnchor
We’re getting two brand new widgets that offer more control and flexibility:
- Expansible: This is a great new tool for easily building UI elements that can expand and collapse. Think accordions or collapsible sections in your app. What’s cool is that it supports different visual themes, giving you more design freedom.
- RawMenuAnchor: If you’ve ever wanted to build highly customized menus, RawMenuAnchor is your new best friend. It provides a foundational layer for creating menus with your own unique styling, opening up a lot more possibilities for bespoke UI designs.
2. Material 3 Enhancements - Flutter is really leaning into Material 3, and this update continues that push. You’ll find a more polished and interactive experience with updates to several key components, including:
- TabBar: Expect better interactivity and more customization options for your tabbed navigation.
- SearchAnchor: The SearchAnchor widget also sees improvements, likely offering more robust and flexible search UI implementations.
- CalendarDatePicker: The calendar picker gets a refresh, making it more aligned with the latest Material 3 guidelines for a smoother user experience.
Developer Tooling
1. Flutter DevTools: Property Editor
The new Property Editor in Flutter DevTools allows developers to inspect and edit widget properties directly within their IDE. This feature streamlines the debugging process and enhances productivity.
You can now use the Network screen offline, which is super handy for digging into network activity even when you’re not connected. They’ve also squashed a bunch of pesky bugs related to review history, those annoying inspector errors, and even the Deep Links tool. Plus, you’ll get more accurate and useful data from the CPU Profiler and Memory screens.
On top of all that, DevTools itself is snappier than ever thanks to some behind-the-scenes performance and memory optimizations. This means faster data loading and fewer crashes, making your debugging sessions much smoother.
AI Integration with Firebase
- firebase_ai Package
Flutter 3.32 now includes the new firebase_ai package. What does that mean for you? Well, it makes it incredibly easy to bring Google’s powerful AI models—like Gemini and Imagen—directly into your Flutter apps. This really opens a world of possibilities for adding smart features like chatbots, intelligent suggestions, and even generative UIs that can create content on the fly.
They’ve evolved what was “Vertex AI in Firebase” into Firebase AI Logic. This new setup gives you access to both Gemini API providers, and the best part is you only need one Flutter SDK. This means you can now use both Gemini and Imagen models directly from your Flutter app, eliminating the need for a server-side SDK. It’s a huge step towards making AI integration more accessible and straightforward for everyone!
Accessibility Improvements
- SemanticsRole API
This is an important one for inclusivity: there’s a new SemanticsRole API that gives developers much more granular control over how different parts of your UI are understood by assistive technologies, like screen readers. This means you can ensure your Flutter apps are much more accessible and user-friendly for people with disabilities.
You can find a detailed list of all the available roles in the official API documentation. Just a heads-up though: this advanced SemanticsRole functionality is currently only available for web applications. Don’t worry if you’re targeting other platforms – support for them is on the way in future releases!
Now, for some of the core updates that will likely impact every Flutter developer: performance and platform support.
Performance & Platform Updates
- Performance Optimizations
Good news for speed demons! Flutter 3.32 brings a host of under-the-hood improvements that will make your apps snappier. These optimizations are designed to boost performance and cut down on latency across all platforms, with a particular focus on making iOS and web apps feel even faster and more responsive.
- Platform Support Updates
There are a couple of important changes to note regarding minimum platform requirements:
- Minimum Requirements: Moving forward, Flutter will require iOS 13 and macOS 10.15 (Catalina) as the baseline supported versions. This means if you’re targeting older Apple operating systems, it’s time to update.
- Dart 3.8 Integration: This release also bundles in Dart 3.8, the latest version of Flutter’s underlying language. Dart 3.8 comes with some welcome enhancements, including smarter code formatting and the introduction of “null-aware elements,” which should make your code cleaner and more concise.
Reloading in DartPad
For those of you who use DartPad, there’s a neat new addition: hot reload is now supported! You’ll see a fresh “Reload” button that instantly updates your app as you make changes. This feature only works when DartPad recognizes you’re running a Flutter application, and you can easily test it out with any of the sample apps already available there. It’s a small change that makes a big difference for quick iterations!
Navigation Bars
- The CupertinoSliverNavigationBar.search component has received some welcome fidelity improvements. You’ll notice smoother animations when the search view opens or closes, and the prefix and suffix icons in the search field are now correctly aligned.
Finally, for a truly native feel, the transitions between routes using CupertinoNavigationBars or CupertinoSliverNavigationBars have been updated to perfectly match the very latest iOS transition animations. It’s all about making your app feel seamlessly integrated with the platform.
Text Input
This release brings some solid improvements to how text input works across Flutter apps:
- Developers are no longer limited to just text for FormField errors; you can now use any widget you want for error messages, opening a ton of custom styling possibilities.
- And good news for everyone: selectable text in Flutter is less buggy and performs much better on the web.
- On iOS, you’ll now see the native system text selection context menu, making text interactions feel more seamless.
- You can finally customize what happens when a tap lifts outside a text field, giving you more control over user interactions.
- The Autocomplete widget is much smoother and more reliable, thanks to a switch to OverlayPortal for its layout, which fixes performance and visual bugs.
Material
This update rolls out a bunch of new features and bug fixes to the Material library, making it both more functional and a nicer experience for developers.
- CarouselController now has a handier animateToIndex method. This means you can easily create smooth, index-based navigation for your carousels. Whether your carousel items are a fixed size or dynamically sized using flexWeights, jumping to a specific item with a nice animation is now much simpler.
- The TabBar widget now includes onHover and onFocusChange callbacks. This is great for developers who want more precise control over how their tabs look and behave when users interact with them, like when hovering with a mouse or tabbing through elements.
- It refines the Material theme system by introducing CardThemeData, DialogThemeData, and TabBarThemeData. These new classes replace their older Theme counterparts, bringing component theming more in line with Flutter’s current conventions.
- Both SearchAnchor and SearchAnchor.bar have been updated with viewOnOpen and onOpen callbacks. These new additions give you better ways to track and respond to when the search view opens or closes, providing more flexibility in handling those events.
- The CalendarDatePicker now supports a calendarDelegate, letting you integrate custom calendar systems beyond just Gregorian. This opens up possibilities for unique date handling, as demonstrated by an example of a hypothetical calendar.
- Cupertino bottom sheets: You now have more control over Cupertino bottom sheets. You can use the new enableDrag argument with CupertinoSheetRoute and showCupertinoSheet to disable the drag-down-to-dismiss behaviour. So, if you want your users to not be able to simply drag the sheet away, you can now easily prevent that.
Gemini in Android Studio Now Speaks Fluent Flutter and Dart!
Big news for Flutter and Dart developers using Android Studio: Gemini now offers first-class support right within your IDE! This means you can tap into Gemini’s intelligence directly in Android Studio, helping you build stunning, high-performance Flutter apps more quickly and easily than ever before. It’s designed to streamline your workflow and supercharge your development process.
Saying Goodbye to Six Packages
Just a heads-up, as we mentioned back in the Flutter 3.29 release blog post, we’ve officially discontinued support for six packages with this update.
These include:
- flutter_markdown
- ios_platform_images
- css_colors
- palette_generator
- flutter_image
- flutter_adaptive_scaffold
Dart 3.8 Integration
Flutter 3.32 comes bundled with Dart 3.8, which brings several enhancements:
- Null-Aware Collection Elements: Simplifies the inclusion of optional elements in collections, reducing boilerplate code.
- Enhanced Code Formatter: The code formatter now produces cleaner diffs and more readable code structures, improving code maintainability.
Okay, let’s break down those breaking changes and deprecations in a more digestible way:
Breaking Changes & Deprecations
As with any major update, Flutter 3.32 includes some changes that might require you to update your code:
- ThemeData.indicatorColor is out, TabBarThemeData.indicatorColor is in. This gives you more precise control over how your tab bar indicators look.
- SystemContextMenuController.show is deprecated. You’ll need to switch to newer, alternative ways to implement context menus.
- ExpansionTileController is being replaced by ExpansibleController. This aligns with the new Expansible widget and offers better functionality.
- RouteTransitionRecord.markForRemove is now RouteTransitionRecord.markForComplete. This reflects some internal changes to how route transitions are managed.
- InputDecoration.maintainHintHeight is gone, use InputDecoration.maintainHintSize instead. This offers better control over hint text sizing in input fields.
- Spring Animation Behavior has been updated. The formula for underdamped spring animations has changed, so you might notice subtle differences in how some animations behave.
- Localization is cleaner. Localized messages are now generated directly into your source directory, meaning you no longer need the synthetic package:flutter_gen. It’s a nice cleanup!
Official Flutter Documentation
- Flutter 3.32.0 Release Notes: Comprehensive details on framework changes, platform-specific enhancements, tooling updates, and more. Flutter Documentation
- Breaking Changes & Migration Guides: Essential for developers to understand deprecated APIs and necessary migration steps. Flutter Documentation
- What’s New in the Docs: Highlights recent documentation updates, including new guides and tutorials. Flutter Documentation
Conclusion
All in all, Flutter 3.32 is a pretty big leap forward for cross-platform development. It’s packed with a ton of enhancements that translate to better performance, more refined tools, and even deeper integrations across the board. So, whether you’re crafting apps for mobile, web, or desktop, this release truly gives you the features and capabilities to build top-notch, accessible applications much more efficiently than before.