Breaking changes
As described in the breaking change policy, on occasion we publish guides for migrating code across a breaking change. To be notified about future breaking changes, join the groups Flutter announce and Dart announce.
The following guides are available. They are sorted by release, and listed in alphabetical order:
Released in Flutter 3.7
- Migrate
of
to non-nullable return values, and addmaybeOf
- Removed RouteSettings.copyWith
- Deprecated API removed after v3.3
- iOS FlutterViewController splashScreenView made nullable
- ThemeData’s toggleableActiveColor property has been deprecated
Released in Flutter 3.3
- Adding ImageProvider.loadBuffer
- Default PrimaryScrollController on Desktop
- Trackpad gestures can trigger GestureRecognizer
Released in Flutter 3
- Deprecated API removed after v2.10
- Page transitions replaced by ZoomPageTransitionsBuilder
- Migrate useDeleteButtonTooltip to deleteButtonTooltipMessage of Chips
Released in Flutter 2.10
- Deprecated API removed after v2.5
- Raw images on Web uses correct origin and colors
- Required Kotlin version
- Scribble Text Input Client
Released in Flutter 2.5
- Default drag scrolling devices
- Deprecated API removed after v2.2
- Change the enterText method to move the caret to the end of the input text
- GestureRecognizer cleanup
- Introducing package:flutter_lints
- Replace AnimationSheetBuilder.display with collate
- ThemeData’s accent properties have been deprecated
- Transition of platform channel test interfaces to flutter_test package
- Using HTML slots to render platform views in the web
Reverted change in 2.2
The following breaking change was reverted in release 2.2:
-
Network Policy on iOS and Android
- Introduced in version: 2.0.0
Reverted in version: 2.2.0 (proposed)
Released in Flutter 2.2
Released in Flutter 2
- Added BuildContext parameter to TextEditingController.buildTextSpan
- Android ActivityControlSurface attachToActivity signature change
- Android FlutterMain.setIsRunningInRobolectricTest testing API removed
- Clip behavior
- Deprecated API removed after v1.22
- Dry layout support for RenderBox
- Eliminating nullOk Parameters
- Material Chip button semantics
- SnackBars managed by the ScaffoldMessenger
- TextSelectionTheme migration
- Use maxLengthEnforcement instead of maxLengthEnforced
- Transition of platform channel test interfaces to flutter_test package
Released in Flutter 1.22
- Android v1 embedding app and plugin creation deprecation
- Cupertino icons 1.0.0
- The new Form, FormField auto-validation API
Released in Flutter 1.20
- Actions API revision
- Adding TextInputClient.currentAutofillScope property
- New Buttons and Button Themes
- Dialogs’ Default BorderRadius
- More Strict Assertions in the Navigator and the Hero Controller Scope
- The Route Transition record and Transition delegate updates
- The RenderEditable needs to be laid out before hit testing
- Reversing the dependency between the scheduler and services layer
- Semantics Order of the Overlay Entries in Modal Routes
- showAutocorrectionPromptRect method added to TextInputClient
- TestWidgetsFlutterBinding.clock
- TextField requires MaterialLocalizations
Released in Flutter 1.17
- Adding ‘linux’ and ‘windows’ to TargetPlatform enum
- Annotations return local position relative to object
- Container color optimization
- CupertinoTabBar requires Localizations parent
- Generic type of ParentDataWidget changed to ParentData
- ImageCache and ImageProvider changes
- ImageCache large images
- MouseTracker moved to rendering
- MouseTracker no longer attaches annotations
- Nullable CupertinoTheme.brightness
- Rebuild optimization for OverlayEntries and Routes
- Scrollable AlertDialog
- TestTextInput state reset
- TextInputClient currentTextEditingValue
- The forgetChild() method must call super
- The Route and Navigator refactoring
- FloatingActionButton and ThemeData’s accent properties