What’s New

flutter

Operating Systems

Flutter makes it easy and fast to build beautiful apps for mobile and beyond

Latest 3.19.0-0.1.pre · by flutterWebsiteflutter/flutter

Changelog

3.19.0-0.1.pre

Flutter 3.19 beta (January 10, 2024)

Added
  • Add Overlay.wrap for convenience
  • Add accessibility identifier to SemanticsProperties
  • Add clear button label to Cupertino text field
  • Add onEnd callback into AnimatedSize
  • Add find.textRange.ofSubstring changes
Changed
  • Enable TapRegion to detect all mouse button click
  • Bump Android template and integration test Gradle version to 7.6.4
  • MultiDragPointerState dispatch creation and disposal events
  • SelectionOverlay and TextSelectionOverlay dispatch creation and disposal events
  • ScrollDragController dispatch creation and disposal events
  • SnapshotPainter dispatch creation and disposal events
  • Animate TextStyle.fontVariations
  • Move package:web dependency to dev dependency
  • Use new enabledFeature param for Analytics
  • Use SemanticsUpdateBuilder again and remove all references to temporary SemanticsUpdateBuilderNew
  • Document difference between softWrap and maxLine
  • Default identifier and tooltip to null in SemanticsProperties
  • Make TextSpan hit testing precise
  • Integrate testWidgets with leak tracking
Fixed
  • Handle the case when _CupertinoBackGestureDetector is disposed during the drag
  • Fix typo in useInheritedMediaQuery documentation
  • Fix CupertinoActionSheet design
  • Fix reorderable_list drop animation
Removed
  • Remove deprecated NavigatorState.focusScopeNode

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
Material
iOS
Android
macOS
Tooling
Other Changes
New Contributors
Flutter Engine
Impeller
Android
iOS
Web
Desktop
Other Changes
New Contributors
3.18.0-0.1.pre

Flutter 3.18 beta (December 5, 2023)

Added
  • Support for Apple system fonts in Flutter text rendering on iOS
  • Support for customizing the appearance of adaptive components
  • Configure default ScrollBehavior with MultiTouchDragStrategy.latestPointer for number-of-fingers-agnostic scrolling behavior
  • Support for MaterialStatesController in TextField and TextFormField to listen to MaterialState changes
  • Ability to modify the UndoHistory stack with undoStackModifier
  • Introduce AnimationStyle
  • Add ability to customize NavigationBar indicator overlay and fix indicator shape for the overlay
  • AppLifecycleListener now dispatches creation and disposal events
  • InkFeature now dispatches creation and disposal events
  • Send caret rect to embedder on selection update
  • HeroController now dispatches creation and disposal events
  • Provide helpful error message when ColorScheme.brightness does not match ThemeData.brightness
  • ScrollActivity now dispatches creation and disposal events
  • SemanticsHandle now dispatches creation and disposal events
  • Ticker now dispatches creation and disposal events
Changed
  • Switch.adaptive implementation no longer depends on the Cupertino library and is now fully handled by the Material component
  • Make UnderlineInputBorder consistent
Fixed
  • Scrolling now stops as expected when starting to drag or tap while a scroll is underway
  • Fixed undo/redo history disappearing on Japanese keyboards
  • Fix sliver persistent header expand animation

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.

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.

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.

Increased access to text widgets’ state

We added support for a MaterialStatesController in TextField and TextFormField so that you can listen to MaterialState changes.

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.

Visuals and animations

This beta includes many improvements to visuals and animations across the Flutter Framework, most notably:

Framework

The remaining Framework commits from Flutter Framework are listed below:

iOS
Web
Tooling
Documentation
Other Changes
New Contributors
Engine
Notable commits
Specialization constants

The team added support for specialization constants to Impeller. Taking advantage of this feature in Impeller’s shaders reduced uncompressed binary size of the Flutter engine by nearly 350KB.

Blur improvements

The team landed a few improvements to Impeller’s blur fidelity and performance. Further improvements to blur performance are in the works, and are expected to appear in a future release.

Tessellation improvements

Impeller keeps the number of shaders it needs small and fixed by using a rendering strategy that relies on tessellating paths. Since tessellation is important, the team has made a number of small improvements to its performance in this release.

Misc. Performance Improvements

As progress towards making Impeller on Android production ready, the team has been making many small performance improvements wherever indicated by profiles of our benchmarks. These improvements touch both the Vulkan and Metal backends as well as the backend-agnostic parts of Impeller.

Misc. Bug Fixes

The team continues to prioritize continually improving product excellence by fixing issues reported by users, and driving Impeller towards production readiness on Android. As part of this work, in this release the team landed bug fixes in various areas.

Android
Support for Share.invoke

The default “Share” button on text fields and views was previously missing from Android, but we’ve added it in this beta as part of our ongoing effort to ensure all the default context menu buttons are available on each platform. You can follow that ongoing work here.

Native assets feature

If you’re interested in interoping with other functions from other languages in your Flutter code, you can now perform FFI calls through Native assets on Android as part of our ongoing work towards supporting Native assets. Try it out in this beta 3.18!

Texture Layer Hybrid Composition (THLC) mode

Beta 3.18 includes work that now makes Google Maps and the text input magnifier work in TLHC mode, which means better performance for your apps. If you’re using Google Maps, we encourage you to test out the changes and let us know your feedback! This work doesn’t include commits under the Framework or Engine, but you can see the work here, and the steps to test out THLC here.

The remaining commits are listed below:

iOS
Fixes for iOS bugs

The team has addressed bugs concerning hiding and overriding the status bar in iOS, as well as reported keyboard freezes when switching between languages in iOS.

The remaining commits are listed below:

Web
New Text API

This release includes two new methods on dart:ui’s Paragraph object: getClosestGlyphInfoForOffset, and getGlyphInfoAt, which each return an object of the new type GlyphInfo. Check out the documentation on this new type here.

The remaining commits are listed below:

Desktop
New Contributors
3.17.0-0.1.pre

Flutter 3.17 beta (November 15, 2023)

Added
  • Add key event handlers that happen before or after the focus traversal
  • Add SizeTransition.fixedCrossAxisSizeFactor
  • Add profilePlatformChannels service extension
Changed
  • Update MediaQuery documentation to highlight asynchronous nature of size
Fixed
  • Fix the character field of RawKeyEvent is always null on iOS
  • Fix memory leaks in DateRangePickerDialog
  • RenderEditable should dispose created layers
  • Call markNeedsPaint when adding overlayChild to Overlay
  • Fix memory leaks in BottomSheet elevation resolution
  • Fix page up page down home end shortcut behavior on web
  • TestClipPaintingContext should dispose ContainerLayer
  • RenderAnnotatedRegion should dispose created layers
  • TimePickerDialog should dispose created ChangeNotifiers
  • Fix FlexibleSpaceBar does compositing with near zero opacity
  • RenderSnapshotWidget should dispose created OffsetLayer
  • Include size factors when computing the intrinsic size of a RenderPositionedBox
  • SearchBar should listen to changes to the SearchController and update suggestions on change
  • Floating SnackBar should always float above the bottom widgets
  • Fix chip widgets don't apply the provided iconTheme
Removed
  • Remove unused InlineSpan methods

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
iOS
Android
Tooling
Other Changes
New Contributors
Engine
Android
iOS
Web
Desktop
New Contributors
3.16.0-0.1.pre

Flutter 3.16 beta (October 11, 2023)

Added
  • Add CheckedPopupMenuItem.onTap callback
  • Integration test allows capture of screenshots for FlutterFragmentActivity
Changed
  • Update links to iOS embedder docs to point to new Doxygen docs
Fixed
  • CupertinoAlertDialog no longer creates ScrollController on every build when null values are passed in constructor
  • SearchBarState disposes FocusNode if it created it
  • RenderParagraph disposes instances of SelectableFragments
  • MaterialAppState disposes MaterialHeroController
  • AnimationSheetRecorder is disposed to avoid leaks
  • DropdownMenuState disposes TextEditingController
  • Undisposed items in Cupertino app and route are fixed
  • MinimumTextContrastGuideline disposes image
  • subtitleTextStyle.color is now applied to ListTile.subtitle in Material 2
  • DraggableScrollableActuator disposes notifier
  • Chip.shape's side is now used when provided in Material 3
  • DataTable's headingTextStyle and dataTextStyle are merged with default text style
  • TabBar now uses labelStyle and unselectedLabelStyle color
  • NavigationRailDestination's label opacity while disabled is now coherent with the icon
  • SearchDelegate disposes resources
  • DropdownRoutePage disposes the created ScrollController
  • ExpansionTile properties can now be updated with setState
  • TestWidgetsFlutterBinding disposes old RestorationManager on reset
  • EditableTextState disposes cursorVisibilityNotifier
  • Remove non-needed controllers in SegmentedButton
  • TabBarViewState disposes created instances of PageController
  • Scrollbar example crash is fixed
  • CupertinoTextField is at least as tall as its first line of placeholder
  • InputDecoration.error activates error state
  • RestorationManager dispatches creation in constructor
  • Memory leak in DraggableScrollableSheetState is fixed
  • Day picker disposes created MaterialStatesController instances
  • SelectableRegion onSelectionChange is called when the selection changes
Removed
  • Remove TextPainter migration flag from the framework

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
Tooling
New Contributors
Engine
Android
iOS
Web
Desktop
New Contributors
3.15.0-15.1.pre

Flutter 3.15 beta (September 15, 2023)

Added
  • Add Search Web to selection controls for iOS
  • Add PopupMenuButton.iconColor and PopupMenuTheme.iconSize
  • Add textCapitalization property for SearchBar and SearchAnchor
  • Add more info to OverlayState.insert error messages
  • Add an example for TapAndPanGestureRecognizer
  • Add hasInteractedByUser getter in FormField
  • Add SemanticsNode Finders for searching the semantics tree
  • Add double click and double click + drag gestures to SelectionArea
Changed
  • Migrate framework to fully use package:web
  • Make TextPainter rounding hack disabled by default
  • Keep alive support for 2D scrolling
  • TextField should correctly resolve provided style for material states
  • Selection area should move selection word by word on a long press drag
  • Update AutomatedTestWidgetsFlutterBinding.pump to support microsecond precision
Fixed
  • Fix TabBarTheme.indicatorColor not applied in Material 2
  • Fix PopupMenuButton icon using unexpected color property
  • Fix DropdownButtonFormField input border clipping
  • Fix PopupMenuItem and CheckedPopupMenuItem has redundant ListTile padding and update default horizontal padding for Material 3
  • Fix prefer_null_aware_operators violation
  • 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
Tooling
New Contributors
Engine
Android
iOS
Web
Desktop
New Contributors
3.14.0-0.1.pre

3.14 Beta (August 21, 2023)

Added
  • Add optional optionsViewOpenDirection parameter to Autocomplete and RawAutocomplete
  • DropdownMenu can be expanded to its parent size
Changed
  • Change the default for ThemeData.useMaterial3 to true
  • Unify text field focus management in desktops
  • Migrate web-only initialization APIs
Fixed
  • Fix web debug RPCError
  • Fix Xcode 15 build failure due to DT_TOOLCHAIN_DIR
  • Make space character optional when tree shaking fonts
  • Apply color blends on the CPU and fix mask blurs and the Gaussian blur coverage hint in Impeller
  • Fix ExpansionTileTheme.shape assignment in ExpansionTile
  • Implement preferPaintInterior correctly for _CompoundBorder
  • Fix default icon color constants reversed brightness documentation
  • Fix PlatformRouteInformationProvider pushing new entry when query parameter changes
  • Allow tap on button behind snack bar defined by margin
  • Exclude Tooltip's overlay child from SelectableRegion
  • 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
Engine

Flutter 3.14 beta

Flutter
Framework
Tooling
New Contributors
Engine
Android
iOS
Web
Desktop
New Contributors
3.13.0-0.1.pre

3.13 Beta (July 12, 2023)

Added
  • Migration guide for moving from BottomNavigationBar to NavigationBar
  • Add viewId to PointerEvents
Changed
  • Minor adjustments on 2D APIs
  • No-op fragment program on Android until it works in Impeller
  • Disable autocorrection for iOS 17
  • Use Material3 in the 2D viewport tests
  • Remove textScaleFactor dependent logic from AppBar
  • Remove more rounding hacks from TextPainter
  • Show error message in release mode when box is not laid out without losing performance
  • Make inspector weakly referencing the inspected objects
  • Update menu API docs to help developers migrate to m3
  • Disable blinking cursor when EditableText.showCursor is false
  • Navigator.pop before PopupMenuItem onTap call
  • Update chip.dart to use set of MaterialState
Fixed
  • Allow OverlayPortal to be added/removed from the tree in a layout callback
  • Fix assertion when a WidgetSpan is scaled by certain textScaleFactor values
  • Fix Tooltip crash when selected in a SelectableRegion
  • Constrain _RenderScaledInlineWidget child size in computeDryLayout
  • Revert removal of wait until scheduled in Impeller
  • Avoid culling when the current matrix has perspective in Impeller
  • Made the clear optimization handle backdrop filters in Impeller
  • Fix hittest with non-SemanticsObject on iOS
  • Fix ConcurrentModificationError in DDS
  • Fix Null check operator used on a null value on TextField with contextMenuBuilder
  • handleSelectWord in MultiSelectableSelectionContainerDelegate should handle rects inside of rects
  • Do not try to load main/default asset image if only higher-res variants exist
  • Fix navigation rail with long labels misplaced highlights

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
Engine
  • No changes
3.13.2 beta (August 07, 2023)
Framework
Engine
3.13.1 beta (July 19, 2023)
Framework
Engine
  • No changes

Flutter 3.13 beta

Flutter
Framework
Tooling
Engine
Android
iOS
Web
Desktop
New Contributors