Flutter makes it easy and fast to build beautiful apps for mobile and beyond
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Add agent rule to prevent using material and cupertino in widget tests (#191588) <!-- Thanks for filing a pull request! Reviewers are typically assigned within a week of filing a request. To learn more about code review, see our documentation on Tree Hygiene: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md --> seeing a lot of bad agent behavior, I think it warrant a rule ## Pre-launch Checklist - [ ] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [ ] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [ ] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [ ] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [ ] I signed the [CLA]. - [ ] I listed at least one issue that this PR fixes in the description above. - [ ] I updated/added relevant documentation (doc comments with `///`). - [ ] I added new tests to check the change I am making, or this PR is [test-exempt]. - [ ] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [ ] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. If this change needs to override an active code freeze, provide a comment explaining why. The code freeze workflow can be overridden by code reviewers. See pinned issues for any active code freezes with guidance. **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). 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. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [AI contribution guidelines]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md | 7 天前 | |
Prepare for skills adoption (#184129) Fixes: https://github.com/flutter/flutter/issues/184128 - **Prepare flutter/flutter with the initial files required for skill adoption** ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [ ] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> | 4 个月前 | |
Instruct gemini code assist not to comment on syntax error (#189930) Gemini doesn't know new Dart syntax, and is only adding noise in that case. | 23 天前 | |
fix(workflow): Mac Verify Binaries needs `Linux mac_android_aot_engine` (#191999) | 3 天前 | |
Auto-format Framework (#160545) This auto-formats all *.dart files in the repository outside of the `engine` subdirectory and enforces that these files stay formatted with a presubmit check. **Reviewers:** Please carefully review all the commits except for the one titled "formatted". The "formatted" commit was auto-generated by running `dev/tools/format.sh -a -f`. The other commits were hand-crafted to prepare the repo for the formatting change. I recommend reviewing the commits one-by-one via the "Commits" tab and avoiding Github's "Files changed" tab as it will likely slow down your browser because of the size of this PR. --------- Co-authored-by: Kate Lovett <katelovett@google.com> Co-authored-by: LongCatIsLooong <31859944+LongCatIsLooong@users.noreply.github.com> | 1 年前 | |
Prepare for skills adoption (#184129) Fixes: https://github.com/flutter/flutter/issues/184128 - **Prepare flutter/flutter with the initial files required for skill adoption** ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [ ] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> | 4 个月前 | |
Roll Packages from bd3cbc1b8c3f to cd4cdd0a044b (15 revisions) (#191965) https://github.com/flutter/packages/compare/bd3cbc1b8c3f...cd4cdd0a044b 2026-08-28 21270878+elliette@users.noreply.github.com [material_ui] Add all M3 templates and generated code to `temporarily_excluded/` before migration (flutter/packages#12661) 2026-08-28 engine-flutter-autoroll@skia.org Roll Flutter from 15d8908addf6 to e8dca90ec9e0 (58 revisions) (flutter/packages#12660) 2026-08-28 bkonyi@google.com [various] Update pigeon dev_dependency to ^27.3.2 (flutter/packages#12615) 2026-08-27 269567208+reidbaker-agent@users.noreply.github.com [camera_android_camerax] Enforce CHANGELOG backticks and add eval commit author check to pre-push-skill (flutter/packages#12624) 2026-08-27 imcusg@gmail.com [material_ui] Prevent stale async suggestions in SearchAnchor (flutter/packages#12478) 2026-08-27 bkonyi@google.com [go_router_builder] Support analyzer 14 (flutter/packages#12614) 2026-08-27 srawlins@google.com [cupertino_ui] Use super parameters in more places (flutter/packages#12459) 2026-08-27 32538273+ValentinVignal@users.noreply.github.com [material_ui] Remove no-shuffle from progress indicator test (flutter/packages#12505) 2026-08-27 32538273+ValentinVignal@users.noreply.github.com [two_dimensional_scrollables] Activate leak testing and fix memory leaks (flutter/packages#11653) 2026-08-27 21270878+elliette@users.noreply.github.com [material_ui] Add helper methods in gen_defaults template (flutter/packages#12637) 2026-08-27 brackenavaron@gmail.com [cupertino_ui] fix CupertinoIcons font not being included in examples and fix TextEditingController leaks (flutter/packages#12228) 2026-08-27 269567208+reidbaker-agent@users.noreply.github.com [camera_android_camerax] Check Git hooks configuration in check-readiness skill (flutter/packages#12628) 2026-08-27 47866232+chunhtai@users.noreply.github.com [ci] sync back pr for branch release only run when release succeeds (flutter/packages#12581) 2026-08-27 stuartmorgan@google.com [google_maps_flutter] Convert overlay controllers to Swift (flutter/packages#12638) 2026-08-27 47866232+chunhtai@users.noreply.github.com [go_router_builder] Fixes text golden test to ignore platform specific newline (flutter/packages#12652) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC flutter-ecosystem@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md | 3 天前 | |
Reland "Add a buildtools directory and move third_party/ninja to the project root in order to match the expectations of depot_tools" (#164240) Relands https://github.com/flutter/flutter/pull/163890 and updates the Ninja path used by the engine tool | 1 年前 | |
Make the AbsorbPointer sample show the difference from IgnorePointer (#188940) The `AbsorbPointer` sample shows two overlapping buttons in a `Stack`, but neither button gives any visible feedback when tapped, so the sample doesn't let you observe what `AbsorbPointer` actually does — and as https://github.com/flutter/flutter/issues/87936 points out, it especially doesn't show how it differs from `IgnorePointer`. This implements the design discussed on the issue (keep the existing example, add an `IgnorePointer` counterpart so the side-by-side makes the distinction observable — suggested by @victorsanni): - The sample now shows the original crossed-buttons stack twice, side by side: one overlay wrapped in `AbsorbPointer`, the other in `IgnorePointer`, with a visible "Taps received" counter under each stack. - Tapping the overlapping region on the `AbsorbPointer` side does nothing — the `AbsorbPointer` absorbs the pointer events itself, so neither its child button nor the button behind it receives the tap. Tapping the same region on the `IgnorePointer` side increments the counter of the button behind — the `IgnorePointer` is invisible to hit testing, so the event goes through to the next target in the stack. - The `{@tool dartpad}` blurb on the `AbsorbPointer` class docs is updated to describe the comparison. - The sample test now asserts the observable tap behavior on both sides (including that the uncovered part of the button behind the `AbsorbPointer` still receives taps), replacing the previous mouse-cursor-only check. Fixes https://github.com/flutter/flutter/issues/87936 ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [AI contribution guidelines]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md --------- Co-authored-by: Victor Sanni <victorsanniay@gmail.com> | 2 天前 | |
Update scheduled workflow for more tasks, add goldctl update (#191991) Updates the scheduled-localization-update workflow to a more general workflow for quarterly recurring tasks. Adds quarterly task of bumping goldtctl. Also addresses all lint errors: - Related https://github.com/flutter/flutter/pull/191987 Having a separate workflow for every recurring task was well-pointed out that it will not scale well. GitHub also does not support nesting workflows in subdirectories. So, I updated this to contain all quarterly tasks in the same workflow. There are a couple more on the way. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [ ] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. If this change needs to override an active code freeze, provide a comment explaining why. The code freeze workflow can be overridden by code reviewers. See pinned issues for any active code freezes with guidance. **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). 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. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [AI contribution guidelines]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md | 3 天前 | |
Fixes for texture-backed gradients (#191925) Two fixes for texture-backed gradients: 1. Fix incorrect ending coord check in IPSampleLinearWithTileMode for decal mode. This fixes an issue where decal gradients end a pixel early. 2. Make CreateGradientBuffer compatible with overlapping color stops Related: https://github.com/flutter/flutter/issues/190401 This re-implements part of https://github.com/flutter/flutter/pull/190874. That PR was reverted because it didn't handle wide gamut colors properly. I will re-implement a fixed version of it in multiple parts. In the original reviews for that PR, it was suggested that these self-contained gradient fixes could be put in their own separate PR. Now that the PR is reverted, we get our chance to put these fixes in their own PR. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [ ] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. If this change needs to override an active code freeze, provide a comment explaining why. The code freeze workflow can be overridden by code reviewers. See pinned issues for any active code freezes with guidance. **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). 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. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [AI contribution guidelines]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md | 3 天前 | |
Migrate ios driver tests batch 3 to simulators (#191333) Part of #186414 This batch migrates 7 Devicelab tests to simulators: * `integration_test_test_ios` * `ios_defines_test` * `keyboard_hot_restart_ios` * `native_platform_view_ui_tests_ios` * `platform_channel_sample_test_ios` * `platform_channel_sample_test_swift` Changes: - Moved targets in `.ci.yaml` from `Mac_ios` to `Mac` (Simulator) with `bringup: true` and injected `ruby` dependency. - Changed tags to `["devicelab", "hostonly", "mac"]`. - Wrapped Devicelab tasks with `testWithNewIOSSimulator`. - Migrated `ios_platform_view_tests` to adopt `UIScene` lifecycle - Handled simulator environment battery fallback for `platform_channel` and `platform_channel_swift`. | 7 天前 | |
Make the AbsorbPointer sample show the difference from IgnorePointer (#188940) The `AbsorbPointer` sample shows two overlapping buttons in a `Stack`, but neither button gives any visible feedback when tapped, so the sample doesn't let you observe what `AbsorbPointer` actually does — and as https://github.com/flutter/flutter/issues/87936 points out, it especially doesn't show how it differs from `IgnorePointer`. This implements the design discussed on the issue (keep the existing example, add an `IgnorePointer` counterpart so the side-by-side makes the distinction observable — suggested by @victorsanni): - The sample now shows the original crossed-buttons stack twice, side by side: one overlay wrapped in `AbsorbPointer`, the other in `IgnorePointer`, with a visible "Taps received" counter under each stack. - Tapping the overlapping region on the `AbsorbPointer` side does nothing — the `AbsorbPointer` absorbs the pointer events itself, so neither its child button nor the button behind it receives the tap. Tapping the same region on the `IgnorePointer` side increments the counter of the button behind — the `IgnorePointer` is invisible to hit testing, so the event goes through to the next target in the stack. - The `{@tool dartpad}` blurb on the `AbsorbPointer` class docs is updated to describe the comparison. - The sample test now asserts the observable tap behavior on both sides (including that the uncovered part of the button behind the `AbsorbPointer` still receives taps), replacing the previous mouse-cursor-only check. Fixes https://github.com/flutter/flutter/issues/87936 ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [AI contribution guidelines]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md --------- Co-authored-by: Victor Sanni <victorsanniay@gmail.com> | 2 天前 | |
Reland "Add a buildtools directory and move third_party/ninja to the project root in order to match the expectations of depot_tools" (#164240) Relands https://github.com/flutter/flutter/pull/163890 and updates the Ninja path used by the engine tool | 1 年前 | |
Change the root path of the license crawl to engine/src (#177352) Previously the license script looked for licenses within the engine/src/flutter tree. This PR updates the script to support the move of Abseil and the Fuchsia SDK from engine/src/flutter to engine/src/third_party. See https://github.com/flutter/flutter/pull/177059 and https://github.com/flutter/flutter/pull/177118 | 10 个月前 | |
Migrate ios driver tests batch 2 to simulators (#190930) Part of #186414 This batch migrates 3 Devicelab tests to the simulator and deletes 1 obsolete driver test: * `channels_integration_test_ios` * `platform_interaction_test_ios` * `ios_platform_view_tests (Deleted)` * `route_test_ios` Changes: - Moved targets from `Mac_ios` to `Mac` (Simulator) with `bringup: true` and injected `ruby` dependency. - Changed tags to `hostonly`. - Wrapped Devicelab tasks with `testWithNewIOSSimulator`. - Migrated `platform_interaction`, and `ui integration test apps` to use `UIScene` lifecycle - Skipped `channels_integration_test_ios` AppDelegate migration intentionally, as it exists to test backwards compatibility. Updates based on triage review: * Deleted the ios_platform_view_tests driver test entirely (task, CI config, and driver script) because the engine thread-merge architecture it tested is no longer present. * Cleaned the dev/integration_tests/ios_platform_view_tests project app by removing flutter_driver dependencies and deprecated thread-merge UI buttons. Note: The project itself is kept as it is still used by the physical device `native_platform_view_ui_tests_ios` XCUITest runner. | 4 天前 | |
Prepare for skills adoption (#184129) Fixes: https://github.com/flutter/flutter/issues/184128 - **Prepare flutter/flutter with the initial files required for skill adoption** ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [ ] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> | 4 个月前 | |
fix: line endings for flutter/dart/flutter-dev (#179912) the windows builders should respect these files when making new releases fixes #179242 | 8 个月前 | |
fix(web): Fixes CSS override detection when the browser has a default font size (#186474) <!-- Thanks for filing a pull request! Reviewers are typically assigned within a week of filing a request. To learn more about code review, see our documentation on Tree Hygiene: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md --> We detect CSS overrides by creating a "sentinel" Typography Measurement Element with arbitrary style attributes. We can then detect if there have been any CSS overrides by measuring the sentinel element and seeing if the measured values are different from the ones that we explicitly set. However, there was a bug when the default font-size was overridden in the global CSS (for example if you set "Never use font sizes smaller than:" in Safari settings). If the default font-size was overridden, then we would also mistakenly detect that the default line height factor was overridden as well, because the measured line height scaled with the overridden font-size. Because we thought the line height was different, we then measured the line height factor by dividing the measured line height by the measured font size, which resulted in a huge line height factor because we set the line height to 9999px on the sentinel element. This caused very strange rendering artifacts. This fixes the detection by fixing the line height override logic to account for zooming caused by the font-size being scaled. Fixes #185931 ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. If this change needs to override an active code freeze, provide a comment explaining why. The code freeze workflow can be overridden by code reviewers. See pinned issues for any active code freezes with guidance. **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). 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. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [AI contribution guidelines]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md | 3 个月前 | |
Add Ishaq Hassan to AUTHORS (#190064) Adds my name to the `AUTHORS` file, as the file itself invites: > Anyone who has contributed to the Flutter project in any way (not limited to submitting PRs) is welcome to submit a PR to add their name to this file. I've had a number of PRs merged into `flutter/flutter`, including: - #185938 Add `blendMode` parameter to `RawImage` and `RenderImage` - #184545 Add `clipBehavior` parameter to `AnimatedCrossFade` - #183109 Add `scrollPadding` property to `DropdownMenu` - #186943, #184569, #184572, #183097, #183081 (docs + template fixes) CLA is already signed (required for the merges above). ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide]. - [x] I signed the [CLA]. - [x] This is a change to the `AUTHORS` file only; no code, tests, or docs are affected ([test-exempt]). [Contributor Guide]: https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md [Flutter Style Guide]: https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md [CLA]: https://cla.developers.google.com/ [test-exempt]: https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#tests | 1 个月前 | |
Sync CHANGELOG.md from stable (#191895) This PR automates the synchronization of `CHANGELOG.md` from the `stable` branch to the `master` branch. | 4 天前 | |
Add bare, reidbaker, and android agents (#187588) This PR adds three new custom agents (`bare-agent`, `reidbaker-agent`, `android-agent`) to the repository for use by contributors. long term the reidbaker-agent will be removed it is there to show teammates and contributors what a more active integration looks like. --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> | 2 个月前 | |
Update old wiki links (#149544) Part of https://github.com/flutter/flutter/issues/145009 Finishes updating links in the repo that pointed to the old wiki | 2 年前 | |
Update docs for PR limits (#188388) This updates relevant contribution documentation with regards to the new Github PR limit feature. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. If this change needs to override an active code freeze, provide a comment explaining why. The code freeze workflow can be overridden by code reviewers. See pinned issues for any active code freezes with guidance. **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). 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. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [AI contribution guidelines]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> | 2 个月前 | |
Roll Fuchsia Linux SDK from J123CwfDPYyVDpkMl... to o9DikEfRoFyVK3LKD... (#192031) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter Please CC jsimmons@google.com,zra@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md | 2 天前 | |
License update (#45373) * Update project.pbxproj files to say Flutter rather than Chromium Also, the templates now have an empty organization so that we don't cause people to give their apps a Flutter copyright. * Update the copyright notice checker to require a standard notice on all files * Update copyrights on Dart files. (This was a mechanical commit.) * Fix weird license headers on Dart files that deviate from our conventions; relicense Shrine. Some were already marked "The Flutter Authors", not clear why. Their dates have been normalized. Some were missing the blank line after the license. Some were randomly different in trivial ways for no apparent reason (e.g. missing the trailing period). * Clean up the copyrights in non-Dart files. (Manual edits.) Also, make sure templates don't have copyrights. * Fix some more ORGANIZATIONNAMEs | 6 年前 | |
Rename patent file (#38686) Rename this file to work around a limitation of the GitHub license detection tool, to ensure the repo is correctly tagged as BSD licensed | 6 年前 | |
Remove codecov badge from README (#189728) This is no longer updated with a workflow and a solution requires infra team work. Removing for now See https://github.com/flutter/flutter/issues/178913 | 1 个月前 | |
Migrate ios driver tests batch 2 to simulators (#190930) Part of #186414 This batch migrates 3 Devicelab tests to the simulator and deletes 1 obsolete driver test: * `channels_integration_test_ios` * `platform_interaction_test_ios` * `ios_platform_view_tests (Deleted)` * `route_test_ios` Changes: - Moved targets from `Mac_ios` to `Mac` (Simulator) with `bringup: true` and injected `ruby` dependency. - Changed tags to `hostonly`. - Wrapped Devicelab tasks with `testWithNewIOSSimulator`. - Migrated `platform_interaction`, and `ui integration test apps` to use `UIScene` lifecycle - Skipped `channels_integration_test_ios` AppDelegate migration intentionally, as it exists to test backwards compatibility. Updates based on triage review: * Deleted the ios_platform_view_tests driver test entirely (task, CI config, and driver script) because the engine thread-merge architecture it tested is no longer present. * Cleaned the dev/integration_tests/ios_platform_view_tests project app by removing flutter_driver dependencies and deprecated thread-merge UI buttons. Note: The project itself is kept as it is still used by the physical device `native_platform_view_ui_tests_ios` XCUITest runner. | 4 天前 | |
[analysis] Clarify plugin relative path resolution in root analysis_options.yaml (#191077) ## Description Updates the comment in root `analysis_options.yaml` to accurately explain that analyzer plugin paths are resolved relative to the subpackage directory evaluating the options, so relative plugin paths cannot be inherited from root options. ## Related Issues N/A ## Tests - Verified with `bin/flutter analyze --flutter-repo` Co-authored-by: Sam Rawlins <srawlins@google.com> | 18 天前 | |
Manual roll of Dart from 28e63ac22d8d to 49c637261348 (#190158) This contains a change to the Dart analyzer that affects how exclude paths are used in analysis_options.yaml files. (see https://dart.googlesource.com/sdk.git/+/7c44c487f41e3a19bafa1fb7c309d6035d5e036b) fixes https://github.com/flutter/flutter/issues/190169 | 1 个月前 | |
Move snippets package back into flutter repo (#147690) ## Description This moves the snippets package back into the Flutter repo so that API documentation generation can happen without the use of `dart pub global run` because `pub run` doesn't handle concurrency well. The change modifies the dartdoc building process to include building an executable from the snippets tool and installing that in the cache directory for use during docs generation. The snippets tool will reside in dev/snippets, where it originally resided before being moved to https://github.com/flutter/assets-for-api-docs. The snippets code itself is unchanged from the code that is in https://github.com/flutter/assets-for-api-docs/packages/snippets. ## Related Issues - https://github.com/flutter/flutter/issues/144408 - https://github.com/flutter/flutter/issues/147609 - https://github.com/flutter/flutter/pull/147645 ## Tests - Added snippets tests to the overall testing build. | 2 年前 | |
Update Flutter documentation links in flutter_console.bat (#187354) Changed the following links to the modern day versions in flutter_console.bat https://flutter.dev/ide-setup/ --> https://docs.flutter.dev/tools/editors https://flutter.dev/setup-windows/#update-your-path --> https://docs.flutter.dev/install/add-to-path#windows | 2 个月前 | |
Roll pub packages (#191851) This PR was generated by `flutter update-packages --force-upgrade`. | 5 天前 | |
Roll pub packages (#191726) This PR was generated by `flutter update-packages --force-upgrade`. | 6 天前 |
Flutter 是 Google 推出的软件开发工具包(SDK),旨在帮助开发者通过单一代码库为移动、Web 和桌面平台打造美观、流畅的用户体验。Flutter 能够与现有代码协同工作,已被全球众多开发者和组织广泛采用,并且是免费开源的。
文档
有关发布及其他公告,请加入 flutter-announce 邮件列表。我们的文档还会跟踪各版本间的 重大变更。
服务条款
Flutter 工具可能会偶尔从 Google 服务器下载资源。下载或使用 Flutter SDK,即表示您同意 Google 服务条款:https://policies.google.com/terms
例如,当从 GitHub 安装(而非从预打包的归档文件安装)时,Flutter 工具在首次运行时会立即从 Google 服务器下载 Dart SDK,因为它用于执行 flutter 工具本身。在升级 Flutter 时(例如通过运行 flutter upgrade 命令),也会发生这种情况。
关于 Flutter
我们相信,无论您的目标平台是 iOS、Android、Web、Windows、macOS、Linux,还是将其作为您所选平台的 UI 工具包进行嵌入,Flutter 都能帮助您创建美观、快速的应用,并提供高效、可扩展且开放的开发模式。
出色的用户体验
我们希望让设计师能够充分实现其创意愿景,而不必因底层框架的限制而被迫简化设计。Flutter 的[分层架构]让您能够控制屏幕上的每个像素,其强大的合成能力使您可以不受限制地叠加和动画处理图形、视频、文本和控件。Flutter 包含一整套widget 组件,无论您是为 iOS(Cupertino)还是其他平台(Material)构建应用,都能提供像素级完美的体验,同时支持自定义或创建全新的视觉组件。

快速的结果
Flutter 速度很快。它由硬件加速的 2D 图形库提供支持,如 Skia(Chrome 和 Android 的基础)和 Impeller。我们对 Flutter 的架构进行了精心设计,以支持在设备原生速度下实现无卡顿、无抖动的图形效果。
Flutter 代码由世界级的 [Dart 编程语言]提供支持,该语言能够编译为适用于 iOS 和 Android 的 32 位及 64 位 ARM 机器码,适用于 Web 的 JavaScript 和 WebAssembly,以及适用于桌面设备的 Intel x64 和 ARM 代码。

高效的开发
Flutter 提供有状态热重载功能,让您能够对代码进行更改并立即查看结果,而无需重启应用或丢失应用状态。
可扩展且开放的模式
Flutter 可与任何开发工具配合使用(也可完全不使用开发工具),并且还包含适用于 Visual Studio Code 和 IntelliJ / Android Studio 的编辑器插件。
Flutter 提供了 数万个软件包,无论您的目标平台是什么,都能加快开发速度。此外,借助对 FFI(在 Android 上、在 iOS 上、在 macOS 上 和 在 Windows 上)以及 平台特定 API 的支持,访问其他原生代码也变得十分简单。
Flutter 是一个完全开源的项目,我们欢迎各类贡献。有关如何开始贡献的信息,请参阅我们的 贡献者指南。
