Skip to content

Flutter Notable Commits - 2025 #161460

Closed
Closed

Description

@Piinks

For years, Flutter's Framework team has been reviewing "notable commits" in our weekly staff meeting at Google. The notable commits are a lightly curated list of the pull requests that have landed in the previous week. The goal is to celebrate our progress and the developers who have contributed to that progress. Unfortunately, many of those developers have not been in the weekly staff meeting's conference room, they come from other teams within Google and the wider Flutter community.

Each list typically covers about one week and is not comprehensive. Its focus is on commits to Flutter's framework "flutter/flutter" repo that involved the Framework team as pull-request authors or reviewers. That's not strictly true however, we all contribute to many repos - not the least of which is "flutter/packages" - and you'll find evidence of that here. And not all of the commits listed here necessarily involved someone from the Framework or Engine team. One final observation about the participants in the list below is the large number of contributions that have come from the Flutter community. We are blessed with a an active and generous developer community. Each week's notable commits list is a tribute to everyone who has helped advance Flutter, not just Google's Framework team.

Prior Notable Commits

Activity

  1. added
    frameworkflutter/packages/flutter repository. See also f: labels.
    engineflutter/engine related. See also e: labels.
    P1High-priority issues at the top of the work list
    permanently lockedPrevent this issue from getting automatically unlocked
    on Jan 11, 2025
  2. self-assigned this
    on Jan 11, 2025
  3. Piinks commented on Jan 11, 2025

    @Piinks
    ContributorAuthor

    December 14, 2024 to January 10, 2025

    Details

    Happy New Year & new notable commits issue everyone!

    Over 150+ commits landed in flutter/flutter since the last update in 2024! 🚀
    These changes were likely tagged in 3.28.0-2.0.pre.38694 or earlier, and include the monorepo!

    We had some pretty significant changes since our last update!

    Dart format is now enabled in flutter/flutter!

    Aand…

    The engine joined the framework in flutter/flutter! Monorepo & dart format changes bring with them a shared workflow, and easier path to contribute.

    This was a huge undertaking, special thanks to:


    More Notable Landings

    Cupertino Updates

    Over in Material…

    Engine (Now in flutter/flutter! 🎊)

    Meanwhile in integration_test

    • Matan Lurey — Implement golden-file matching for integration_test on Android and iOS devices
      #160484 merged on December 28, 2024 — Large: 13 comments over 1 week, 958 additions and 22 deletions in 9 files
      Reviewed by: Andrew Kolos, Yegor
  4. changed the title [-]Flutter Notable Commits[/-] [+]Flutter Notable Commits - 2025[/+] on Jan 11, 2025
  5. locked as resolved and limited conversation to collaborators on Jan 11, 2025
  6. Piinks commented on Jan 17, 2025

    @Piinks
    ContributorAuthor

    January 11, 2025 to January 17, 2025

    Details

    Over 70+ commits landed in flutter/flutter since the last update! 🚀
    These changes were likely tagged in 3.28.0-2.0.pre.38780 or earlier, let's dive in!



    Over in Material

    • Taha Tesser — Fix TabBar glitchy elastic Tab animation
      #161514 merged on January 15, 2025 — Large: 6 comments over 1 day, 435 additions and 130 deletions in 5 files
      Reviewed by: Justin McCandless

    • Bruno Leroux — Fix DropdownMenu isCollapsed decoration does not Reduce height
      #161427 merged on January 15, 2025 — Small: 1 comment over 5 days, 71 additions and 1 deletion in 2 files
      Reviewed by: Qun Cheng


    Meanwhile in Cupertino


    Engine Developments


    Deprecations

  7. Piinks commented on Jan 24, 2025

    @Piinks
    ContributorAuthor

    January 18, 2025 to January 24, 2025

    Details

    Over 70 commits landed in flutter/flutter since the last report.
    These changes were likely tagged 3.29.0-1.0.pre.107 or earlier.



    Cupertino landings


    In the Material Library


    Engine News

    • Jackson Gardner — Get et working for local web engine builds.
      #161825 merged on January 21, 2025 — Small: 2 comments over 3 days, 103 additions and 34 deletions in 4 files
      Reviewed by: Matan Lurey

    • jesswrd — Add to Setup Path Example to Engine README
      #162115 merged on January 24, 2025 — Small: 4 comments over 7 hours, 5 additions and 1 deletion in 2 files
      Reviewed by: Matan Lurey


    Deprecations

    • Taha Tesser — Deprecate ThemeData.indicatorColor in favor of TabBarThemeData.indicatorColor
      #160024 merged on January 22, 2025 — Small: 7 comments over 1 month, 152 additions and 58 deletions in 7 files
      Reviewed by: Qun Cheng
  8. Piinks commented on Jan 31, 2025

    @Piinks
    ContributorAuthor

    January 25, 2025 to January 31, 2025

    Details

    Over 80 changes landed in flutter/flutter this week.
    These changes were likely tagged 3.29.0-1.0.pre.203 or earlier.


    Progress on Widget Previews! 🎊

    Updated translations 📖

    • Qun Cheng — Back integrate translations from TC
      #162274 merged on January 29, 2025 — Extra large: 1 comment over 2 days, 1708 additions and 8 deletions in 9 files
      Reviewed by: LouiseHsu


    Cupertino commits

    • Victor Sanni — Add tests to confirm CupertinoSliverNavigationBar snaps when partially scrolled in .always bottom mode
      #162425 merged on January 30, 2025 — Small: 1 comment over 17 hours, 115 additions and 0 deletions in 1 file
      Reviewed by: Justin McCandless

    In Material


    Over in the Engine


    Sample Updates


    And in flutter_test

  9. Piinks commented on Feb 14, 2025

    @Piinks
    ContributorAuthor

    February 1, 2025 to February 14, 2025

    Details

    Over 214 changes landed in flutter/flutter in the last two weeks. Dang y'all. 🤯🔥
    These changes were likely tagged 3.30.0-1.0.pre.176 or earlier.


    Cupertino Changes


    In Material

    • Taha Tesser — Fix Slider renders track when track colors are transparent
      #161814 merged on February 6, 2025 — Small: 13 comments over 2 weeks, 49 additions and 1 deletion in 2 files
      Reviewed by: Qun Cheng

    • Taha Tesser — Fix buttons with icons ignore provided foregroundColor
      #162880 merged on February 13, 2025 — Small: 12 comments over 5 days, 283 additions and 7 deletions in 13 files
      Reviewed by: Rydmike, Qun Cheng

    • Bruno Leroux — Fix DropdownMenu default width does not take label into account
      #161219 merged on February 13, 2025 — Small: 11 comments over 1 month, 81 additions and 8 deletions in 2 files
      Reviewed by: Qun Cheng

    • Bruno Leroux — Fix DropdownButtonFormField padding when ButtonTheme.alignedDropdown is true
      #162810 merged on February 13, 2025 — Small: 5 comments over 6 days, 44 additions and 1 deletion in 2 files
      Reviewed by: Justin McCandless

    • PurplePolyhedron — fix DropdownMenu crashes when provided menuStyle with small maximumSize
      #162380 merged on February 13, 2025 — Small: 6 comments over 2 weeks, 56 additions and 2 deletions in 2 files
      Reviewed by: Qun Cheng, Hannah Jin


    Accessibility

    • Hannah Jin — Add table related semantics role
      #162339 merged on February 14, 2025 — Medium: 40 comments over 2 weeks, 437 additions and 21 deletions in 15 files
      Reviewed by: Kevin Moore, Yegor, Kate Lovett, chunhtai

    • Hannah Jin — fix the issue that can't set app bar traversal order for flexible space
      #162910 merged on February 13, 2025 — Small: 3 comments over 5 days, 191 additions and 2 deletions in 2 files
      Reviewed by: chunhtai

    • chunhtai — Adds dialog and alertdialog role
      #162692 merged on February 11, 2025 — Small: 17 comments over 6 days, 211 additions and 38 deletions in 11 files
      Reviewed by: Yegor

    • chunhtai — Adds hasSelectedState parameter to matchesSemantics for migration
      #163014 merged on February 11, 2025 — Small: 5 comments over 1 day, 1 addition and 0 deletions in 1 file
      Reviewed by: Hannah Jin

    • chunhtai — Introduce caching mechanism during compile semantics tree monorepo and formatted version
      #161195 merged on February 6, 2025 — Extra large: 70 comments over 1 month, 1391 additions and 944 deletions in 10 files
      Reviewed by: Michael Goderbauer

    • Yegor — [web] do not send SemanticsAction.focus inside frame
      #162554 merged on February 4, 2025 — Large: 7 comments over 3 days, 452 additions and 81 deletions in 11 files
      Reviewed by: Mouad Debbar


    Landing in the Engine

  10. Piinks commented on Feb 21, 2025

    @Piinks
    ContributorAuthor

    February 15, 2025 to February 21, 2025

    Details

    Over 75 changes landed in flutter/flutter in the last week.
    These changes were likely tagged 3.30.0-1.0.pre.176 or earlier.


    Changes in Cupertino


    Merged in Material


    In the Engine

    Matej Knopp — [windows] Implement merged UI and platform thread
    #162935 merged on February 20, 2025 — Small: #162935 over 1 week, 115 additions and 56 deletions in 13 files
    Reviewed by: Tobias Käs, Loïc Sharma

  11. 15 remaining items

  12. Piinks commented on Aug 8, 2025

    @Piinks
    ContributorAuthor

    August 02, 2025 to August 08, 2025

    Details

    Over 97 changes landed in flutter/flutter this week.

    This week’s notable commits were likely tagged 3.35 or earlier.

    This report was compiled with help from Gemini CLI. 😉 🤖

    Framework

    • #172914 Fix ScaffoldGeometry null scale with noAnimation FAB
      A bug that caused a null scale with noAnimation FAB in ScaffoldGeometry has been fixed, ensuring proper scaling behavior. 🐛

    • #172380 Fix ReorderableList proxy animation for partial drag-back
      The proxy animation for partial drag-back in ReorderableList has been fixed, providing a smoother user experience. ✨

    • #173280 Fix drawerScrimColor transition.
      The transition for drawerScrimColor has been fixed, ensuring a seamless visual effect. 🎨

    • #172759 Fix Slider dragged mouse cursor visibility.
      The visibility of the mouse cursor when dragging a Slider has been fixed, improving usability. 👍

    • #173011 Migrate to list and builder Sliver convenience constructors
      The codebase has been migrated to use the list and builder Sliver convenience constructors, improving code readability and maintainability. 🛠️

    Material

    • #173312 [A11y] TextField prefix icon and suffix icon create a sibling node'
      Accessibility for TextField has been improved by ensuring that prefix and suffix icons create a sibling node. ♿

    Web

    • #172175 Web dev proxy
      A new web dev proxy has been introduced, enhancing the development workflow for web applications. 🌐

    • #171638 [web] add --static-assets-url argument to build web
      A new --static-assets-url argument has been added to the build web command, allowing for more flexible asset management. 🚀

    • #172254 Add radius clamping to web RSuperellipse
      Radius clamping has been added to the web RSuperellipse, preventing rendering issues with large radius values. 🖼️

    Tool

    • #173443 Use LLDB as the default debugging method for iOS 17+ and Xcode 26+
      LLDB is now the default debugging method for iOS 17+ and Xcode 26+, providing a more robust debugging experience. 🛠️

    • #164720 Support launching a HTTPS URL
      The tool now supports launching HTTPS URLs, expanding its capabilities. 🔗

    • #171965 [android][tool] Consolidate minimum versions for android projects.
      The minimum versions for Android projects have been consolidated, streamlining project setup and maintenance.

    Android

    • #173431 [Android templates] Remove jetifier usage
      Jetifier usage has been removed from the Android templates, aligning with modern Android development practices. 🤖

    • #173375 Adds deprecation for impeller opt out on android
      A deprecation notice has been added for opting out of Impeller on Android, encouraging adoption of the new rendering engine. 🎨

    Windows

    • #164460 Provide monitor list, display size, refresh rate, and more for Windows
      The Windows implementation now provides a monitor list, display size, refresh rate, and other display-related information, enhancing multi-monitor support. 🖥️

    First-time Contributors

    Congratulations to our new contributors:

    • Jon Ihlas, for #164460, which provides monitor list, display size, refresh rate, and more for Windows.
    • Luke Memet, for #172380, which fixes the ReorderableList proxy animation for partial drag-back.
    • Wdestroier, for #164720, which adds support for launching HTTPS URLs.
  13. Piinks commented on Aug 15, 2025

    @Piinks
    ContributorAuthor

    August 9, 2025 to August 15, 2025

    Details

    A total of 105 changes were merged to the framework this week. 🔥
    This report was compiled with help from Gemini CLI. 😉 🤖

    Notable Changes

    Framework

    • #165832 Predictive back route transitions by default
      Enables predictive back route transitions by default on supported Android devices, using a shared element transition.

    • #173221 feat: add onLongPressUp callback to InkWell widget
      Adds an onLongPressUp callback to the InkWell widget, allowing developers to respond to the release of a long press gesture.

    • #173148 Add error handling for Element lifecycle user callbacks
      Improves error handling for user-supplied lifecycle callbacks in Elements, preventing the framework from getting into an inconsistent state.

    • #173725 [Range slider] Tap on active range, the thumb closest to the mouse cursor should move to the cursor position.
      Enhances the RangeSlider by making the thumb closest to the tap position move to the cursor when tapping on the active range.

    • #169293 Implements the Android native stretch effect as a fragment shader (Impeller-only).
      Implements the native Android stretch overscroll effect using a fragment shader for a more authentic feel on Impeller.

    • #173480 [VPAT][A11y] Announce Autocomplete search results status
      Improves accessibility by announcing the status of autocomplete search results for screen readers.

    • #173344 Fix InputDecorator label padding
      Corrects the label padding in InputDecorator when prefixIcon and/or suffixIcon are used.

    • #172847 Allow empty initial time when using text input mode in showTimePicker dialog
      Adds an option to have empty initial time fields in the showTimePicker dialog when using text input mode.

    • #171718 fix: selected date decorator renders outside PageView in DatePickerDialog dialog
      Fixes a visual glitch in DatePickerDialog where the selected date decorator would render outside the PageView.

    • #168547 feat: Cupertino sheet implement upward stretch on full sheet
      Implements an upward stretch effect on CupertinoSheet when it's fully expanded, providing a more native feel.

    • #167032 Fix visual overlap of transparent routes barrier when using FadeForwardsPageTransitionsBuilder
      Fixes a visual overlap issue with the transparent route's barrier when using FadeForwardsPageTransitionsBuilder.

    • #172875 Fix directional focus in nested scrollables with different axis
      Fixes an issue with directional focus navigation in nested scrollables with different scroll axes.

    Web

    • #173652 [web] Popping a nameless route should preserve the correct route name
      Fixes a bug on the web where popping a nameless route would not preserve the correct route name in the URL.

    • #173629 [web] Fallback to CanvasKit when WebGL is not available
      Improves web compatibility by falling back to CanvasKit when WebGL is not available.

    Tool

    First-time Contributors

    Congratulations to our new contributors!

  14. Piinks commented on Aug 29, 2025

    @Piinks
    ContributorAuthor

    August 15, 2025 to August 29, 2025

    Details

    A total of 231 changes were merged over the last 2 weeks!
    This report was compiled with care from Gemini CLI. 😉 🤖

    Framework

    Add SliverGrid.list convenience constructor
    A new convenience constructor, SliverGrid.list, has been added to simplify the creation of a SliverGrid with a list of children.
    Contributed by Ahmed Hussein
    Reviewed by Loïc Sharma, Victor Sanni
    #173925

    Implement Overlay.of with inherited widget
    Overlay.of has been refactored to use an inherited widget, which is more efficient than walking the element tree. This improves performance by reducing the number of lookups.
    Contributed by chunhtai
    Reviewed by LongCatIsLooong
    #174315

    Drawer barrier non dismissible with the escape key
    The drawer can no longer be dismissed with the escape key when drawerBarrierDismissible is false.
    Contributed by Roman Jaquez
    Reviewed by Justin McCandless, Tong Mu
    #173263

    SnackBar with action no longer auto-dismiss
    A SnackBar with an action will no longer auto-dismiss, even when accessibleNavigation is true. A new persist property has been added to SnackBar to control this behavior explicitly.
    Contributed by Qun Cheng
    Reviewed by Victor Sanni, chunhtai
    #173084

    Fix: Active step fully colored in vertical mode
    This change fixes a bug where the active step in a vertical stepper was not fully colored.
    Contributed by Victor Sanni
    Reviewed by chunhtai
    #173152

    Fix onSelect called twice in DropdownMenuFormField
    This change fixes a bug where onSelect was called twice in DropdownMenuFormField.
    Contributed by Qun Cheng
    Reviewed by chunhtai
    #174053

    Fix Menu anchor reduce padding on web and desktop
    This change fixes a bug where the menu anchor had reduced padding on web and desktop.
    Contributed by Qun Cheng
    Reviewed by chunhtai
    #172691

    Fix SegmentedButton focus issue
    This change fixes a focus issue with the SegmentedButton.
    Contributed by Qun Cheng
    Reviewed by chunhtai
    #173953

    Add Shift+Enter shortcut example for TextField
    An example has been added to demonstrate how to use the Shift+Enter shortcut in a TextField.
    Contributed by Roman Jaquez
    Reviewed by Justin McCandless
    #167952

    Improve Stack widget error message for bounded constraints
    The error message for the Stack widget has been improved to be more helpful when dealing with bounded constraints.
    Contributed by Qun Cheng
    Reviewed by chunhtai
    #173352

    Reland predictive back route transitions by default
    Predictive back route transitions are now enabled by default.
    Contributed by Justin McCandless
    Reviewed by chunhtai
    #173860

    Engine

    Remove the option to disable the merged platform/UI thread on Android and iOS
    The option to disable the merged platform/UI thread has been removed on Android and iOS. This simplifies the threading model and improves performance.
    Contributed by Jason Simmons
    Reviewed by Reid Baker, John "codefu" McDole, Zachary Anderson
    #174408

    Implements the Android native stretch effect as a fragment shader (Impeller-only)
    The Android native stretch effect is now implemented as a fragment shader, providing a more realistic and performant overscroll effect on Android.
    Contributed by Dev TtangKong
    Reviewed by Justin McCandless, chunhtai, Tong Mu
    #173885

    Accessibility

    Add set semantics enabled API and wire iOS a11y bridge
    A new API, setSemanticsEnabled, has been added to the PlatformDispatcher to allow the framework to inform the engine about whether a semantics tree is being generated. This is used to enable the accessibility bridge on iOS.
    Contributed by chunhtai
    Reviewed by Mouad Debbar
    #174163

    Fix empty adaptive text selection toolbars building
    This change fixes a bug where an empty adaptive text selection toolbar would still be built even if there were no buttons to display.
    Contributed by Kostia Sokolovskyi
    Reviewed by Renzo Olivares, Justin McCandless
    #174656

    Adds semantics for disabled buttons in date picker
    The accessibility of the date picker has been improved by adding semantics for disabled buttons. This ensures that screen readers can correctly announce the state of the buttons to users.
    Contributed by chunhtai
    Reviewed by Hannah Jin
    #174064

    [iOS][Secure Paste] Custom edit menu actions
    This change adds support for custom edit menu actions on iOS. This allows developers to add their own custom buttons to the text selection toolbar.
    Contributed by Jing Shao
    Reviewed by Justin McCandless, hellohuanlin
    #171825

    Fix time picker period selector a11y touch targets
    This change fixes the accessibility of the time picker period selector by increasing the touch target size.
    Contributed by Qun Cheng
    Reviewed by chunhtai
    #170060

    [VPAT][A11y] AutoComplete dropdown option is missing button role
    This change fixes an accessibility issue where the AutoComplete dropdown option was missing the button role.
    Contributed by Qun Cheng
    Reviewed by chunhtai
    #173297

    Migration to WidgetState

    These changes are part of a larger migration from MaterialState to WidgetState. This migration simplifies the state management for widgets and makes it more consistent across the framework. The changes in these PRs update various widgets and themes to use the new WidgetStateProperty and WidgetState classes.
    Contributed by Valentin Vignal
    Reviewed by chunhtai, Justin McCandless, Qun Cheng, Mitchell Goodwin
    #174421
    #174323
    #173893

    First-time Contributors

    We'd like to extend a warm welcome to our new contributors! Thank you for your valuable contributions to Flutter.

  15. Piinks commented on Sep 19, 2025

    @Piinks
    ContributorAuthor

    August 30, 2025 to September 19, 2025

    Details

    A total of 270 changes were merged to the framework in the last three weeks. The changes below were likely tagged 3.37.0.
    Compiled with care with Gemini-CLI. 🤖

    Framework

    • #174239 Allow OverlayPortal.overlayChildLayoutBuilder to choose root Overlay
      This change allows OverlayPortal.overlayChildLayoutBuilder to choose the root Overlay, providing more flexibility for overlay management.

    Engine

    Tooling

    • #174003 Deprecate Objective-C plugin template
      This change deprecates the Objective-C plugin template, encouraging developers to use Swift for new plugins.
    • #174849 [ Widget Preview] Add group property to Preview
      This change adds a group property to the Preview widget, allowing for better organization of widget previews.

    Cupertino

    • #170108 Add CupertinoLinearActivityIndicator
      A new addition to the Cupertino library, this widget provides a linear progress indicator, giving developers more options for displaying progress in their iOS-styled apps.
    • #172502 Adjust default CupertinoCheckbox size on desktop
      This change adjusts the default size of CupertinoCheckbox on desktop platforms to better align with platform conventions.

    Material

    • #171646 feat: Enable WidgetStateColor to be used in ChipThemeData.deleteIconColor
      This change allows developers to use WidgetStateColor for the delete icon color in ChipThemeData, enabling more dynamic and state-responsive chip designs.
    • #174605 Allow Passing an AnimationController to CircularProgressIndicator and LinearProgressIndicator
      This update allows developers to pass an AnimationController to CircularProgressIndicator and LinearProgressIndicator, providing more control over the animation of indeterminate progress indicators.
    • #174515 Fix IconButton.color overrided by IconButtomTheme
      This change fixes a bug where IconButton.color was being overridden by IconButtonTheme, ensuring that the local color takes precedence.
    • #173108 Fix LinearProgressIndicator track painting.
      This change fixes a track painting issue in LinearProgressIndicator, ensuring that the track is painted correctly.

    Accessibility

    • #174856 Add semanticIndexOffset argument to SliverList.builder, SliverGrid.builder, and SliverFixedExtentList.builder
      This change adds a semanticIndexOffset argument to SliverList.builder, SliverGrid.builder, and SliverFixedExtentList.builder, allowing for more control over the semantic indexing of slivers.
    • #174473 fix(Semantics): Ensure semantics properties take priority over button's
      This change ensures that semantics properties take priority over the button's default semantics, providing more control over accessibility.
    • #174480 [A11y] Add semantics for CupertinoExpansionTile
      This change adds semantics for CupertinoExpansionTile, improving accessibility for iOS-styled expansion tiles.

    Android

    • #173364 Wires up Android API to set section locale
      This change wires up the Android API to set the section locale, improving internationalization support on Android.

    iOS

    • #174168 Add a viewController property to the ios/macOS FlutterPluginRegistrar protocol
      This change adds a viewController property to the FlutterPluginRegistrar protocol for iOS and macOS, making it easier to access the view controller from plugins.

    First-time Contributors

  16. Piinks commented on Oct 3, 2025

    @Piinks
    ContributorAuthor

    September 20, 2025 to October 03, 2025

    Details

    Since the last report, 188 changes landed in the Flutter framework, including significant improvements to windowing on desktop, more powerful widget previews, and key enhancements for iOS integration.
    This report was compiled with care from Gemini CLI. 😉 🤖

    Framework

    • #176305 iOS developers can now rejoice! 🎉 State restoration is now supported for apps using UIScenes, ensuring a more seamless user experience when multitasking.
    • #175810 This change improves accessibility by fixing VoiceOver focus traversal on OutlinedButton.icon, preventing focus from being lost when an icon is dynamically added. ♿️
    • #176303 Another win for modern iOS apps! Deeplinking now works correctly for applications that have migrated to the UIScene lifecycle. 🔗
    • #176373 This fix improves the accessibility of the time picker by aligning its semantic properties (selected vs. checked) with platform-specific conventions on iOS and Android. 📱
    • #173754 A frustrating crash in DateRangePickerDialog when rendered in a zero-sized environment has been squashed, making the widget more robust. 🐞
    • #176023 Windows developers will see smoother UIs and fewer deadlocks thanks to a new high-resolution timer implementation in the Win32 runloop. 🚀
    • #176230 Integrating Flutter into SwiftUI apps just got easier! This change adds support for the UIScene migration, improving compatibility with modern SwiftUI lifecycles. 🤝
    • #175100 A new dart:ui API, setApplicationLocale, has been added, giving developers more explicit control over the application's locale as seen by the engine. 🌍
    • #176202 The foundations for dialog windows have landed! This change implements the framework interface for the dialog window archetype, paving the way for richer windowing capabilities. 🖼️
    • #173715 Big news for Windows! The framework now has an implementation for regular, non-dialog windows, including a great example app to show it off. 🪟
    • #175324 Developers now have more control over the look of their carousels with the new itemClipBehavior property on CarouselView. ✂️
    • #171334 Customizing date pickers on iOS is now more powerful with the new selectableDayPredicate parameter, allowing developers to easily enable or disable specific days. 🗓️
    • #175773 Creating beautiful tables just got easier! TableBorder now supports non-uniform border radii, allowing for more flexible and creative table designs. 🎨
    • #174300 This fix corrects mouse cursor behavior for platform views on the web, ensuring the cursor updates appropriately when moving between different regions. 🖱️

    Tooling

    • #176289 The Widget Preview tool gets a quality-of-life improvement: the 'Filter by Selected File' toggle state is now persisted across sessions. ✅
    • #175881 A bug in the localization generator has been fixed, ensuring that untranslated messages files are correctly generated in Pub workspaces. 🛠️
    • #175535 Widget Previews are now more flexible! Developers can now create their own custom Preview annotations and apply runtime transformations for more powerful and reusable previews. ✨

    Ecosystem

    • #176285 Native assets are now enabled on the stable channel! This is a huge step forward for integrating native code in Flutter apps. 📦
    • #176226 The minimum supported Java version for Android has been bumped to 17, aligning with modern Android development standards. ☕
  17. Piinks commented on Oct 27, 2025

    @Piinks
    ContributorAuthor

    October 4, 2025 to October 24, 2025

    Details

    A total of 278 changes were merged to the framework, engine, and packages over the last couple of weeks.

    The changes below are populated by a script that filters and selects notable changes from the past week. This is not an exhaustive list of all changes, but is instead a list of changes that are notable and interesting to the general Flutter developer community.

    Compiled with care with Gemini-CLI. 🤖 😉

    Framework

    • #176571 Add directional static members to AlignmentGeometry.

    The AlignmentGeometry class now includes static members for directional alignments, such as topStart and bottomEnd. This provides a more convenient way to specify directional alignments without having to directly use AlignmentDirectional.

    Authored by Kostia Sokolovskyi and reviewed by Loïc Sharma.

    • #177019 Move child parameter to end of RefreshIndicator constructor.

    The child parameter in the RefreshIndicator constructor has been moved to the end, following the convention for widget constructors. This improves code readability and consistency.

    Authored by Tymur and reviewed by Victor Sanni and Tong Mu.

    • #171796 [Material] Change default mouse cursor of buttons to basic arrow instead of click (except on web).

    The default mouse cursor for Material buttons on desktop platforms has been changed from a pointing hand to a standard arrow, aligning with native desktop UI conventions. The cursor remains a pointing hand on the web to match web standards.

    Authored by Camille Simon and reviewed by Tong Mu.

    Engine

    • #177343 [web] Use SkPathBuilder because SkPath is becoming immutable.

    The web engine now uses SkPathBuilder to construct paths, in preparation for SkPath becoming an immutable object. This change improves performance and reduces memory usage by avoiding unnecessary path copies.

    Authored by Mouad Debbar and reviewed by Jackson Gardner.

    • #176974 Implements engine-side declarative pointer event handling for semantics.

    A new SemanticsHitTestBehavior enum has been introduced, allowing developers to explicitly control how semantic nodes behave during hit testing. This provides finer-grained control over which widgets can be targeted by pointer events, which is particularly useful for web to manage the pointer-events CSS property for accessibility.

    Authored by zhongliugo and reviewed by chunhtai.

    • #176361 [macOS] Implement regular window.

    Initial support for creating regular windows on macOS has been implemented. This is a foundational step towards enabling multi-window applications on desktop platforms, allowing developers to create more complex and native-like experiences.

    Authored by Matej Knopp and reviewed by Matthew Kosarek.

    Tooling

    • #177198 Allow empty dart defines in flutter assemble.

    The flutter assemble command now correctly handles empty --dart-define arguments, preventing crashes and improving the reliability of build scripts that may pass empty values.

    Authored by LongCatIsLooong and reviewed by Victoria Ashworth and Ben Konyi.

    First-time Contributors

    Welcome to our new contributors!

    • alexskobozev, for #175501, which fixes a deprecated API for fullscreen experiences on Android 15+.
    • André, for #177078, which fixes a typo in the ButtonBar documentation.
    • emakar, for #171157, which prevents the bottom sheet from breaking its snap physics.
    • John Lilly, for #174374, which fixes an issue where TalkBack would not announce list information.
    • kazbeksultanov, for #176010, which converts the Title widget to a StatefulWidget.
    • progamax, for #174497, which adds a textfield property to SearchAnchor.
    • TDuffinNTU, for #176438, which fixes a typo in pages.dart.
    • cuteUtya, for #177019, which moves the child parameter to the end of the RefreshIndicator constructor.
  18. added
    P3Issues that are less important to the Flutter project
    and removed
    P1High-priority issues at the top of the work list
    on Nov 5, 2025
  19. Piinks commented on Nov 7, 2025

    @Piinks
    ContributorAuthor

    October 25, 2025 to November 7, 2025

    Details

    A total of 228 commits landed in flutter/flutter since the last update!

    This week’s notable changes will likely be tagged 3.39.0 or later. A special welcome to our 5 new contributors!

    The changes below are populated by a script that filters and selects notable changes from the past week. This is not an exhaustive list of all changes, but is instead a list of changes that are notable and might be interesting to the Flutter developer community.

    Compiled with care with Gemini-CLI. 🤖 😉

    Framework

    • #177721 Add haptic notifications support
      A new feature that allows developers to trigger haptic feedback for notifications, improving user experience.

    • #177313 Fix text input actions in DropdownMenu.
      This change fixes a bug where text input actions were not working correctly in DropdownMenu, a common UI widget.

    • #174491 fix: findChildIndexCallback to take seperators into account for seperated named constructor in ListView and SliverList
      This fixes a bug in ListView and SliverList where findChildIndexCallback was not correctly accounting for separators.

    • #169341 Add Navigator.popUntilWithResult
      This new feature for Navigator allows popping multiple routes until a predicate is satisfied and returns a result.

    Accessibility

    • #177969 Use aria-hidden attribute for platform view accessibility on web
      This improves web accessibility by using the aria-hidden attribute for platform views.

    • #175551 Add blockAccessibilityFocus flag
      A new flag to block accessibility focus, giving developers more control over the accessibility experience.

    Android

    • #177753 Respect product flavor abiFilters by adding a disable-abi-filtering Android project flag.
      This change provides more control over Android builds by allowing developers to disable ABI filtering for product flavors.

    iOS

    • #177065 Fix(ios): Remove arm64 exclusion to support Xcode 26 simulators
      This change ensures compatibility with future versions of Xcode by removing the arm64 exclusion for simulators.

    Tool

    • #178170 [ Tool ] Ignore invalid UTF-8 from ADB's stdout
      This fixes a tool crash that could occur when adb outputs invalid UTF-8.

    • #177470 [ Tool ] Add Stream.transformWithCallSite to provide more useful stack traces
      This developer experience improvement provides more useful stack traces for streams.

    First-time Contributors

  20. Piinks commented on Nov 14, 2025

    @Piinks
    ContributorAuthor

    November 7, 2025 to November 14, 2025

    Details

    A special welcome to our 5 new contributors!

    This week’s 108 changes will be included in Flutter version 3.39.0 or later. From those, we're highlighting 16 notable changes.

    Compiled with care with Gemini-CLI. 🤖 😉

    Framework

    • #176492 Pausable GIFs
      A new feature that allows pausing and resuming GIF animations. This is useful for saving battery life and for giving users more control over animations. Authored by Justin McCandless and reviewed by chunhtai.
    • #173862 Granular frame forcing for animations
      This change allows animations to be forced to a specific frame, which is useful for testing and debugging. Authored by Thomas Guerin and reviewed by Justin McCandless and Loïc Sharma.
    • #177966 Expansible animation properties migration
      This refactoring migrates the animation properties of the Expansible widget to AnimationStyle for a less broad API surface. Authored by Kishan Rathore and reviewed by Victor Sanni and Kate Lovett.
    • #178219 Remove hack for runtimeType in key.dart
      This change removes a hack used to get the runtimeType without using an additional class in key.dart. This simplifies the code and makes it more robust. Authored by Mohellebi abdessalem and reviewed by Victor Sanni.
    • #167119 Add focus support for CupertinoActionSheetAction
      This change adds focus support to the CupertinoActionSheetAction widget, making it more accessible. Authored by Onnimanni Hannonen and reviewed by Justin McCandless and chunhtai.

    Engine

    • #177959 Impeller: Allows R32G32B32A32_SFLOAT images
      This change adds support for R32G32B32A32_SFLOAT images to the Impeller rendering engine, which is useful for HDR images. Authored by gaaclarke and reviewed by Chinmay Garde.
    • #177460 Fix zoom and subpixel shift
      This change fixes a zooming issue and drops the subpixel shift, resulting in a smoother user experience. Authored by Rusino and reviewed by Mouad Debbar.

    Tooling

    • #178500 Better error message for widget preview
      This change throws a ToolExit if Flutter Web is not enabled when using the widget preview tool, providing a better error message to the user. Authored by Ben Konyi and reviewed by Jessy Yameogo.
    • #178398 Ignore ephemeral directories in widget preview
      This change ignores modifications to files in ephemeral directories in the widget preview tool, improving performance. Authored by Ben Konyi and reviewed by Jessy Yameogo.
    • #177852 Correct iOS signing log
      This change corrects the iOS signing log for manual code signing, making it easier to debug signing issues. Authored by Mohammed Tarig Nour and reviewed by Victoria Ashworth and LouiseHsu.

    Platform

    • #177817 Implement dialog windows for Linux
      This change implements dialog windows for the Linux platform, bringing it closer to feature parity with other platforms. Authored by Robert Ancell and reviewed by Matthew Kosarek.
    • #178309 API to customize semantics placeholder message on web
      This change adds an API to customize the semantics placeholder message on the web, improving accessibility. Authored by Mouad Debbar and reviewed by Yegor.
    • #173993 Migrate plugin templates to Kotlin DSL
      This change migrates the plugin templates to the Kotlin DSL, which is the recommended way to write Gradle build scripts. Authored by Byoungchan Lee and reviewed by Gray Mackall and Reid Baker.
    • #176393 Platform-specific asset filtering
      This change adds support for platform-specific asset filtering in pubspec.yaml, allowing developers to include assets only for specific platforms. Authored by Alex Frei and reviewed by Ben Konyi and Lau Ching Jun.
    • #178081 Listen to text spacing overrides on the web
      This change makes the web engine listen to text spacing overrides, improving the text rendering on the web. Authored by Renzo Olivares and reviewed by Mouad Debbar, LongCatIsLooong, and Loïc Sharma.

    First-time Contributors

  21. Piinks commented on Nov 21, 2025

    @Piinks
    ContributorAuthor

    November 15, 2025 to November 21, 2025

    Details

    This week, we landed 130 commits to the Flutter framework, which will be in version 3.39 or later. We also welcomed 1 new contributor to the project!

    Compiled with care with Gemini-CLI. 🤖 😉


    Framework

    #174014 New RepeatingAnimationBuilder for simplified looping animations! 🎬
    Creating continuous, looping animations is now easier than ever with the new RepeatingAnimationBuilder widget. This addition simplifies the setup for common animation patterns, like spinners or pulsators, by managing the AnimationController internally.

    #177705 Autocomplete options now show even after a selection. 🧠
    The RawAutocomplete widget has been improved to continue showing suggestions even after an option has been selected, providing a more intuitive user experience.

    #178372 TrainHoppingAnimation now correctly notifies status listeners. 🚂
    A fix to TrainHoppingAnimation ensures that status listeners are properly notified of changes, making animations that switch between controllers more reliable.

    #178640 DropdownMenuFormField gains a decorationBuilder. 🎨
    You can now dynamically customize the decoration of a DropdownMenuFormField using the new decorationBuilder property, allowing for more flexible and interactive designs.

    #177477 Accessibility performance gets a boost. ⚡️
    A performance optimization to computeChildGeometry makes accessibility calculations slightly faster, contributing to a smoother experience for users of accessibility services.

    #178799 Modernized windowing API usage. 🖼️
    The framework now uses the modern WidgetsBinding.instance.platformDispatcher in windowing APIs instead of the older PlatformDispatcher.instance, improving consistency and future-proofing the code.

    Engine

    #178418 Impeller now supports r32float textures. 📈
    This change adds support for r32float textures to Impeller, enabling new rendering possibilities and performance optimizations, especially for shaders that only need a single float channel.

    #178833 Impeller on Vulkan gets smarter about device support. 📱
    To improve stability, Impeller will now deny-list Adreno 640 and 650 GPUs for Vulkan eligibility, preventing potential rendering issues on those devices.

    Tool

    #178840 Native hooks build system gets its own output directory. 🛠️
    The build system for native hooks now uses a separate output directory, preventing conflicts with the primary build and improving build reliability.

    Platforms

    Windows

    #178523 Windows Enter key behavior is now more reliable. ⌨️
    A bug has been fixed where the Enter key could be dropped after the app window lost and regained focus, improving the user experience on Windows.

    macOS

    #178625 macOS framework layout fixed for code assets. 📦
    This change corrects the layout of macOS frameworks for code assets, ensuring that they are structured correctly and improving the reliability of native code integration.

    #176893 Dialog windows are now implemented for macOS. 💬
    You can now create dialog windows on macOS, a long-awaited feature that brings more platform-native UI capabilities to Flutter apps on the desktop.

    iOS

    #178700 UIScene migration is now enabled. 📱
    Flutter apps on iOS will now use the modern UIScene-based lifecycle, improving compatibility with the latest iOS features and ensuring a more robust app experience.

    Bug Fixes

    Zero-size crash fixes for multiple widgets. 🐛
    A number of widgets have been made more robust against crashes when they are given a zero size, improving the overall stability of the framework. This includes TextSelectionToolbarTextButton, CupertinoSpellCheckSuggestionsToolbar, TabBar, ToggleButtons, ReorderableListView, and TabPageSelector.


    First-time Contributors

    A huge welcome to our new contributor this week! 🎊

  22. Piinks commented on Dec 12, 2025

    @Piinks
    ContributorAuthor

    November 22, 2025 to December 12, 2025

    Details

    Since the last report, nearly 300 commits landed in the Flutter project, which should be in version 3.40 or later. We also welcomed 3 new contributor to the project!

    Compiled with care with Gemini-CLI. 🤖 😉

    Framework

    • #179179 Fix draggable scrollable sheet example drag speed is off. This change fixes an issue in the DraggableScrollableSheet example where the sheet would not correctly follow the pointer when dragged off-screen and back, improving the examples's usability and demonstrating correct implementation.

    • #179352 Reland: Add framework-side hitTestBehavior support to Semantics. This change re-introduces hitTestBehavior to the semantics framework, allowing platform views to correctly receive pointer events inside modal routes, which fixes a regression and improves accessibility.

    • #179132 Fix the issue with pinned headers in nested SliverMainAxisGroup. This change fixes a visual bug in nested SliverMainAxisGroups where pinned headers would overlap during scrolling, ensuring they now correctly push each other off-screen as expected.

    • #175515 added onUserInteractionIfError for form. This change introduces a new AutovalidateMode, onUserInteractionIfError, for forms, which improves user experience by deferring validation until a user interacts with a field that already contains an error.

    • #179199 Fix Scrollbar drag behavior. This change fixes an issue where a scrollbar could not be dragged when the CustomScrollView had a center sliver with no children, improving the robustness of scroll behavior.

    • #176927 feat: Add mainAxisExtent parameter to GridView constructors. This change adds a mainAxisExtent parameter to GridView constructors, allowing developers to set a fixed height for grid items, which provides more control over the layout, especially across different screen sizes and orientations.

    Engine

    • #179426 Use depth buffer to implement geometry overdraw protection. This change improves rendering performance by using the depth buffer for geometry overdraw protection, replacing the previous, less efficient stencil-based approach.

    • #179519 Implements decodeImageFromPixelsSync. A new synchronous decodeImageFromPixelsSync method provides a more performant way to create images from raw pixel data, which is especially useful for graphics-intensive applications like chaining fragment shaders.

    • #178691 Adds format argument to Picture.toImageSync. The Picture.toImageSync method now accepts a format argument, giving developers more control over the pixel format of the resulting image and enabling more advanced graphics techniques.

    • #175442 [wimp] Initial Impeller on Web implementation. This change introduces the initial implementation of the Impeller rendering engine for the web, a major step towards improving rendering performance and fidelity on the web platform.

    Platform

    • #179538 [win32] Do not flood message loop with wake up messages. This change improves the responsiveness of Flutter applications on Windows by preventing the message loop from being flooded with wake-up messages, especially when the Dart event loop is busy.

    • #179659 [ios][pv] accept/reject gesture based on hitTest (with new widget API). Developers now have more control over gesture handling in UiKitView with the new gestureBlockingPolicy, which allows specifying how gestures are blocked or passed to the underlying UIView.

    • #179528 Ensure that the engine converts std::filesystem::path objects to UTF-8 strings on Windows. This change fixes a bug on Windows where applications would fail to launch if their build path contained non-UTF-8 characters.

    • #179484 Implement flutter/accessibility channel. This change implements the accessibility channel on Linux, enabling screen reader support for semantic announcements and live regions.

    • #179153 [ios] Reland Dynamic Content Resizing. The FlutterView on iOS can now automatically resize based on its content by setting the isAutoResizable flag, which is a significant improvement for add-to-app scenarios.

    • #179310 Replace use of eglCreateImage with eglCreateImageKHR to reduce EGL requirement. This change lowers the EGL version requirement on Linux by replacing eglCreateImage with eglCreateImageKHR, which fixes application startup failures on some systems.

    • #177653 [Windows] Allow apps to prefer high power GPUs. Windows developers can now request a high-performance GPU for their applications, which is beneficial for games and other graphics-intensive applications.

    Tool

    • #175900 Exit with code 1 when calling flutter build without arguments. The flutter build command will now exit with a non-zero error code when no subcommand is provided, preventing unexpected behavior in CI/CD pipelines and other scripts.

    • #178116 [ Widget Preview ] Add embedded Widget Inspector support. Widget previews now feature an embedded Widget Inspector, allowing developers to inspect their previews directly in the browser without needing a special IDE debug session.

    First-time Contributors

    Congratulations to our new first-time contributors! Thank you for contributing to Flutter. 💙

  23. Piinks commented on Jan 24, 2026

    @Piinks
    ContributorAuthor

    December 13, 2025 to December 31, 2025

    As we close out this issue for 2025, the Flutter team and community have been hard at work! This period saw 206 commits land in the main repository. We saw significant improvements in Material theming, platform-specific refinements for Linux and iOS, and better error handling to improve developer experience. We also welcomed 5 new contributors to the project!

    Compiled with care with Gemini-CLI. 🤖 😉

    Framework & Material

    • #180001 Introducing SnackBarTheme
      Developers can now style SnackBars globally with a dedicated theme, simplifying consistency across applications.

    • #179736 New FloatingActionButtonTheme
      A new theme class allows for more granular and global control over Floating Action Button styles.

    • #179661 Customizable Slider Value Indicator
      The new Slider.showValueIndicator property gives developers control over when the value indicator is displayed.

    • #178098 Enhanced ListTiles
      CheckboxListTile, SwitchListTile, and RadioListTile now support property passthrough, making them more flexible.

    • #179210 NestedScrollView Pinned Header Fix
      Fixed an issue where headers in NestedScrollView wouldn't stay pinned correctly, ensuring smoother scrolling experiences.

    • #171348 Cupertino Sheet Top Gap
      Added a top gap property to Cupertino sheets, allowing for better visual spacing customization on iOS.

    • #175473 iOS-Style Blurring
      Implemented iOS-style blurring support in the framework, utilizing new engine capabilities for more native-like visuals. 🍎

    • #180329, #180280, #179995
      Fixed multiple crashes that could occur when widgets like DecoratedBox, CheckedModeBanner, and others were rendered in a 0x0 environment.

    Engine & Performance

    Platform, Tooling & Ecosystem

    First-time Contributors

    We are thrilled to welcome 5 new contributors who made their first commit to Flutter this period! 🎉

  24. Piinks commented on Jan 24, 2026

    @Piinks
    ContributorAuthor

    And a fabulous year it was, moving on to 2026!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P3Issues that are less important to the Flutter projectengineflutter/engine related. See also e: labels.frameworkflutter/packages/flutter repository. See also f: labels.permanently lockedPrevent this issue from getting automatically unlockedteam-frameworkOwned by Framework teamtriaged-frameworkTriaged by Framework team

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions