Version Comparison Studio
Choose two real stable releases. Boring Doc lists every indexed change between them with its evidence, impact and migration instructions, and can fetch the verified source diff from GitHub.
3.7.3 → 3.47.7Feb 9, 2023 → Oct 8, 2026 · 118 releases in range
What changed?
3614 indexed changes across 118 versions: 66 breaking change, 20 removed, 59 deprecated api, 501 new feature, 973 improvement, 51 performance, 352 platform-specific, 450 developer tooling, 1066 bug fix, 76 documentation.
Will this affect my application?
86 high-impact items. Start with: OpenGL ES render-to-texture content is stored top-down; Update semantics header and headingLevel behavior on iOS and Android; Changing RawMenuAnchor close order; ….
What action should I take?
Read the 87 official migration guides first, apply `dart fix` where available, then upgrade and run your test suite. Deprecations can be scheduled; removals cannot.
How do I migrate safely?
Prefer stepping through stable series sequentially; each breaking-change page has a checklist, before/after code and the official guide. Verify with `flutter analyze`, `flutter test` and a profile-mode run on each target platform.
- Release-note items are indexed for the 3.47, 3.44, 3.41, 3.38 series only. For 3.35, 3.32, 3.29, 3.27, 3.24, 3.22, 3.19, 3.16, 3.13, 3.10 this comparison shows official breaking-change guides and hotfix notes.
- Release-note items are classified from PR titles (heuristic); breaking-change guides are classified from the official index.
Tick “Fetch verified source diff” above (or load it now) to corroborate these announcements with the git history between the two tags.
Changes by category
400 shownBreaking Breaking change 66
Update semantics header and headingLevel behavior on iOS and Android
Changing RawMenuAnchor close order
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
Page transition builders reorganization
Merged threads on Linux
FontWeight also controls the weight attribute of variable fonts
Material 3 tokens update
CupertinoDynamicColor wide gamut support
SnackBar with action no longer auto-dismisses
The default page transition on Android is now PredictiveBackPageTransitionBuilder
UISceneDelegate adoption
Component theme normalization updates
Redesigned the Radio widget
The Form widget no longer supports being a sliver
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
$FLUTTER_ROOT/version replaced by $FLUTTER_ROOT/bin/cache/flutter.version.json
Material Theme System Updates
.flutter-plugins-dependencies replaces .flutter-plugins
Localized messages are generated into source, not a synthetic package
Changing the default goldenFileComparator for integration_tests
Underdamped spring formula changed
ImageFilter.blur default tile mode automatic selection
Updated Material 3 Slider
Updated Material 3 progress indicators
Color wide gamut support
Component theme normalization
Deep links flag change
Material 3 Tokens Update in Flutter
Set default for SystemUiMode to Edge-to-Edge
Navigator's page APIs breaking change
Generic types in PopScope
New APIs for Android plugins that render to a Surface
Rename MaterialState to WidgetState
Introduce new ColorScheme roles
Nullable PageView.controller
Rename MemoryAllocations to FlutterMemoryAllocations
Migrate RawKeyEvent/RawKeyboard system to KeyEvent/HardwareKeyboard system
Default multitouch scrolling
Accessibility traversal order of tooltip changed
Stop generating AssetManifest.json
Migrating to Material 3
Migrate ShortcutActivator and ShortcutManager to KeyEvent system
The ThemeData.useMaterial3 property is now set to true by default
Customize tabs alignment using the new TabBar.tabAlignment property
Android 14 nonlinear font scaling enabled
Updated default text styles for menus
Windows: External windows should notify Flutter engine of lifecycle changes
Windows build path changed to add the target architecture
Added missing dispose() for some disposable objects in Flutter
Added AppLifecycleState.hidden
Moved ReorderableListView's localized strings
Updated EditableText scroll into view behavior
Migrate a Windows project to ensure the window is shown
Updated Checkbox.fillColor behavior
Insert content text input client
Resolve the Android Java Gradle error
Require one data variant for ClipboardData constructor
"Zone mismatch" message
Fix README images + breaking change links
Fix verified input integration test without breaking the rest of the devicelab tests (attempt 5)
Fix an `omit-type` lint that is breaking the tree
Removed Removed 20
Removal of describeEnum
Removed semantics elevation and thickness
Removal of v1 Android embedding Java APIs
Remove invalid parameters for InputDecoration.collapsed
Deprecated API removed after v3.19
Dropping support for Android KitKat
Deprecated API removed after v3.16
Deprecated API removed after v3.13
Deprecated API removed after v3.10
Removed ignoringSemantics
Deprecated API removed after v3.7
Remove use of deprecated copy_trees.
Remove use of deprecated API related to removal of the VM isolate.
Remove unnecessary `deprecated` withOpacity in `text_button.0.dart` in examples
Remove deprecated `activeColor` in `switch.0.dart` example
Remove deprecated `activeColor` in `decorated_sliver.1.dart` example
Remove deprecated activeColor in `dynamic_content_color.0.dart` example
Remove deprecated `AssetManifest.json` file
Remove 2023 deprecated `'platforms'` key from daemon output
Remove deprecated `--[no-]-disable-dds`
Deprecated Deprecated API 59
Deprecate onReorder callback
Deprecate TextInputConnection.setStyle
Deprecated cacheExtent and cacheExtentStyle
Deprecate containsSemantics in favor of isSemantics
Deprecate findChildIndexCallback in favor of findItemIndexCallback in ListView and SliverList separated constructors
Deprecate OverlayPortal.targetsRootOverlay
Deprecate SemanticsProperties.focusable and SemanticsConfiguration.isFocusable
Deprecate DropdownButtonFormField value parameter in favor of initialValue
Deprecate app bar color
Deprecate SystemContextMenuController.show
Deprecate ExpansionTileController in favor of ExpansibleController
Deprecate RouteTransitionRecord.markForRemove
Deprecate ThemeData.indicatorColor in favor of TabBarThemeData.indicatorColor
Deprecate InputDecoration.maintainHintHeight in favor of InputDecoration.maintainHintSize
Deprecate WebGoldenComparator
Deprecate ThemeData.dialogBackgroundColor in favor of DialogThemeData.backgroundColor
Deprecate ButtonBar in favor of OverflowBar
Deprecate imperative apply of Flutter's Gradle plugins
Deprecate textScaleFactor in favor of TextScaler
Deprecate describeEnum and update EnumProperty to be type strict
Deprecated just-in-time navigation pop APIs for Android Predictive Back
Deprecated Paint.enableDithering
Deprecated RouteInformation.location
Deprecated the window singleton
[Android] Test to verify AnnounceSemanticsEvent deprecation warning on API 36
Fix deprecation validator message to require leading v
Deprecate onReorder callback
[skia] Disable use of deprecated Mock GrBackendSurface
[Android] Use EdgeToEdge.enable/WindowCompat for edge-to-edge mode instead of deprecated View flags
[flutter_tools] Deprecate `plugin_ffi` template
[flutter_tools] Deprecate web hot reload flag
Replace deprecated `withOpacity` in `interactive_viewer.constrained.0.dart`
Replace deprecated `withOpacity` in `interactive_viewer.builder.0.dart`
Replace deprecated `withOpacity` in `focus_scope.0.dart` example
Replace deprecated withOpacity in `radio.1.dart` example
Replace deprecated `withOpacity` with `withValues` in `text_style.dart`
Replace deprecated withOpacity in `chip_animation_style.0.dart` example
Replace deprecated `withOpacity` in `switch.1.dart` example
Replace deprecated `withOpacity` in `data_table.1.dart` example
Replace deprecated `withOpacity` in `overflow_bar.0.dart` example
Replace deprecated `withOpacity` in `hero.1.dart` example
Replace deprecated `withOpacity` in `cupertino_navigation_bar.0.dart` example
Replace deprecated `withOpacity` in `search_anchor.1.dart` example
Replace deprecated `withOpacity` in `reorderable_list_view.reorderable_list_view_builder.0.dart` example
Fix deprecation warning in some API examples using RadioListTile
New isSemantics and deprecate containsSemantics
[web] Deprecate --pwa-strategy
Suppress deprecation warning for AChoreographer_postFrameCallback
Suppress deprecated iOS windows API in integration_test
NavigatorPopScope examples no longer use deprecated onPop.
Fix docs referencing deprecated radio properties
Adds deprecation for impeller opt out on android
Update `build.gradle` to remove deprecation warning in `flutter\engine\src\flutter\shell\platform\android`
Fix deprecated configureStatusBarForFullscreenFlutterExperience for Android 15+
[web] Cleanup usages of deprecated `routeUpdated` message
Add `--dart-define`, `-D` to `assemble`, deprecate `--define`, `-d`.
[ Tool ] Remove leftover Android x86 deprecation warning constant
Deprecate Objective-C plugin template
Stop using deprecated analyzer 7.x.y APIs.
New New feature 255
Adds script to run malioc locally
Add initial AI guidance for issues
[web] Add font fallback service
[wimp] Implement images for wimp.
[Android] Allow sensitive content to gracefully fail when unregistering host before registering
Expose platform specific handles for multi-window API
Adds missing `await`s on forgotten cases
Add `clipBehavior` parameter to `AnimatedCrossFade`
Add disposal guidance to CurvedAnimation and CurveTween docs
Add @awaitNotRequired annotation to flutter sdk
Added useOriginalColors flag which allows ImageIcon to bypass IconTheme colorization and use the original colors
Add documentation for overarching tests in flutter, add skill to help agents figure out where tests go
Add more 0x0 size tests, part 6
Add more 0x0 size tests part 9
[flutter_goldens] Allow using print
Add support for high contrast and color inversion on Android
Add reportErrors to ImageStreamListener
Add Linux implementation of popup windows
Add more 0x0 size tests part10
Add/remove overlay child RenderObject from the tree in `attach`/`detach`
[Android] Add Javadoc documentation to TextInputChannel
Add more 0x0 size tests part 11
Expand coverage of android_hardware_smoke_test. Add image, text, blend mode, and blur tests.
Add a platform view test to android_hardware_smoke_test
Adds gamma correction to windows text.
Implement font fallback
Add a platform view test to android_hardware_smoke_test
Add TapRegion samples
Adds semantics role check to isSemantics and matchesSemantics
Add debugPaintFocusBoxes
Expose the app's build name and number as compile-time constants
add the next batch for VPAT assessment
Enable the `avoid_final_parameters` lint.
[a11y] Add support for high contrast themes in the a11y assessments app
Allow Xcode build configuration to not contain flavor name
[SwiftPM] Enable package resolution on xcodebuild commands
[iOS] Add FlutterTracing to support tracing from Swift
Enable Swift testing in the iOS embedder
[Android] Add integration test for setting engine flags via the manifest
[a11y] Add CONTENT_CHANGE_TYPE_EXPANDED support on android.
[Android] Propagate --enable-flutter-gpu Intent extra to engine args
[Android] Remove support for unused manifest flags
Implement version code overrides for split ABIs
Migrate ABI splits to new AGP dsl
Add android 17 to embedding
Win32: Add FlutterDesktopPluginRegistrarGetGraphicsAdapter
[Windows] Propagate the enabled accessibility state
Add support for stylus buttons
Reland "Add support for stylus buttons"
Adds windows project switch for enabling impeller
[Windows] Add public API to post task to platform thread
Add --flavor support for Windows desktop builds
adds linux impeller project flag
[Linux] Move Flutter rendering into a new FlViewRenderer widget
[Linux] Add tests for FlTaskRunner
[linux] Re-enable RegistrarRegisterTextureInMultipleThreads test
Add tests for FlMouseCursorHandler
Add --flavor support for Linux desktop builds
[web] Implement stepped image downscaling for CanvasKit and Skwasm
Add initial support for Cross-Origin Storage
feat(web): implement image decoding throttling for HTML images
Add import of `dart:_js_interop_wasm` in sdk rewriter tool
Don't use `git add -N` in the sync engine workflow.
[macOS] Add move timer runloop mode to common modes
[fuchsia] Ask for both ambient-replace and VMEX to allow for a softer transition.
Add oval drawing support to the SDF uber shader
Add dart_skills_lint to dev/tool with test and update readme instructions for new skills authors
add playground to test SDF primitive rendering under transforms
Add more guidelines for code review bot
Add ability to pass flags to `et run`
Add await mechanism to setClipboard in android_semantics_integration test
Made the MIT matcher not greedy and added a boost file matcher
Made MetalSDF a printed name when sdf's are enabled.
Add pr filter for waiting for response label in a11y pr triage
Enable SPM for GoogleMobileAds
Implement square-like round superellipses with circular corners in the SDF uber shader
Adds debugging information to compiled metal shaders
Enable `var_with_no_type_annotation` lint.
Adds integration test for the FLTEnableSDFs flag for iOS
[ Skill ] Adds a "Flutter PR Failure Collector" skill
Added my name to AUTHORS
Adds ability to turn off sdfs with paint.
Update DisplayList rendering unittests for new SufaceProvider API and to be able to test Impeller
Add logging to figure out jvm crashes for `hot_mode_tests`
[triage] Add Flutter GPU as a triage team
[Flutter GPU] Allow customizing the vertex layout on a RenderPipeline
Removes SDF option for macOS (always enabled)
Add 'cp: review' label to the manual cherrypick process
[Flutter GPU] Allow allocating multi-mip textures and overwriting specific (mip, slice) levels
Update the list of binaries in the code signing verification test to include new Dart snapshots
adds linux impeller hello world integration test
Add primitive shadows to rendering benchmark
[Impeller] Add golden harness support to the renderer test layer
[Flutter GPU] Add explicit draw counts
Add a tag to the Linux platform properties in .ci.yaml that specifies x64 CPUs
[Flutter GPU] Add explicit draw counts (reland)
[Impeller] Add block-compressed texture format support (BC, ETC2, ASTC)
[Flutter GPU] Add r32Float and remove Apple-only XR pixel formats
add sdf golden variants for OpenGL
Add vector_math to Framework triage
[Impeller] Allow attaching specific texture mip levels and slices
[Flutter GPU] Add block-compressed texture format support (BC, ETC2, ASTC LDR)
Adds macro for fragment shaders to support flutter <= 3.44
Add android_hardware_smoke_test integration tests
Add new file patterns for team-web labeler
[Impeller] Reland: Allow attaching specific texture mip levels and slices
Add a skill for flake analysis
Add vector_math to package issue template
Add step to bootstrap Flutter tool in coverage workflow
Add android 37 platform and build tools to script for android cipd bundle creation
Add updating-android-sdk agent skill for rolling Android SDK in CIPD
[Flutter GPU] Add instanced draw support
Add bare, reidbaker, and android agents
Add docs on bumping Dart
[Flutter GPU] Allow attaching specific texture mip levels and slices for rendering
Add android-agent agent.json and update reidbaker-agent skills
Add core-packages to ecosystem triage
[Impeller] Allow sampling textures with manually-uploaded mip levels
[Flutter GPU] Add blit operations
[Flutter GPU] Expose ASTC HDR texture formats
Enable unit tests for compilation of compute shaders on non-metal backends
[Flutter GPU] Add surface API for framework presentation
Add FlatBuffers Verifier checks to Impeller asset loading
Adds arm64 variant of impeller devicelab tests for windows.
Only allow dependabot to autoupdate GitHub-owned actions
Add note about magnifier issue when using transparent HCPP pv
Adds tests for disabling macos impeller
Add entitlements.txt entries for new dart sdk binaries
Add agent skills for orchestrating cherry-picks to stable and beta channels
Add other types of platform view tests to android_hardware_smoke_test
[Android] Add integration test for SystemUiMode transitions
[Impeller] Add anisotropic filtering support to samplers
[Flutter GPU] Honor the enable argument in RenderPass.setDepthWriteEnable
[Flutter GPU] Add Texture.fromImage to wrap a ui.Image texture
Android_hardware_smoke_test: Enable pixel exact local file comparator to read goldens from flutter asset URI
Add Impeller+OpenGLES startup benchmark for mokey
[Impeller] Add a flat VertexAttributeFormat for vertex inputs
feat(skills): Add shepherd-prs skill for managing approved external contributor PRs
vscode: add missing unicode.h
[CP-beta]Implement UberSDF lines to replace LineContents-based AA lines
Add new motion accessibility features to iOS.
Add API sample and docs for Expansible widget
Add Flutter as a Swift Package dependency
Add RouteSettings to showCupertinoSheet
Implement superellipse support for CupertinoFocusHalo
Add RenderSliver.getMaxPaintRect
Add RawTooltipl example and test
[Android] Add display corner radii support.
Add ExpansibleController.toggle method.
feat: add onEnd to AnimatedCrossFade
Add TestWidgetsApp utility and refactor widget tests to use WidgetsApp
Add `clearError` API to Form and FormFieldState
macOS: Implement tooltip window controller
feat: add routes support in TestWidgetsApp
Add fields getter to FormState
Add toString methods for window positioner classes
feat: add few required properties to test widgets app
Add test for WindowPositioner.toString
Add desktop review teams
Add await to callsites of BasicMessageChannel.send
Add vmservices for accessibilityEvaluation
Add `UnlabaledLeafNodeEvaluation`
Add AI contribution guidelines
Add await or ignore lint to flutter_driver unawaited callsites
Adds geometry dirty nodes
Add scrollCacheExtent to PageView
Allow windows to be created undecorated
Add non-text color contrast evaluation for a11y
Add SensitiveContent widget sample code
Add widget of the week link in SensitiveContent documentation
Add alwaysSizeToContent argument to Overlay.
Add title evaluation
Add await or ignore to future-returning methods defined in Dart SDK
Implement popup windows for macOS
Implement tooltip windows on Linux
Add Support For Built-in Kotlin
[Re-land] Add Support For Built-in Kotlin
Add await or ignore lint to invokeMethod callsites
[A11y ] Add `clearSemantics`in table
Add TabBar API example for scroll notification integration
Add leadingIndex to CarouselController and onItemChanged to CarouselView
Add bottom navigation bar item semantics label
Add `alignment` to `SizeTransition`
feat: add RoundedSuperellipseInputBorder
[material/menu_anchor.dart] Add animations to MenuAnchor.
Add isDark, isLight, and isSystem getters to ThemeMode
Add `TestTextField` and migrate tests
[cupertino.dart] Implement CupertinoMenuAnchor and CupertinoMenuItem using RawMenuAnchor
Preparation to add contentTextStyle flag to SimpleDialog.
Add await to tester.pump callsites
Add contentTextStyle support to SimpleDialog
Allow TabBar to receive a TabBarScrollController
Add RawTooltip.ignorePointer
Add WidgetStatesController support to ExpansionTile
Add warning when there is a widget with color between `Material` and `ListTile`
Add await to flutter_test callsites
Add fallbackColor for PredictiveBackPageTransitionBuilder and PredictiveBackFullscreenPageTransitionBuilder
Add displayCornerRadii support to predictive back transitions.
Add awaits to dev/ callsites
Add await to more flutter/flutter callsites
Add awaits to flutter/test callsites
Add mainAxisAlignment to NavigationRail
Add a Clarification for the docs of suggestionsBuilder of SearchAnchor
Add assert for mutually exclusive errorBuilder and errorText
Add scrollPadding property to DropdownMenu
feat: add infinite carousel support
Add bottom safe area padding to licenses package license page
[ios] Add opt-in inline prediction text input support
[A11y] Allow percentage strings like "50%" as `SemanticsValue` for `ProgressIndicator`
[cupertino.dart] Implement CupertinoMenuAnchor and CupertinoMenuItem using RawMenuAnchor
Add more error handling to unawaited callsites
[CP-beta] Enable the `avoid_final_parameters` lint. (#185216)
Implement macOS wide gamut (Display P3) support
Re-add extended attribute removed by SwiftPM
Add missing mutation-safe delegate iteration and use idomatic syntax
Add warning for plugins not migrated to UIScene
Implements `ClipRSuperellipse` on backdrop filter on platform view
Adds switch for sdf rendering plus golden tests
Codesign XCFrameworks for darwin add to app
Add ability to access plugins from other plugins
Add plugin version to SwiftPM package symlink directory
Add integration scripts and tools for SwiftPM add to app
[CP-beta][SwiftPM] Enable package resolution on xcodebuild commands
[Android] Add predictive back support for FlutterFragment and FlutterFragmentActivity
Add exception to log message in ContentSizingFlag.java
[Android] Add mechanism for setting Android engine flags via Android manifest (take 2)
[a11y][android] Set new CheckState APIs for android API 36
Ensure resize listener is not added if content sizing is not turned on
Migrate abi build paths to use new abi filtering api #AGP9
Rename hcpp opt in flag to `enable-hcpp`
Reland "[Android] Add mechanism for setting Android engine flags via Android manifest (take 2)"
Migrate `addTaskForPrintBuildVariants` and `isFlutterAppProject` to new agp dsl
Migrate profile build type creation and proguard config to new dsl
Adds rockchip series to block list for vulkan.
Add our own wrapper for `CommonExtension` due to change in signature from 8.x->9.0
Allow stylus support on windows
[Windows] Restore and enable IAccessibleEx implementation
Add fl_view_new_sized_to_content()
Add a platform OpenGL context.
Add support for reduced motion/disable animations on the web
Add support for fetching array uniforms by name
Add getUniformMatX support for desktop and mobile
Implement getUniformMatX and getUniformMatXArray functionality on web
Enabled some disabled impeller fragment shader dart tests
Reland `Enabled some disabled impeller fragment shader dart tests`
Add build-time checks for ImpellerC's SkSL compiler
Adds metal background to engine dart tests
Add missing 'throw' to ImageFilter.shader's validation check
Add table detailing AI rule file character limits for various tools
Migrate gradient creation to the new SkShaders API
Add route for 'tmp' to Flutter runner
Re-enable fragment_shader_tests.dart 'Shader Compiler appropriately pads vec3 uniform arrays' test on Vulkan
Adds contents of keys file when a skia gold error occurs.
Adds impeller backend to skia gold client
Add `android_sdk` dependency to `android_engine_opengles_tests`
AI_PROVIDER (for example to openai-compatible with a local Ollama or LM Studio endpoint) to enable grounded explanations. Everything else on this page works without an AI provider.