# flutter changelog > Flutter makes it easy and fast to build beautiful apps for mobile and beyond - Vendor: flutter - Category: Operating Systems - Official site: https://flutter.dev - Tracked by: What's New (https://whatsnew.fyi/product/flutter) - Harvested from: GitHub (flutter/flutter) - Entries below: 7 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### 3.19.0-0.1.pre — Flutter 3.19 beta (January 10, 2024) - Date: 2024-01-11 - Version: 3.19.0-0.1.pre - Original notes: https://github.com/flutter/flutter/releases/tag/3.19.0-0.1.pre - Permalink: https://whatsnew.fyi/product/flutter/releases/3.19.0-0.1.pre - **changed** — Enable TapRegion to detect all mouse button click - **removed** — Remove deprecated NavigatorState.focusScopeNode - **changed** — Bump Android template and integration test Gradle version to 7.6.4 - **changed** — MultiDragPointerState dispatch creation and disposal events - **changed** — SelectionOverlay and TextSelectionOverlay dispatch creation and disposal events - **changed** — ScrollDragController dispatch creation and disposal events - **changed** — SnapshotPainter dispatch creation and disposal events - **changed** — Animate TextStyle.fontVariations - **added** — Add Overlay.wrap for convenience - **added** — Add accessibility identifier to SemanticsProperties - **fixed** — Handle the case when _CupertinoBackGestureDetector is disposed during the drag - **fixed** — Fix typo in useInheritedMediaQuery documentation - **fixed** — Fix CupertinoActionSheet design - **fixed** — Fix reorderable_list drop animation - **added** — Add clear button label to Cupertino text field - **changed** — Move package:web dependency to dev dependency - **changed** — Use new enabledFeature param for Analytics - **changed** — Use SemanticsUpdateBuilder again and remove all references to temporary SemanticsUpdateBuilderNew - **changed** — Document difference between softWrap and maxLine - **changed** — Default identifier and tooltip to null in SemanticsProperties - **added** — Add onEnd callback into AnimatedSize - **changed** — Make TextSpan hit testing precise - **added** — Add find.textRange.ofSubstring changes - **changed** — Integrate testWidgets with leak tracking The release of the Flutter 3.19 beta contains the changes noted below. To try out the newest beta run: ``` flutter channel beta flutter upgrade ``` #### Flutter 3.19 beta (January 10, 2024) ##### Flutter Framework ###### Framework * Retry on transient Skia failure. by @Hixie in https://github.com/flutter/flutter/pull/139182 * Reverts "Retry on transient Skia failure." by @auto-submit in https://github.com/flutter/flutter/pull/139407 * Add Impeller complex layout impeller benchmarks. by @jonahwilliams in https://github.com/flutter/flutter/pull/139490 * Enable TapRegion to detect all mouse button click by @anidotnet in https://github.com/flutter/flutter/pull/136799 * Removed deprecated NavigatorState.focusScopeNode by @Piinks in https://github.com/flutter/flutter/pull/139260 * Roll dependencies by @Hixie in https://github.com/flutter/flutter/pull/139606 * Reset deprecation period for setPubRootDirectories by @Piinks in https://github.com/flutter/flutter/pull/139592 * [Android] Bump template & integration test Gradle version to 7.6.4 by @camsim99 in https://github.com/flutter/flutter/pull/139276 * Don't send images to Gold on release branches by @Piinks in https://github.com/flutter/flutter/pull/139706 * MultiDragPointerState should dispatch creation and disposal events. by @ksokolovskyi in https://github.com/flutter/flutter/pull/138807 * SelectionOverlay and TextSelectionOverlay should dispatch creation and disposal events. by @ksokolovskyi in https://github.com/flutter/flutter/pull/138804 * ScrollDragController should dispatch creation and disposal events. by @ksokolovskyi in https://github.com/flutter/flutter/pull/138800 * SnapshotPainter should dispatch creation and disposal events. by @ksokolovskyi in https://github.com/flutter/flutter/pull/138810 * Animate TextStyle.fontVariations by @Hixie in https://github.com/flutter/flutter/pull/138881 * Add Overlay.wrap for convenience by @goderbauer in https://github.com/flutter/flutter/pull/139823 * Add accessibility identifier to `SemanticsProperties` by @bartekpacia in https://github.com/flutter/flutter/pull/138331 * Handle the case when _CupertinoBackGestureDetector is disposed during the drag. by @hangyujin in https://github.com/flutter/flutter/pull/139585 * Renamed `appbar` to `app_bar` directory in API Examples Tests by @piedcipher in https://github.com/flutter/flutter/pull/139922 * Implement `switch` expressions in `examples/` and `animation/` by @nate-thegrate in https://github.com/flutter/flutter/pull/139882 * fix typo of 'not' instead of 'now' for `useInheritedMediaQuery` by @timmaffett in https://github.com/flutter/flutter/pull/139940 * [Docs] Added missing `CupertinoApp.showSemanticsDebugger` by @piedcipher in https://github.com/flutter/flutter/pull/139913 * Make tests more resilient to Skia gold failures and refactor flutter_goldens for extensive technical debt removal by @Hixie in https://github.com/flutter/flutter/pull/139549 * Reverts "Make tests more resilient to Skia gold failures and refactor flutter_goldens for extensive technical debt removal" by @auto-submit in https://github.com/flutter/flutter/pull/140085 * Catch `Stopwatch` with static analysis by @LongCatIsLooong in https://github.com/flutter/flutter/pull/140019 * 🎨: fix cupertionActionSheet design by @Anishishi in https://github.com/flutter/flutter/pull/134345 * Revert "Dynamic view sizing" by @chingjun in https://github.com/flutter/flutter/pull/140165 * fix reorderable_list drop animation by @yiiim in https://github.com/flutter/flutter/pull/139362 * Cupertino text clear label by @MitchellGoodwin in https://github.com/flutter/flutter/pull/129727 * Increase versions of leak tracker libraries. by @polina-c in https://github.com/flutter/flutter/pull/140018 * Move package:web dependency to dev dependency by @srujzs in https://github.com/flutter/flutter/pull/139696 * Reorganize dependencies on leak_tracker. by @polina-c in https://github.com/flutter/flutter/pull/1 _[Truncated at 4000 characters — full notes: https://github.com/flutter/flutter/releases/tag/3.19.0-0.1.pre]_ ### 3.18.0-0.1.pre — Flutter 3.18 beta (December 5, 2023) - Date: 2023-12-12 - Version: 3.18.0-0.1.pre - Original notes: https://github.com/flutter/flutter/releases/tag/3.18.0-0.1.pre - Permalink: https://whatsnew.fyi/product/flutter/releases/3.18.0-0.1.pre - **added** — Support for Apple system fonts in Flutter text rendering on iOS - **changed** — Switch.adaptive implementation no longer depends on the Cupertino library and is now fully handled by the Material component - **added** — Support for customizing the appearance of adaptive components - **added** — Configure default ScrollBehavior with MultiTouchDragStrategy.latestPointer for number-of-fingers-agnostic scrolling behavior - **fixed** — Scrolling now stops as expected when starting to drag or tap while a scroll is underway - **added** — Support for MaterialStatesController in TextField and TextFormField to listen to MaterialState changes - **fixed** — Fixed undo/redo history disappearing on Japanese keyboards - **added** — Ability to modify the UndoHistory stack with undoStackModifier - **changed** — Make UnderlineInputBorder consistent - **added** — Introduce AnimationStyle - **fixed** — Fix sliver persistent header expand animation - **added** — Add ability to customize NavigationBar indicator overlay and fix indicator shape for the overlay - **added** — AppLifecycleListener now dispatches creation and disposal events - **added** — InkFeature now dispatches creation and disposal events - **added** — Send caret rect to embedder on selection update - **added** — HeroController now dispatches creation and disposal events - **added** — Provide helpful error message when ColorScheme.brightness does not match ThemeData.brightness - **added** — ScrollActivity now dispatches creation and disposal events - **added** — SemanticsHandle now dispatches creation and disposal events - **added** — Ticker now dispatches creation and disposal events The release of the Flutter 3.18 beta contains the changes noted below. We’ve also included summaries of **notable commits** towards features and enhancements of interest. These summaries help you quickly assess what this beta has to offer and why you should use it, as well as highlight the features we’d love your feedback on and your help testing. To try out the newest beta run: ``` flutter channel beta flutter upgrade ``` #### Flutter 3.18 beta (December 5, 2023) ##### Flutter Framework ###### Notable commits ###### Added support for Apple system fonts Flutter text now looks a little more compact and a little more native on iOS. For the "Text" font this will be more secure in the future against possible changes to Apple's API. For the "Display" font, this will now work correctly when it didn't before. * Refactor to use Apple system fonts by @MitchellGoodwin in https://github.com/flutter/flutter/pull/137275 ###### Adaptive `Switch` The implementation of Switch.adaptive no longer depends on the Cupertino library. Everything is handled by the Material component and there are no longer any switch properties that are not supported by the `.adaptive` version. We also added support for customizing the appearance of adaptive components. * Adaptive `Switch` by @QuncCccccc in https://github.com/flutter/flutter/pull/130425 ###### Scrolling Flutter used to scroll twice as fast if you dragged two fingers. You can now configure the default `ScrollBehavior` with `MultiTouchDragStrategy.latestPointer` to get number-of-fingers-agnostic scrolling behavior. We also updated scrolling so now if you start dragging or tap while a scroll is underway the scroll stops as expected. * Introduce multi-touch drag strategies for `DragGestureRecognizer` by @xu-baolin in https://github.com/flutter/flutter/pull/136708 * Fix 2D tap to stop scrolling by @Piinks in https://github.com/flutter/flutter/pull/138442 ###### Increased access to text widgets’ state We added support for a `MaterialStatesController` in `TextField` and `TextFormField` so that you can listen to `MaterialState` changes. * TextField and TextFormField can use a MaterialStatesController by @Renzo-Olivares in https://github.com/flutter/flutter/pull/133977 ###### UndoHistory stack We fixed a problem where the undo/redo history could disappear on Japanese keyboards, and made it so you can now modify the `UndoHistory` stack. * Add `undoStackModifier` to `UndoHistory` by @Renzo-Olivares in https://github.com/flutter/flutter/pull/138674 ###### Visuals and animations This beta includes many improvements to visuals and animations across the Flutter Framework, most notably: * Make `UnderlineInputBorder` consistent by @bernaferrari in https://github.com/flutter/flutter/pull/124153 * Introduce `AnimationStyle` by @TahaTesser in https://github.com/flutter/flutter/pull/137945 * Fix sliver persistent header expand animation by @feduke-nukem in https://github.com/flutter/flutter/pull/137913 * Add ability to customize `NavigationBar` indicator overlay and fix indicator shape for the overlay by @TahaTesser in https://github.com/flutter/flutter/pull/138901 ###### Framework The remaining Framework commits from Flutter Framework are listed below: * Upgrade leak_tracker and remove some deps in allow list. by @polina-c in https://github.com/flutter/flutter/pull/137806 * [leak-tracking] Add more leak tracking in test/painting #3 by @droidbg in https://github.com/flutter/flutter/pull/136170 * [web] dispatch corresponding keyup events in text editing integrations by @knopp in https://github.com/flutter/flutter/pull/136874 * Updated the nested navigation NavigationBar example by @HansMuller in https://github.com/flutter/flutter/pull/137788 * AppLifecycleListener should dispatch creation and disposal events. by @ksokolovskyi in https://github.com/flutter/flutter/pull/137840 * InkFeature should dispatch creation and disposal events. by @ksokolovskyi in https://github.com _[Truncated at 4000 characters — full notes: https://github.com/flutter/flutter/releases/tag/3.18.0-0.1.pre]_ ### 3.17.0-0.1.pre — Flutter 3.17 beta (November 15, 2023) - Date: 2023-12-11 - Version: 3.17.0-0.1.pre - Original notes: https://github.com/flutter/flutter/releases/tag/3.17.0-0.1.pre - Permalink: https://whatsnew.fyi/product/flutter/releases/3.17.0-0.1.pre - **fixed** — Fix the character field of RawKeyEvent is always null on iOS - **removed** — Remove unused InlineSpan methods - **fixed** — Fix memory leaks in DateRangePickerDialog - **fixed** — RenderEditable should dispose created layers - **fixed** — Call markNeedsPaint when adding overlayChild to Overlay - **fixed** — Fix memory leaks in BottomSheet elevation resolution - **changed** — Update MediaQuery documentation to highlight asynchronous nature of size - **fixed** — Fix page up page down home end shortcut behavior on web - **fixed** — TestClipPaintingContext should dispose ContainerLayer - **fixed** — RenderAnnotatedRegion should dispose created layers - **fixed** — TimePickerDialog should dispose created ChangeNotifiers - **added** — Add key event handlers that happen before or after the focus traversal - **added** — Add SizeTransition.fixedCrossAxisSizeFactor - **fixed** — Fix FlexibleSpaceBar does compositing with near zero opacity - **fixed** — RenderSnapshotWidget should dispose created OffsetLayer - **fixed** — Include size factors when computing the intrinsic size of a RenderPositionedBox - **added** — Add profilePlatformChannels service extension - **fixed** — SearchBar should listen to changes to the SearchController and update suggestions on change - **fixed** — Floating SnackBar should always float above the bottom widgets - **fixed** — Fix chip widgets don't apply the provided iconTheme The release of the Flutter 3.17 beta contains the changes noted below. To try out the newest beta run: ``` flutter channel beta flutter upgrade ``` #### Flutter 3.17 beta (November 15, 2023) ##### Flutter Framework ###### Framework * Update dialog tests for Material3 by @MitchellGoodwin in https://github.com/flutter/flutter/pull/135775 * Fix a couple of CupertinoTextField tests to avoid leak-tracking test failures. by @ksokolovskyi in https://github.com/flutter/flutter/pull/135851 * leak track tab_scaffold_test.dart by @NobodyForNothing in https://github.com/flutter/flutter/pull/135309 * Cover some cupertino tests with leak tracking by @NobodyForNothing in https://github.com/flutter/flutter/pull/135230 * Fix the character field of RawKeyEvent is always null on iOS by @LinXunFeng in https://github.com/flutter/flutter/pull/135100 * Remove unused InlineSpan methods by @LongCatIsLooong in https://github.com/flutter/flutter/pull/135882 * Replace dead link in `CupertinoPicker` documentation by @Pante in https://github.com/flutter/flutter/pull/135897 * Tiny improve code style by using records instead of lists by @fzyzcjy in https://github.com/flutter/flutter/pull/135886 * Fix memory leaks in DateRangePickerDialog. by @ksokolovskyi in https://github.com/flutter/flutter/pull/136034 * RenderEditable should dispose created layers. by @polina-c in https://github.com/flutter/flutter/pull/135942 * Call `markNeedsPaint` when adding overlayChild to `Overlay` by @LongCatIsLooong in https://github.com/flutter/flutter/pull/135941 * Simplify assertion in `AsyncSnapshot` by @mateusfccp in https://github.com/flutter/flutter/pull/135899 * bottom_sheet: Clarify doc about behavior when useSafeArea is false by @chrisbobbe in https://github.com/flutter/flutter/pull/134793 * Allow leaks around tap down/up, while flackiness is not fixed. by @polina-c in https://github.com/flutter/flutter/pull/136133 * Update BottomSheet test for M3 + fix an issue in elevation resolution by @bleroux in https://github.com/flutter/flutter/pull/136071 * Update `CircleAvatar` & `DataTable` tests for Material 3 by @TahaTesser in https://github.com/flutter/flutter/pull/135901 * [leak-tracking] Add leak tracking in test/painting #2 by @droidbg in https://github.com/flutter/flutter/pull/136169 * Reland "Adds a parent scope TraversalEdgeBehavior and fixes modal rou… by @chunhtai in https://github.com/flutter/flutter/pull/134554 * Update `MediaQuery` documentation to highlight asynchronous nature of size by @gspencergoog in https://github.com/flutter/flutter/pull/135719 * [web] Fix `page up` `page down` `home` `end` shortcut behavior on web by @htoor3 in https://github.com/flutter/flutter/pull/135454 * [leak-tracking] Cover testwidgets with leak tracking in test/gestures by @droidbg in https://github.com/flutter/flutter/pull/136166 * [leak-tracking] Add leak tracking in test/painting #1 by @droidbg in https://github.com/flutter/flutter/pull/136167 * TestClipPaintingContext should dispose ContainerLayer by @polina-c in https://github.com/flutter/flutter/pull/135949 * RenderAnnotatedRegion should dispose created layers. by @ksokolovskyi in https://github.com/flutter/flutter/pull/136086 * Cover more test/material tests with leak tracking. by @ksokolovskyi in https://github.com/flutter/flutter/pull/136093 * TimePickerDialog should dispose created ChangeNotifiers. by @ksokolovskyi in https://github.com/flutter/flutter/pull/136261 * [flutter_tools] allow tool integration tests to quit on SIGINT by @christopherfujino in https://github.com/flutter/flutter/pull/136271 * Seperate localization tests for Material2 and Material3 by @MitchellGoodwin in https://github.com/flutter/flutter/pull/135779 * [framework] restore old zoom page transition for benchmarking. by @jonahwilliams in https://github.com/flutter/flutter/pull/133346 * Add key event handlers that happen before or after the focus traversal by @gspencergoog in https://github.com/flutter/flutter _[Truncated at 4000 characters — full notes: https://github.com/flutter/flutter/releases/tag/3.17.0-0.1.pre]_ ### 3.16.0-0.1.pre — Flutter 3.16 beta (October 11, 2023) - Date: 2023-10-20 - Version: 3.16.0-0.1.pre - Original notes: https://github.com/flutter/flutter/releases/tag/3.16.0-0.1.pre - Permalink: https://whatsnew.fyi/product/flutter/releases/3.16.0-0.1.pre - **fixed** — CupertinoAlertDialog no longer creates ScrollController on every build when null values are passed in constructor - **fixed** — SearchBarState disposes FocusNode if it created it - **fixed** — RenderParagraph disposes instances of SelectableFragments - **fixed** — MaterialAppState disposes MaterialHeroController - **fixed** — AnimationSheetRecorder is disposed to avoid leaks - **fixed** — DropdownMenuState disposes TextEditingController - **fixed** — Undisposed items in Cupertino app and route are fixed - **fixed** — MinimumTextContrastGuideline disposes image - **added** — Add CheckedPopupMenuItem.onTap callback - **fixed** — subtitleTextStyle.color is now applied to ListTile.subtitle in Material 2 - **fixed** — DraggableScrollableActuator disposes notifier - **fixed** — Chip.shape's side is now used when provided in Material 3 - **fixed** — DataTable's headingTextStyle and dataTextStyle are merged with default text style - **fixed** — TabBar now uses labelStyle and unselectedLabelStyle color - **fixed** — NavigationRailDestination's label opacity while disabled is now coherent with the icon - **fixed** — SearchDelegate disposes resources - **fixed** — DropdownRoutePage disposes the created ScrollController - **fixed** — ExpansionTile properties can now be updated with setState - **added** — Integration test allows capture of screenshots for FlutterFragmentActivity - **fixed** — TestWidgetsFlutterBinding disposes old RestorationManager on reset - **fixed** — EditableTextState disposes cursorVisibilityNotifier - **fixed** — Remove non-needed controllers in SegmentedButton - **fixed** — TabBarViewState disposes created instances of PageController - **fixed** — Scrollbar example crash is fixed - **changed** — Update links to iOS embedder docs to point to new Doxygen docs - **fixed** — CupertinoTextField is at least as tall as its first line of placeholder - **fixed** — InputDecoration.error activates error state - **removed** — Remove TextPainter migration flag from the framework - **fixed** — RestorationManager dispatches creation in constructor - **fixed** — Memory leak in DraggableScrollableSheetState is fixed - **fixed** — Day picker disposes created MaterialStatesController instances - **fixed** — SelectableRegion onSelectionChange is called when the selection changes The release of the Flutter 3.16 beta contains the changes noted below. To try out the newest beta run: ``` flutter channel beta flutter upgrade ``` ##### Flutter 3.16 beta (October 11, 2023) ###### Framework * CupertinoAlertDialog should not create ScrollController on every build, if null values are passed in constructor. by @polina-c in https://github.com/flutter/flutter/pull/133918 * _SearchBarState should dispose FocusNode, if it created it. by @polina-c in https://github.com/flutter/flutter/pull/133947 * RenderParagraph should dispose instances of SelectableFragments. by @polina-c in https://github.com/flutter/flutter/pull/133915 * _MaterialAppState should dispose MaterialHeroController. by @polina-c in https://github.com/flutter/flutter/pull/133951 * Cover more tests with leak tracking. by @polina-c in https://github.com/flutter/flutter/pull/133958 * Dispose AnimationSheetRecorder to avoid leaks by @dkwingsmt in https://github.com/flutter/flutter/pull/133365 * Revert "_SearchBarState should dispose FocusNode, if it created it." by @polina-c in https://github.com/flutter/flutter/pull/134072 * Revert "CupertinoAlertDialog should not create ScrollController on every build, if null values are passed in constructor." by @polina-c in https://github.com/flutter/flutter/pull/134071 * _DropdownMenuState should dispose TextEditingController. by @polina-c in https://github.com/flutter/flutter/pull/133914 * Fix not disposed items in Cupertino app and route. by @polina-c in https://github.com/flutter/flutter/pull/134085 * MinimumTextContrastGuideline should dispose image. by @polina-c in https://github.com/flutter/flutter/pull/133861 * Add `CheckedPopupMenuItem.onTap` callback by @piedcipher in https://github.com/flutter/flutter/pull/134000 * Fix `subtitleTextStyle.color` isn't applied to the `ListTile.subtitle` in Material 2 by @burakJs in https://github.com/flutter/flutter/pull/133422 * Clean the fixed TODOs. by @polina-c in https://github.com/flutter/flutter/pull/133859 * DraggableScrollableActuator should dispose notifier. by @polina-c in https://github.com/flutter/flutter/pull/133917 * Reland "Fix `Chip.shape`'s side is not used when provided in Material 3" by @TahaTesser in https://github.com/flutter/flutter/pull/133856 * Fix `DataTable`'s `headingTextStyle` & `dataTextStyle` are not merged with default text style by @TahaTesser in https://github.com/flutter/flutter/pull/134138 * Fix `TabBar` doesn't use `labelStyle` & `unselectedLabelStyle` color by @TahaTesser in https://github.com/flutter/flutter/pull/133989 * Fixed [NavigationRailDestination]'s label opacity while disabled not being coherent with the icon by @matheus-kirchesch-btor in https://github.com/flutter/flutter/pull/132345 * SearchDelegate should dispose resources. by @polina-c in https://github.com/flutter/flutter/pull/133948 * Cover some test/widgets tests with leak tracking by @ksokolovskyi in https://github.com/flutter/flutter/pull/133803 * DropdownRoutePage should dispose the created ScrollController. by @polina-c in https://github.com/flutter/flutter/pull/133941 * Fix `ExpansionTile` properties cannot be updated with `setState` by @TahaTesser in https://github.com/flutter/flutter/pull/134218 * [integration_test] Allow capture of screenshots for `FlutterFragmentActivity`s by @gmackall in https://github.com/flutter/flutter/pull/132406 * _SearchBarState should dispose FocusNode, if it created it. by @polina-c in https://github.com/flutter/flutter/pull/134076 * CupertinoAlertDialog should not create ScrollController on every build, if null values are passed in constructor. by @polina-c in https://github.com/flutter/flutter/pull/134075 * TestWidgetsFlutterBinding should dispose old RestorationManager on reset. by @polina-c in https://github.com/flutter/flutter/pull/133999 * EditableTextState should dispose cursorVisibilityNotifier. by @polina-c in https://github.com/flutter/flutter/pull/133858 * Remove non needed controllers _[Truncated at 4000 characters — full notes: https://github.com/flutter/flutter/releases/tag/3.16.0-0.1.pre]_ ### 3.15.0-15.1.pre — Flutter 3.15 beta (September 15, 2023) - Date: 2023-09-15 - Version: 3.15.0-15.1.pre - Original notes: https://github.com/flutter/flutter/releases/tag/3.15.0-15.1.pre - Permalink: https://whatsnew.fyi/product/flutter/releases/3.15.0-15.1.pre - **added** — Add Search Web to selection controls for iOS - **added** — Add PopupMenuButton.iconColor and PopupMenuTheme.iconSize - **added** — Add textCapitalization property for SearchBar and SearchAnchor - **added** — Add more info to OverlayState.insert error messages - **added** — Add an example for TapAndPanGestureRecognizer - **added** — Add hasInteractedByUser getter in FormField - **added** — Add SemanticsNode Finders for searching the semantics tree - **added** — Add double click and double click + drag gestures to SelectionArea - **changed** — Migrate framework to fully use package:web - **changed** — Make TextPainter rounding hack disabled by default - **changed** — Keep alive support for 2D scrolling - **changed** — TextField should correctly resolve provided style for material states - **changed** — Selection area should move selection word by word on a long press drag - **changed** — Update AutomatedTestWidgetsFlutterBinding.pump to support microsecond precision - **fixed** — Fix TabBarTheme.indicatorColor not applied in Material 2 - **fixed** — Fix PopupMenuButton icon using unexpected color property - **fixed** — Fix DropdownButtonFormField input border clipping - **fixed** — Fix PopupMenuItem and CheckedPopupMenuItem has redundant ListTile padding and update default horizontal padding for Material 3 - **fixed** — Fix prefer_null_aware_operators violation - **fixed** — Fix Paginated Data Table row number at footer in last page - **removed** — Remove the fast reassemble / single widget reload feature - **deprecated** — Deprecate describeEnum The release of the Flutter 3.15 beta contains the changes noted below. To try out the newest beta run: ``` flutter channel beta flutter upgrade ``` #### Flutter 3.15 beta (September 15, 2023) ##### Flutter ###### Framework * Handle breaking changes in leak_tracker. by @polina-c in https://github.com/flutter/flutter/pull/131998 * More documentation about warm-up frames by @Hixie in https://github.com/flutter/flutter/pull/132085 * Remove Iterator from _History by @justinmc in https://github.com/flutter/flutter/pull/132101 * [framework] Add Search Web to selection controls for iOS by @LouiseHsu in https://github.com/flutter/flutter/pull/131898 * Paginated Data Table : Fixed Row number at footer in last page by @aakash-pamnani in https://github.com/flutter/flutter/pull/130389 * Fix `TabBarTheme.indicatorColor` not applied in Material 2 by @TahaTesser in https://github.com/flutter/flutter/pull/132123 * Document that missed_frame_build_budget_count is misleading by @Hixie in https://github.com/flutter/flutter/pull/132137 * More PageStorage clarity in the documentation by @Hixie in https://github.com/flutter/flutter/pull/131954 * Add `PopupMenuButton.iconColor`, `PopupMenuTheme.iconSize` and fix button icon using unexpected color propert by @TahaTesser in https://github.com/flutter/flutter/pull/132054 * Revert of #120385 by @Jasguerrero in https://github.com/flutter/flutter/pull/132167 * Add `textCapitalization` property for `SearchBar` and `SearchAnchor` by @QuncCccccc in https://github.com/flutter/flutter/pull/131459 * Add more info to `OverlayState.insert` error messages by @LongCatIsLooong in https://github.com/flutter/flutter/pull/129363 * Use pattern matching to avoid strange type annotations by @LongCatIsLooong in https://github.com/flutter/flutter/pull/131964 * Revert "Handle breaking changes in leak_tracker." by @zanderso in https://github.com/flutter/flutter/pull/132223 * Reland "[web] Migrate framework to fully use package:web (#128901)" by @mdebbar in https://github.com/flutter/flutter/pull/132092 * Add an example for `TapAndPanGestureRecognizer` by @Renzo-Olivares in https://github.com/flutter/flutter/pull/131873 * Handle hasStrings on web by @justinmc in https://github.com/flutter/flutter/pull/132093 * Deprecate `describeEnum`. by @bernaferrari in https://github.com/flutter/flutter/pull/125016 * Remove shrinkWrap from flexible_space_bar_test.dart by @thkim1011 in https://github.com/flutter/flutter/pull/132173 * Sample code for ImageProvider by @Hixie in https://github.com/flutter/flutter/pull/131952 * Making TextPainter rounding hack disabled by default by @LongCatIsLooong in https://github.com/flutter/flutter/pull/132094 * Fix prefer_null_aware_operators violation by @srawlins in https://github.com/flutter/flutter/pull/132242 * Add missing `ignore: deprecated_member_use` to unblock the engine roller by @LongCatIsLooong in https://github.com/flutter/flutter/pull/132280 * Keep alive support for 2D scrolling by @Piinks in https://github.com/flutter/flutter/pull/131641 * Fix `DropdownButtonFormField` input border clipping by @TahaTesser in https://github.com/flutter/flutter/pull/131481 * Fix `PopupMenuItem` & `CheckedPopupMenuItem` has redundant `ListTile` padding and update default horizontal padding for Material 3 by @TahaTesser in https://github.com/flutter/flutter/pull/131609 * Analyze code snippets in flutter_test docs by @goderbauer in https://github.com/flutter/flutter/pull/132246 * Add hasInteractedByUser getter in FormField by @dumazy in https://github.com/flutter/flutter/pull/131539 * An example of parentData usage. by @Hixie in https://github.com/flutter/flutter/pull/131818 * TextPainter migration cleanup by @LongCatIsLooong in https://github.com/flutter/flutter/pull/132317 * Upgrade flutter packages. by @polina-c in https://github.com/flutter/flutter/pull/132326 * GridView sample code by @Hixie in https://github.com/flutter/flutter/pull/131900 * setState documentat _[Truncated at 4000 characters — full notes: https://github.com/flutter/flutter/releases/tag/3.15.0-15.1.pre]_ ### 3.14.0-0.1.pre — 3.14 Beta (August 21, 2023) - Date: 2023-08-21 - Version: 3.14.0-0.1.pre - Original notes: https://github.com/flutter/flutter/releases/tag/3.14.0-0.1.pre - Permalink: https://whatsnew.fyi/product/flutter/releases/3.14.0-0.1.pre - **added** — Add optional optionsViewOpenDirection parameter to Autocomplete and RawAutocomplete - **added** — DropdownMenu can be expanded to its parent size - **changed** — Change the default for ThemeData.useMaterial3 to true - **changed** — Unify text field focus management in desktops - **changed** — Migrate web-only initialization APIs - **fixed** — Fix web debug RPCError - **fixed** — Fix Xcode 15 build failure due to DT_TOOLCHAIN_DIR - **fixed** — Make space character optional when tree shaking fonts - **fixed** — Apply color blends on the CPU and fix mask blurs and the Gaussian blur coverage hint in Impeller - **fixed** — Fix ExpansionTileTheme.shape assignment in ExpansionTile - **fixed** — Implement preferPaintInterior correctly for _CompoundBorder - **fixed** — Fix default icon color constants reversed brightness documentation - **fixed** — Fix PlatformRouteInformationProvider pushing new entry when query parameter changes - **fixed** — Allow tap on button behind snack bar defined by margin - **fixed** — Exclude Tooltip's overlay child from SelectableRegion - **fixed** — Add threshold when comparing screen order for selectables #### Flutter 3.14 beta The release of the Flutter 3.14 beta contains the changes noted below. To try out the newest beta run: ``` flutter channel beta flutter upgrade ``` ##### Hotfixes to the 3.14 beta ###### 3.14.1 beta (Aug 31, 2023) ###### Framework * Fix web debug RPCError by @christopherfujino in https://github.com/flutter/flutter/issues/132363 * Fix Xcode 15 build failure due to DT_TOOLCHAIN_DIR by @vashworth in https://github.com/flutter/flutter/issues/132957 * Make space character optional when tree shaking fonts by @christopherfujino in https://github.com/flutter/flutter/issues/132978 ###### Engine * [Impeller] Apply color blends on the CPU and fix mask blurs and the Gaussian blur coverage hint by @bdero in https://github.com/flutter/flutter/issues/133511 #### Flutter 3.14 beta ##### Flutter ###### Framework * Super tiny code optimization: No need to redundantly check whether value has changed by @fzyzcjy in https://github.com/flutter/flutter/pull/130050 * Revert "fix a bug when android uses CupertinoPageTransitionsBuilder..." by @HansMuller in https://github.com/flutter/flutter/pull/130144 * Tiny one space formatting fix by @fzyzcjy in https://github.com/flutter/flutter/pull/130053 * (Raw)Autocomplete: Add optional [optionsViewOpenDirection] param by @chrisbobbe in https://github.com/flutter/flutter/pull/129802 * Test that inspector does not hold objects. by @polina-c in https://github.com/flutter/flutter/pull/130102 * Revert "[a11y] CupertinoSwitch On/Off labels" by @Jasguerrero in https://github.com/flutter/flutter/pull/130166 * Upgrade framework pub dependencies, roll engine with rolled dart sdk by @aam in https://github.com/flutter/flutter/pull/130163 * Add a threshold when comparing screen order for selectables. by @hangyujin in https://github.com/flutter/flutter/pull/130043 * Fix default icon color constants reversed brightness documentation by @rydmike in https://github.com/flutter/flutter/pull/130231 * Implement preferPaintInterior correctly for _CompoundBorder by @Hixie in https://github.com/flutter/flutter/pull/129851 * fix: `ExpansionTileTheme.shape` assignment in `ExpansionTile` by @SirusCodes in https://github.com/flutter/flutter/pull/127749 * `DropdownMenu` can be expanded to its parent size by @QuncCccccc in https://github.com/flutter/flutter/pull/129753 * Upgrade leak_tracker to 7.0.6. by @polina-c in https://github.com/flutter/flutter/pull/130346 * Links in `material` library docs are outdated by @ttanimichi in https://github.com/flutter/flutter/pull/129891 * autocomplete: Remove mistaken paragraph in `onSelected` doc by @chrisbobbe in https://github.com/flutter/flutter/pull/130190 * Enable not GCed leak tracking. by @polina-c in https://github.com/flutter/flutter/pull/130159 * Update `RadioListTile` tests format for M2/M3 by @TahaTesser in https://github.com/flutter/flutter/pull/130391 * Update `Divider`/`VerticalDivider` and theme tests for M2/M3 by @TahaTesser in https://github.com/flutter/flutter/pull/130415 * Add missing links to examples that aren't linked anywhere by @gspencergoog in https://github.com/flutter/flutter/pull/130422 * Reland [a11y] CupertinoSwitch On/Off labels by @gilnobrega in https://github.com/flutter/flutter/pull/130173 * Refactor JSNumber.toDart and Object.toJS by @srujzs in https://github.com/flutter/flutter/pull/129436 * Update `Checkbox` tests for M2/M3 by @QuncCccccc in https://github.com/flutter/flutter/pull/130351 * Exclude `Tooltip`'s overlay child from SelectableRegion by @LongCatIsLooong in https://github.com/flutter/flutter/pull/130181 * Unifies text field focus management in desktops by @chunhtai in https://github.com/flutter/flutter/pull/129652 * Mark leak in text_form_field_test.dart. by @polina-c in https://github.com/flutter/flutter/pull/130468 * Upgrade leak_tracker. by @polina-c in https://github.com/flutter/flutter/pull/130507 * PlatformRouteInformationProvider does not push new entry if query _[Truncated at 4000 characters — full notes: https://github.com/flutter/flutter/releases/tag/3.14.0-0.1.pre]_ ### 3.13.0-0.1.pre — 3.13 Beta (July 12, 2023) - Date: 2023-07-12 - Version: 3.13.0-0.1.pre - Original notes: https://github.com/flutter/flutter/releases/tag/3.13.0-0.1.pre - Permalink: https://whatsnew.fyi/product/flutter/releases/3.13.0-0.1.pre - **fixed** — Allow OverlayPortal to be added/removed from the tree in a layout callback - **fixed** — Fix assertion when a WidgetSpan is scaled by certain textScaleFactor values - **fixed** — Fix Tooltip crash when selected in a SelectableRegion - **fixed** — Constrain _RenderScaledInlineWidget child size in computeDryLayout - **changed** — Minor adjustments on 2D APIs - **fixed** — Revert removal of wait until scheduled in Impeller - **fixed** — Avoid culling when the current matrix has perspective in Impeller - **changed** — No-op fragment program on Android until it works in Impeller - **fixed** — Made the clear optimization handle backdrop filters in Impeller - **fixed** — Fix hittest with non-SemanticsObject on iOS - **changed** — Disable autocorrection for iOS 17 - **fixed** — Fix ConcurrentModificationError in DDS - **added** — Migration guide for moving from BottomNavigationBar to NavigationBar - **changed** — Use Material3 in the 2D viewport tests - **fixed** — Fix Null check operator used on a null value on TextField with contextMenuBuilder - **changed** — Remove textScaleFactor dependent logic from AppBar - **fixed** — handleSelectWord in MultiSelectableSelectionContainerDelegate should handle rects inside of rects - **changed** — Remove more rounding hacks from TextPainter - **changed** — Show error message in release mode when box is not laid out without losing performance - **added** — Add viewId to PointerEvents - **changed** — Make inspector weakly referencing the inspected objects - **fixed** — Do not try to load main/default asset image if only higher-res variants exist - **changed** — Update menu API docs to help developers migrate to m3 - **changed** — Disable blinking cursor when EditableText.showCursor is false - **fixed** — Fix navigation rail with long labels misplaced highlights - **changed** — Navigator.pop before PopupMenuItem onTap call - **changed** — Update chip.dart to use set of MaterialState #### Flutter 3.13 beta The release of the Flutter 3.13 beta contains the changes noted below. To try out the newest beta run: ``` flutter channel beta flutter upgrade ``` ##### Hotfixes to the 3.13 beta ###### 3.13.3 beta (August 14, 2023) ###### Framework * Allow OverlayPortal to be added/removed from the tree in a layout callback by @LongCatIsLooong in https://github.com/flutter/flutter/issues/131002 * Fix assertion when a WidgetSpan is scaled by certain textScaleFactor values by @LongCatIsLooong in https://github.com/flutter/flutter/issues/131004 * Fix Tooltip crash when selected in a SelectableRegion by @LongCatIsLooong in https://github.com/flutter/flutter/issues/131005 * Constrain _RenderScaledInlineWidget child size in computeDryLayout in by @LongCatIsLooong https://github.com/flutter/flutter/issues/132095 ###### Engine * No changes ###### 3.13.2 beta (August 07, 2023) ###### Framework * Minor adjustments on 2D APIs by @Piinks in https://github.com/flutter/flutter/pull/131436 ###### Engine * [Impeller] Revert removal of wait until scheduled by @jonahwilliams in https://github.com/flutter/engine/pull/44122 * [Impeller] Avoid culling when the current matrix has perspective by @dnfield in https://github.com/flutter/engine/pull/44106 * [Impeller] No-op fragment program on Android until it works by @jonahwilliams in https://github.com/flutter/engine/pull/44068 * [Impeller] Made the clear optimization handle backdrop filters by @gaaclarke in https://github.com/flutter/engine/pull/44222 * [iOS][A11Y] Fix hittest with non-SemanticsObject by @cyanglaz in https://github.com/flutter/engine/pull/44342 * [iOS][Autocorrect] Disable autocorrection for iOS 17 by @hellohuanlin in https://github.com/flutter/engine/pull/44354 ###### 3.13.1 beta (July 19, 2023) ###### Framework * Fix ConcurrentModificationError in DDS by @christopherfujino in https://github.com/flutter/flutter/pull/130740 ###### Engine * No changes #### Flutter 3.13 beta ##### Flutter ###### Framework * Migration guide for moving from BottomNavigationBar to NavigationBar by @leighajarett in https://github.com/flutter/flutter/pull/128263 * Use a `show` over a `hide` for `test_api` exports by @natebosch in https://github.com/flutter/flutter/pull/128298 * Use Material3 in the 2D viewport tests by @HansMuller in https://github.com/flutter/flutter/pull/128155 * Clean-up viewId casts in flutter_test by @goderbauer in https://github.com/flutter/flutter/pull/128256 * Adding example for migrating to navigation drawer by @leighajarett in https://github.com/flutter/flutter/pull/128295 * Fix `Null check operator used on a null value` on TextField with contextMenuBuilder by @fzyzcjy in https://github.com/flutter/flutter/pull/128114 * Remove `textScaleFactor` dependent logic from `AppBar` by @LongCatIsLooong in https://github.com/flutter/flutter/pull/128112 * handleSelectWord in MultiSelectableSelectionContainerDelegate should handle rects inside of rects by @Renzo-Olivares in https://github.com/flutter/flutter/pull/127478 * Remove more rounding hacks from TextPainter by @LongCatIsLooong in https://github.com/flutter/flutter/pull/127826 * Update Draggable YouTube video link by @khanhnwin in https://github.com/flutter/flutter/pull/128078 * Show error message in release mode when box is not laid out without losing performance by @fzyzcjy in https://github.com/flutter/flutter/pull/126302 * Add viewId to PointerEvents by @goderbauer in https://github.com/flutter/flutter/pull/128287 * Make inspector weakly referencing the inspected objects. by @polina-c in https://github.com/flutter/flutter/pull/128095 * Refactor tests by @goderbauer in https://github.com/flutter/flutter/pull/128371 * Super tiny fix of dead link by @fzyzcjy in https://github.com/flutter/flutter/pull/128160 * Addressed Ambiguity in transform.scale constructor docs by @99spark in https://github.com/flutter/flutter/pull/128182 * Do not try _[Truncated at 4000 characters — full notes: https://github.com/flutter/flutter/releases/tag/3.13.0-0.1.pre]_