Flutter upgrade guide
Documented breaking changes by the release they landed in.
Not yet released to stable
Flutter 3.47
Flutter 3.44
- Changing RawMenuAnchor close order
- Deprecate onReorder callback
- Deprecate TextInputConnection.setStyle
- Deprecated cacheExtent and cacheExtentStyle
- IconData class marked as final
- Large screen orientation and resizability restrictions ignored on Android 17
- ListTile reports an error in debug when wrapped in a colored widget Widgets
- Migrating Flutter Android projects to built-in Kotlin
- Page transition builders reorganization
Flutter 3.41
Flutter 3.38
- CupertinoDynamicColor wide gamut support
- Deprecate OverlayPortal.targetsRootOverlay
- Deprecate SemanticsProperties.focusable and SemanticsConfiguration.isFocusable
- SnackBar with action no longer auto-dismisses
- The default page transition on Android is now PredictiveBackPageTransitionBuilder
- UISceneDelegate adoption
Flutter 3.35
- Component theme normalization updates
- Deprecate DropdownButtonFormField value parameter in favor of initialValue
- Deprecate app bar color
- Redesigned the Radio widget Widgets
- Removed semantics elevation and thickness
- The Form widget no longer supports being a sliver Widgets Forms
- Flutter now sets default abiFilters in Android builds
- Merged threads on macOS and Windows
- The Visibility widget is no longer focusable by default when maintainState is enabled Widgets
- $FLUTTER_ROOT/version replaced by $FLUTTER_ROOT/bin/cache/flutter.version.json
Flutter 3.32
- Deprecate SystemContextMenuController.show
- Deprecate ExpansionTileController in favor of ExpansibleController
- Deprecate RouteTransitionRecord.markForRemove
- Deprecate ThemeData.indicatorColor in favor of TabBarThemeData.indicatorColor
- Material Theme System Updates
- .flutter-plugins-dependencies replaces .flutter-plugins Plugins
- Localized messages are generated into source, not a synthetic package
- Changing the default goldenFileComparator for integration_test s
- Deprecate InputDecoration.maintainHintHeight in favor of InputDecoration.maintainHintSize
- Underdamped spring formula changed
Flutter 3.29
Flutter 3.27
Flutter 3.24
Flutter 3.22
Flutter 3.19
Flutter 3.16
- Migrating to Material 3
- Migrate ShortcutActivator and ShortcutManager to KeyEvent system
- The ThemeData.useMaterial3 property is now set to true by default
- Deprecated API removed after v3.13
- Customize tabs alignment using the new TabBar.tabAlignment property
- Deprecate textScaleFactor in favor of TextScaler
- Android 14 nonlinear font scaling enabled
- Deprecate describeEnum and update EnumProperty to be type strict
- Deprecated just-in-time navigation pop APIs for Android Predictive Back Navigation
- Deprecated Paint.enableDithering
- Updated default text styles for menus Text & Rich Content
- Windows: External windows should notify Flutter engine of lifecycle changes
- Windows build path changed to add the target architecture
Flutter 3.13
- Added missing dispose() for some disposable objects in Flutter
- Deprecated API removed after v3.10
- Added AppLifecycleState.hidden
- Moved ReorderableListView's localized strings
- Removed ignoringSemantics
- Deprecated RouteInformation.location
- Updated EditableText scroll into view behavior
- Migrate a Windows project to ensure the window is shown
- Updated Checkbox.fillColor behavior
Flutter 3.10
Flutter 3.7
- Deprecated API removed after v3.3
- Replaced parameters for customizing context menus with a generic widget builder Widgets
- iOS FlutterViewController splashScreenView made nullable
- Migrate of to non-nullable return values, and add maybeOf
- Removed RouteSettings.copyWith
- ThemeData's toggleableActiveColor property has been deprecated
- Migrate a Windows project to support dark title bars
Flutter 3.3
Flutter 3
Flutter 2.10
Flutter 2.5
- Default drag scrolling devices Device
- Deprecated API removed after v2.2
- Change the enterText method to move the caret to the end of the input text Text & Rich Content
- 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
- Migrate a Windows project to the idiomatic run loop
Flutter 2.2
Flutter 2
- Added BuildContext parameter to TextEditingController.buildTextSpan
- Android ActivityControlSurface attachToActivity signature change
- Android FlutterMain.setIsRunningInRobolectricTest testing API removed Testing
- 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
Flutter 1.22
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 Testing
- Reversing the dependency between the scheduler and services layer Services
- Semantics Order of the Overlay Entries in Modal Routes
- showAutocorrectionPromptRect method added to TextInputClient
- TestWidgetsFlutterBinding.clock
- TextField requires MaterialLocalizations
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 Image
- 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