Every change Boring Doc has indexed from official sources: breaking-change guides, hotfix changelogs and release notes. Filter by category, impact, platform, series and evidence type.
Category
Impact
Evidence
Platform
Release
174 changes · page 1 of 5
BreakingHigh impactnot yet in stable migration guide
`DropdownButton` and `DropdownButtonFormField` now include an `enabled` property to explicitly manage their interactive state, and the `onChanged` callback is no longer marked as `required`.
Official migration guideVerified classificationFrameworkSource Details
BreakingHigh impactnot yet in stable migration guide
The Material and Cupertino design libraries are now available as standalone packages: `package:material_ui` and `package:cupertino_ui`. In Flutter 3.47, developers can opt in to these packages ahead of the formal deprecation of the in-framework design libraries.
Official migration guideVerified classificationFrameworkSource Details
BreakingHigh impactnot yet in stableandroid migration guide
To prevent `Intent`-based vulnerability exploits, the Flutter Android embedder (`FlutterActivity` and `FlutterFragmentActivity`) now verifies the sender of `Intent` objects before processing `EXTRA_INITIAL_ROUTE`, `EXTRA_DART_ENTRYPOINT`, `EXTRA_DART_ENTRYPOINT_ARGS`, `EXTRA_CACHED_ENGINE_ID`, and `EXTRA_CACHED_ENGINE_GROUP_ID`.
Official migration guideVerified classificationFrameworkSource Details
BreakingHigh impactnot yet in stableandroid migration guide
Previously, the Flutter Android embedding accepted engine configuration flags (such as `--dart-flags`, `--route`, or tracing flags) at launch time through Android `Intent` extras in all build modes. This mechanism allowed developers and tools—including the Flutter CLI when using `--use-application-binary`—to dynamically configure running applications without modifying their source code or manifest.
Official migration guideVerified classificationFrameworkSource Details
Impeller's OpenGL ES backend now stores render-to-texture content top-down, the same as the Metal and Vulkan backends. A fragment shader or Flutter GPU app that sampled a render-target texture on OpenGL ES and added a vertical flip to compensate for the old bottom-up orientation now renders that content upside down.
Official migration guideVerified classificationFrameworkSource Details
The `header` semantics property now behaves as a no-op on iOS and Android. To declare a section heading for accessibility purposes on these platforms, use the `headingLevel` property with a value greater than `0`.
Official migration guideVerified classificationFrameworkSource Details
The `describeEnum` method has been removed from the framework because it's redundant with the `name` getter on `Enum` which was introduced in `Dart 2.14`.
Official migration guideVerified classificationFrameworkSource Details
Closing a `RawMenuAnchor` now triggers the `onCloseRequested` and `onClose` callbacks for all descendant `RawMenuAnchor`s. The `onCloseRequested` callback is triggered top-down, starting from the triggering `RawMenuAnchor` and moving to its descendants, while the `onClose` callback is triggered bottom-up. If a `RawMenuAnchor` is already closed, calls to `MenuController.close` and `MenuController.closeChildren` don't trigger the `onCloseRequested` callback.
Official migration guideVerified classificationFrameworkSource Details
The `IconData` class is now marked as `final`, which prevents it from being implemented or extended. This change is part of an effort to generalize the mechanism for tree-shaking assets and native code.
Official migration guideVerified classificationFrameworkSource Details
For apps targeting Android 17 or higher, orientation, resizability, and aspect ratio restrictions no longer apply on displays with width 600dp or greater. This means that `SystemChrome.setPreferredOrientations` is ignored on these devices.
Official migration guideVerified classificationFrameworkSource Details
When a widget with a non-transparent background color, such as a `Container` or `ColoredBox` that sets `color`, sits between a `ListTile` and its nearest `Material` ancestor, the framework now reports an error.
Official migration guideVerified classificationFrameworkSource Details
`CupertinoPageTransitionsBuilder` has been relocated from `package:material_ui/material_ui.dart` to the Cupertino package, which is now in `package:cupertino_ui/cupertino_ui.dart`.
Official migration guideVerified classificationFrameworkSource Details
The `onReorder` callback in the `ReorderableListView`, `ReorderableListView.builder`, `ReorderableList`, and `SliverReorderableList` widgets has been replaced by a new callback, `onReorderItem`, which provides more intuitive behavior for `newIndex`.
Official migration guideVerified classificationFrameworkSource Details
`TextInputConnection.setStyle` is deprecated in favor of `TextInputConnection.updateStyle`, which supports synchronizing `letterSpacing`, `wordSpacing`, and `lineHeight` to the engine.
Official migration guideVerified classificationFrameworkSource Details
Flutter 3.44 deprecates `cacheExtent` and `cacheExtentStyle` in scrolling-related widgets, such as `ListView`, `GridView`, `CustomScrollView`, and `Viewport`, and their corresponding render objects, such as `RenderViewport`. The new `scrollCacheExtent` property encapsulates both the value and the caching strategy (pixels or viewport).
Official migration guideVerified classificationFrameworkSource Details
A `FontWeight` in a text style will also set the weight attribute of variable fonts. It is no longer necessary to separately use `FontVariation` to control the weight of these fonts.
Official migration guideVerified classificationFrameworkSource Details
This release updates `package:material_color_utilities` from `v0.11.1` to `0.13.0`. This updated package includes algorithm changes that align with the Material 3 tokens update.
Official migration guideVerified classificationFrameworkSource Details
The `findChildIndexCallback` parameter in `ListView.separated` and `SliverList.separated` constructors have been deprecated in favor of `findItemIndexCallback`. The new callback returns item indices directly, eliminating the need for manual index calculations to account for separators.
Official migration guideVerified classificationFrameworkSource Details
Certain properties and methods in `CupertinoDynamicColor` were deprecated to align with the `Color` class due to wide gamut color spaces support added in Flutter 3.27.
Official migration guideVerified classificationFrameworkSource Details
The default behavior of a `SnackBar` with an action has changed. Previously, a `SnackBar` with an action wouldn't auto-dismiss if talkback was enabled. Now, all `SnackBar` widgets with an action default to a non-dismissible state until the user interacts with the action button.
Official migration guideVerified classificationFrameworkSource Details
The default page transition on Android has been updated from `ZoomPageTransitionsBuilder` to `PredictiveBackPageTransitionsBuilder`. When not using predictive back, this falls back to `FadeForwardsPageTransitionsBuilder`.
Official migration guideVerified classificationFrameworkSource Details
The `SemanticsProperties.focusable` and `SemanticsConfiguration.isFocusable` parameters were deprecated in favor of the `SemanticsProperties.focused` and `SemanticsConfiguration.isFocused` parameters.
Official migration guideVerified classificationFrameworkSource Details
`AppBarTheme`, `BottomAppBarTheme` and `InputDecorationTheme` were refactored to conform to Flutter's conventions for component themes. `AppBarThemeData`, `BottomAppBarThemeData` and `InputDecorationThemeData` were added to define overrides for the defaults of the component visual properties. Releases of Flutter continue to normalize component themes like these for a more consistent theming experience in the material library.
Official migration guideVerified classificationFrameworkSource Details
Introduced the `RadioGroup` widget to centralize `groupValue` management and the `onChanged` callback for a set of `Radio` widgets. As a result, the individual `Radio.groupValue` and `Radio.onChanged` properties have been deprecated.
Official migration guideVerified classificationFrameworkSource Details
Previously, the Form widget essentially acted as a direct wrapper around its child. This design allowed a Form containing a sliver child (e.g., Form(child: other sliver)) to be treated as a sliver itself within a CustomScrollView or similar scrollable parent.
Official migration guideVerified classificationFrameworkSource Details
Starting in Flutter 3.35, the Flutter Gradle Plugin automatically sets `abiFilters` for Android builds to prevent the inclusion of unsupported architectures in release APKs. This change can break custom `abiFilters` specified in your app's `build.gradle` file.
Official migration guideVerified classificationFrameworkSource Details
This change was introduced to fix an issue where an `IndexedStack`s hidden children would be focusable with keyboard events (see issue) due to the underlying `Visibility` widgets default behavior.
Official migration guideVerified classificationFrameworkSource Details
The `color` parameter in `AppBarTheme` and `AppBarThemeData` constructors and their `copyWith` methods have been deprecated. Use `backgroundColor` instead. This change affects how AppBar themes are configured and might cause deprecation warnings in existing code.
Official migration guideVerified classificationFrameworkSource Details
`CardTheme`, `DialogTheme` and `TabBarTheme` were refactored to conform to Flutter's conventions for component themes. `CardThemeData`, `DialogThemeData` and `TabBarThemeData` were added to define overrides for the defaults of the component visual properties.
Official migration guideVerified classificationFrameworkSource Details
Unless a user-defined `goldenFileComparator` is set, either manually in a test, or using a `flutter_test_config.dart` file, Android and iOS devices and emulators/simulators have a new default that proxies to the local host filesystem, fixing a long-standing bug (#143299).
Official migration guideVerified classificationFrameworkSource Details