tag:github.com,2008:https://github.com/flutter/packages/releases Tags from packages 2026-03-19T15:06:43Z tag:github.com,2008:Repository/99045602/camera-v0.12.0+1 2026-03-19T15:06:43Z camera-v0.12.0+1: [camera] Make Optional.of constructor const (#11247) <p>[camera] Make Optional.of constructor const (<a class="issue-link js-issue-link" href="https://github.com/flutter/packages/pull/11247">#11247</a>)</p> <p>Resolves old TODO from 2023 ( <a class="commit-link" href="https://github.com/flutter/packages/commit/6e09f5b0d26f77bf70ab27d6ab4c7f8b46968c34"><tt>6e09f5b</tt></a> committed by <a class="user-mention notranslate" href="https://github.com/camsim99">@camsim99</a> ) by making the `Optional.of` constructor `const` and removing the obsolete runtime `ArgumentError.checkNotNull` guard that was only needed during Dart 2's mixed-mode (unsound null safety) era. Mixed-mode execution was removed in Dart 3.0, so this is dead code. Not a breaking change.</p> <p>Note that the entire `Optional&lt;T&gt;` class (and surrounding `CameraController`) is copy-pasted across 4 files in the camera packages. Would you prefer to move `Optional&lt;T&gt;` into `camera_platform_interface` to share it, or replace it entirely e.g. with a private sentinel pattern in `copyWith` (as the Flutter framework does for `ThemeData`)?</p> <p>## Pre-Review Checklist</p> cdeil tag:github.com,2008:Repository/99045602/webview_flutter_wkwebview-v3.24.1 2026-03-18T18:26:17Z webview_flutter_wkwebview-v3.24.1 <p>[webview_flutter_wkwebview] Updates platform views on iOS to only hav…</p> <p>…e a weak reference to the native view (<a class="issue-link js-issue-link" href="https://github.com/flutter/packages/pull/11175">#11175</a>)</p> <p>Updates `PlatformViewImpl` to only store a weak reference to the native view. This [issue](<a class="issue-link js-issue-link" href="https://github.com/flutter/flutter/issues/168535">flutter/flutter#168535</a>) seems to indicate the `PlatformViewsController` is keeping a reference to the native view even after it is removed from the `InstanceManager` in `webview_flutter_wkwebview`. This change should allow the pigeon call to happen when the reference to the Dart instance is deallocated. This should be safe because if the Dart instance is deallocated, then the Widget tree should no longer contain the PlatformView. And therefore the native UIView should no longer need to be used. Nor any callbacks that need the `UIView` since it is not on screen.</p> <p>Potential fix for <a class="issue-link js-issue-link" href="https://github.com/flutter/flutter/issues/168535">flutter/flutter#168535</a>, but should still update engine to notify plugins that they are detached before setting `PlatformViewsController` to nil.</p> <p>## Pre-Review Checklist</p> <p>**Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](<a href="https://developers.google.com/gemini-code-assist/docs/review-github-code">https://developers.google.com/gemini-code-assist/docs/review-github-code</a>). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.</p> <p>[^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.</p> bparrishMines tag:github.com,2008:Repository/99045602/local_auth_android-v2.0.7 2026-03-18T20:24:23Z local_auth_android-v2.0.7 <p>[local_auth] Convert to Kotlin gradle for the plugin build files (<a class="issue-link js-issue-link" href="https://github.com/flutter/packages/pull/11169">#11169</a></p> <p><a class="issue-link js-issue-link" href="https://github.com/flutter/packages/pull/11169"></a>)</p> <p>Following up from <a class="issue-link js-issue-link" href="https://github.com/flutter/packages/pull/11127">#11127</a>, this is the initial example of converting a plugin build, rather than an example app build, to Kotlin gradle.</p> <p>This conversion was done manually, but closely referencing the current plugin template files. It differs mostly in not having the parts that are specific to the use of Kotlin source files, since `local_auth` is still Java-only. Later (when we start adopting Kotlin Pigeon generation everywhere, for instance) some of the diffs relative to the template files will go away.</p> <p>Unlike <a class="issue-link js-issue-link" href="https://github.com/flutter/packages/pull/11127">#11127</a> this did not require tool changes, as it turns out that the previous changes were enough to handle these files, but I did add more tests. As with <a class="issue-link js-issue-link" href="https://github.com/flutter/packages/pull/11127">#11127</a> I did not attempt to comprehensively duplicate all Groovy tests, since we should be able to relatively quickly convert everything in the repo, and then pull out the Groovy support and update all the tests to Kotlin.</p> <p>Note that this does *not* convert the plugin's example app to Kotlin gradle, only the plugin itself. The example app for plugins are non-trivial enough (due to native tests) that they should be converted separately. This has the bonus effect of validating that the plugin migration didn't require any changes in the client app.</p> <p>Part of <a class="issue-link js-issue-link" href="https://github.com/flutter/flutter/issues/176065">flutter/flutter#176065</a></p> <p>## Pre-Review Checklist</p> <p>[^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.</p> stuartmorgan-g tag:github.com,2008:Repository/99045602/local_auth_android-v2.0.6 2026-03-18T18:24:37Z local_auth_android-v2.0.6 <p>[dependabot]: Bump androidx.core:core from 1.17.0 to 1.18.0 in /packa…</p> <p>…ges/local_auth/local_auth_android/android (<a class="issue-link js-issue-link" href="https://github.com/flutter/packages/pull/11256">#11256</a>)</p> <p>Bumps androidx.core:core from 1.17.0 to 1.18.0.</p> <p>[![Dependabot compatibility score](<a href="https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=androidx.core:core&amp;package-manager=gradle&amp;previous-version=1.17.0&amp;new-version=1.18.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores">https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=androidx.core:core&amp;package-manager=gradle&amp;previous-version=1.17.0&amp;new-version=1.18.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores</a>)</p> <p>Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.</p> <p>---</p> <p>&lt;details&gt; <br />&lt;summary&gt;Dependabot commands and options&lt;/summary&gt; <br />&lt;br /&gt;</p> <p>You can trigger Dependabot actions by commenting on this PR: <br />- `@dependabot rebase` will rebase this PR <br />- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it <br />- `@dependabot show &lt;dependency name&gt; ignore conditions` will show all of the ignore conditions of the specified dependency <br />- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) <br />- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) <br />- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)</p> <p>&lt;/details&gt;</p> dependabot tag:github.com,2008:Repository/99045602/interactive_media_ads-v0.3.0+12 2026-03-18T18:16:39Z interactive_media_ads-v0.3.0+12 <p>[dependabot]: Bump androidx.core:core-ktx from 1.13.0 to 1.18.0 in /p…</p> <p>…ackages/interactive_media_ads/android (<a class="issue-link js-issue-link" href="https://github.com/flutter/packages/pull/11255">#11255</a>)</p> <p>Bumps androidx.core:core-ktx from 1.13.0 to 1.18.0.</p> <p>[![Dependabot compatibility score](<a href="https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=androidx.core:core-ktx&amp;package-manager=gradle&amp;previous-version=1.13.0&amp;new-version=1.18.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores">https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=androidx.core:core-ktx&amp;package-manager=gradle&amp;previous-version=1.13.0&amp;new-version=1.18.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores</a>)</p> <p>Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.</p> <p>---</p> <p>&lt;details&gt; <br />&lt;summary&gt;Dependabot commands and options&lt;/summary&gt; <br />&lt;br /&gt;</p> <p>You can trigger Dependabot actions by commenting on this PR: <br />- `@dependabot rebase` will rebase this PR <br />- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it <br />- `@dependabot show &lt;dependency name&gt; ignore conditions` will show all of the ignore conditions of the specified dependency <br />- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) <br />- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) <br />- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)</p> <p>&lt;/details&gt;</p> dependabot tag:github.com,2008:Repository/99045602/google_maps_flutter-v2.16.0 2026-03-18T19:08:08Z google_maps_flutter-v2.16.0 <p>[google_maps_flutter] Add color scheme support to app-facing package (<a class="issue-link js-issue-link" href="https://github.com/flutter/packages/pull/11280">#…</a></p> <p><a class="issue-link js-issue-link" href="https://github.com/flutter/packages/pull/11280">…11280</a>)</p> <p>App-facing portion of <a class="issue-link js-issue-link" href="https://github.com/flutter/packages/pull/10471">#10471</a>, incorporating review feedback and some other minor cleanup.</p> <p><span class="issue-keyword tooltipped tooltipped-se">Fixes</span> <a class="issue-link js-issue-link" href="https://github.com/flutter/flutter/issues/176445">flutter/flutter#176445</a></p> <p>## Pre-Review Checklist</p> <p>[^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.</p> stuartmorgan-g tag:github.com,2008:Repository/99045602/google_maps_flutter_web-v0.6.2 2026-03-18T15:47:12Z google_maps_flutter_web-v0.6.2 <p>[google_maps_flutter] Add color scheme support to web implementation (<a class="issue-link js-issue-link" href="https://github.com/flutter/packages/pull/11279">#…</a></p> <p><a class="issue-link js-issue-link" href="https://github.com/flutter/packages/pull/11279">…11279</a>)</p> <p>Web portion of <a class="issue-link js-issue-link" href="https://github.com/flutter/packages/pull/10471">#10471</a>, incorporating review feedback and some other minor cleanup.</p> <p>Part of <a class="issue-link js-issue-link" href="https://github.com/flutter/flutter/issues/176445">flutter/flutter#176445</a></p> <p>## Pre-Review Checklist</p> <p>[^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.</p> stuartmorgan-g tag:github.com,2008:Repository/99045602/google_maps_flutter_platform_interface-v2.15.0 2026-03-18T13:55:36Z google_maps_flutter_platform_interface-v2.15.0 <p>[google_maps_flutter] Add color scheme support to platform interface (<a class="issue-link js-issue-link" href="https://github.com/flutter/packages/pull/11278">#…</a></p> <p><a class="issue-link js-issue-link" href="https://github.com/flutter/packages/pull/11278">…11278</a>)</p> <p>Platform interface portion of <a class="issue-link js-issue-link" href="https://github.com/flutter/packages/pull/10471">#10471</a></p> <p>Part of <a class="issue-link js-issue-link" href="https://github.com/flutter/flutter/issues/176445">flutter/flutter#176445</a></p> <p>## Pre-Review Checklist</p> <p>[^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.</p> stuartmorgan-g tag:github.com,2008:Repository/99045602/google_maps_flutter_android-v2.19.3 2026-03-18T15:35:04Z google_maps_flutter_android-v2.19.3: [google_maps_flutter_android] Batch clustered marker operations (#10940) <p>[google_maps_flutter_android] Batch clustered marker operations (<a class="issue-link js-issue-link" href="https://github.com/flutter/packages/pull/10940">#10940</a>)</p> <p>Note: this PR attempts to use the same strategy from the Google Maps Flutter Web PR <a class="issue-link js-issue-link" href="https://github.com/flutter/packages/pull/10562">#10562</a> and apply it to Google Maps Flutter Android.</p> <p>## Summary <br />- Adds batch `addItems()` and `removeItems()` methods to `ClusterManagersController` <br />- Refactors `MarkersController` to batch add/remove/change operations for clustered markers <br />- Reduces redundant re-clustering calls when multiple markers are added/removed/changed at once</p> <p>This improves performance when working with large numbers of clustered markers by calling `ClusterManager.cluster()` once per cluster manager instead of once per marker.</p> <p>## Test plan <br />- Added unit tests for batch add/remove operations <br />- Added unit test for batch cluster manager changes <br />- Existing tests pass</p> <p>Addresses <a class="issue-link js-issue-link" href="https://github.com/flutter/flutter/issues/170573">flutter/flutter#170573</a></p> <p>## Pre-Review Checklist</p> <p>**Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](<a href="https://developers.google.com/gemini-code-assist/docs/review-github-code">https://developers.google.com/gemini-code-assist/docs/review-github-code</a>). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.</p> <p>[^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> elitree tag:github.com,2008:Repository/99045602/web_benchmarks-v4.1.1 2026-03-17T18:15:12Z web_benchmarks-v4.1.1: [web_benchmark] Fix tab connection for newer versions of Chrome (#11266) <p>[web_benchmark] Fix tab connection for newer versions of Chrome (<a class="issue-link js-issue-link" href="https://github.com/flutter/packages/pull/11266">#11266</a>)</p> <p>DevTools has been experiencing a [flake](<a class="issue-link js-issue-link" href="https://github.com/flutter/flutter/issues/183335">flutter/flutter#183335</a>) with `package:web_benchmark`'s launching of Chrome. I've also noticed several times a similar failure when running web engines locally.</p> <p>Turns out (from trial and error) that newer versions of Chrome seem to establish the WIP connection before tabs have had a chance to open. It's a race between the two, and when the WIP connections is faster, we fail to find any tab to connect to, and therefore we fail. The fix in this PR is to allow a grace period of 5 seconds of retrying to find the tab.</p> <p>I made a [similar fix](<a class="issue-link js-issue-link" href="https://github.com/flutter/flutter/pull/183737">flutter/flutter#183737</a>) in the flutter/flutter repo.</p> mdebbar