Skip to content

Conversation

Hixie
Copy link
Contributor

@Hixie Hixie commented Sep 3, 2021

  • Add more documentation.
  • Make premature binding accesses have better runtime errors.
  • Make accesses to instance not required !.
  • Rationalize our "ensureInitialized" etc logic.

Fixes #64830
Fixes #78028

Most of these changes were done using dart fix --apply, but they have been squashed into one commit for easier merging.
To see previous reviews of this PR, see
#83843,
#86388,
#86438, and
#89451.

Pre-launch Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • 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 feature I am adding, or Hixie said the PR is test-exempt.
  • All existing and new tests are passing.

@google-cla google-cla bot added the cla: yes label Sep 3, 2021
@flutter-dashboard flutter-dashboard bot added a: accessibility Accessibility, e.g. VoiceOver or TalkBack. (aka a11y) a: tests "flutter test", flutter_test, or one of our tests d: examples Sample code and demos f: cupertino flutter/packages/flutter/cupertino repository f: material design flutter/packages/flutter/material repository. framework flutter/packages/flutter repository. See also f: labels. c: contributor-productivity Team-specific productivity, code health, technical debt. labels Sep 3, 2021
@Hixie
Copy link
Contributor Author

Hixie commented Sep 13, 2021

This is blocked on finding a way to migrate Google's code.

@Hixie Hixie force-pushed the binding5 branch 5 times, most recently from d66c561 to 3ccba03 Compare September 16, 2021 23:43
@flutter-dashboard flutter-dashboard bot added a: animation Animation APIs a: text input Entering text in a text field or keyboard related problems d: api docs Issues with https://api.flutter.dev/ documentation f: focus Focus traversal, gaining or losing focus f: gestures flutter/packages/flutter/gestures repository. f: routes Navigator, Router, and related APIs. f: scrolling Viewports, list views, slivers, etc. f: integration_test The flutter/packages/integration_test plugin c: tech-debt Technical debt, code quality, testing, etc. labels Oct 8, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 8, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 8, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 8, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 8, 2022
jpnurmi added a commit to jpnurmi/flutter that referenced this pull request Feb 9, 2022
github-actions bot pushed a commit to gnoliyil/fuchsia that referenced this pull request Feb 11, 2022
WidgetBinding.

This is in line with the following change: flutter/flutter#89451

Change-Id: I9d8a8be5bd95766f8574211be4b259a7d8ac603f
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/645463
Reviewed-by: Tamir Duberstein <tamird@google.com>
Reviewed-by: Alexander Biggs <akbiggs@google.com>
Commit-Queue: Naud Ghebre <naudzghebre@google.com>
NATHANIELCROSBY1 added a commit to NATHANIELCROSBY1/flutter that referenced this pull request Feb 19, 2022
@NATHANIELCROSBY1
NATHANIELCROSBY1 create
…
609e127
13 days ago
Git stats
 27,477 commits
Files
Type
Name
Latest commit message
Commit time
.github
Bump github/codeql-action from 1.0.26 to 1.0.31 (flutter#97820)
14 days ago
bin
Roll Engine from 2a4709a to 0712096 (1 revision) (flutter#9…
13 days ago
dev
Include -isysroot -arch and -miphoneos-version-min when creating dumm…
15 days ago
examples
Clean up the bindings APIs. (flutter#89451)
16 days ago
packages
Report progress on Dismissible update callback (flutter#95504)
14 days ago
.ci.yaml
Marks Linux_android opacity_peephole_fade_transition_text_perf__e2e_s…
15 days ago
.cirrus.yml
Pin dependencies in docker file. (flutter#97466)
18 days ago
.gitattributes
Add pre-stable support for create on Windows (flutter#51895)
2 years ago
.gitignore
Add macOS ephemeral to gitignore (flutter#96397)
20 days ago
AUTHORS
Mirror before scaling in _AnimatedIconPainter (flutter#93312)
24 days ago
CODEOWNERS
[codeowners] Remove *_builders.json ownership (flutter#91691)
4 months ago
CODE_OF_CONDUCT.md
Update CODE_OF_CONDUCT.md (flutter#94583)
3 months ago
CONTRIBUTING.md
Links How to contribute to Flutter YouTube video (flutter#96313)
last month
LICENSE
License update (flutter#45373)
2 years ago
PATENT_GRANT
Rename patent file (flutter#38686)
3 years ago
README.md
Update README (flutter#97271)
24 days ago
TESTOWNERS
Add benchmarks to measure impact of alpha saveLayers in DisplayLists (f…
23 days ago
analysis_options.yaml
Enable no_leading_underscores_for_local_identifiers (flutter#96422)
29 days ago
dartdoc_options.yaml
Eliminate uses of pub executable in docs publishing and sample analys…
6 months ago
flutter_console.bat
License update (flutter#45373)
2 years ago
git clone
create
13 days ago
README.md
Flutter logo
Build Status - Cirrus Discord badge Twitter handle

Flutter is Google's SDK for crafting beautiful, fast user experiences for mobile, web, and desktop from a single codebase. Flutter works with existing code, is used by developers and organizations around the world, and is free and open source.

Documentation
Install Flutter
Flutter documentation
Development wiki
Contributing to Flutter
For announcements about new releases, follow the flutter-announce@googlegroups.com mailing list. Our documentation also tracks breaking changes across releases.

Terms of service
The Flutter tool may occasionally download resources from Google servers. By downloading or using the Flutter SDK you agree to the Google Terms of Service: https://policies.google.com/terms

For example, when installed from GitHub (as opposed to from a prepackaged archive), the Flutter tool will download the Dart SDK from Google servers immediately when first run, as it is used to execute the flutter tool itself. This will also occur when Flutter is upgraded (e.g. by running the flutter upgrade command).

About Flutter
We think Flutter will help you create beautiful, fast apps, with a productive, extensible and open development model, whether you're targeting iOS or Android, web, Windows, macOS, Linux or embedding it as the UI toolkit for a platform of your choice.

Beautiful user experiences
We want to enable designers to deliver their full creative vision without being forced to water it down due to limitations of the underlying framework. Flutter's layered architecture gives you control over every pixel on the screen and its powerful compositing capabilities let you overlay and animate graphics, video, text, and controls without limitation. Flutter includes a full set of widgets that deliver pixel-perfect experiences whether you're building for iOS (Cupertino) or Android (Material), along with support for customizing or creating entirely new visual components.

Reflectly hero image

Fast results
Flutter is fast. It's powered by the same hardware-accelerated 2D graphics library that underpins Chrome and Android: Skia. We architected Flutter to support glitch-free, jank-free graphics at the native speed of your device. Flutter code is powered by the world-class Dart platform, which enables compilation to 32-bit and 64-bit ARM machine code for iOS and Android, as well as JavaScript for the web and Intel x64 for desktop devices.

Dart diagram

Productive development
Flutter offers stateful hot reload, allowing you to make changes to your code and see the results instantly without restarting your app or losing its state.

Hot reload animation

Extensible and open model
Flutter works with any development tool (or none at all), and also includes editor plug-ins for both Visual Studio Code and IntelliJ / Android Studio. Flutter provides tens of thousands of packages to speed your development, regardless of your target platform. And accessing other native code is easy, with support for both FFI and platform-specific APIs.

Flutter is a fully open-source project, and we welcome contributions. Information on how to get started can be found in our contributor guide.
passsy added a commit to wiredashio/wiredash-sdk that referenced this pull request Mar 6, 2022
passsy added a commit to wiredashio/wiredash-sdk that referenced this pull request Mar 6, 2022
clocksmith pushed a commit to clocksmith/flutter that referenced this pull request Mar 8, 2022
daohoangson added a commit to daohoangson/flutter_widget_from_html that referenced this pull request Apr 30, 2022
daohoangson added a commit to daohoangson/flutter_widget_from_html that referenced this pull request Apr 30, 2022
naturallymitchell pushed a commit to naturallymitchell/experiences that referenced this pull request May 4, 2022
from `instance` method on WidgetBinding.

This is in line with the following change: flutter/flutter#89451

Change-Id: Ic14ef38b9dfce37a1d8c340f279394cf4d8012f6
Reviewed-on: https://fuchsia-review.googlesource.com/c/experiences/+/645482
Reviewed-by: Tamir Duberstein <tamird@google.com>
Reviewed-by: Sanjay Chouksey <sanjayc@google.com>
Commit-Queue: Naud Ghebre <naudzghebre@google.com>
naturallymitchell pushed a commit to naturallymitchell/fuchsia that referenced this pull request May 23, 2022
WidgetBinding.

This is in line with the following change: flutter/flutter#89451

Change-Id: I9d8a8be5bd95766f8574211be4b259a7d8ac603f
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/645463
Reviewed-by: Tamir Duberstein <tamird@google.com>
Reviewed-by: Alexander Biggs <akbiggs@google.com>
Commit-Queue: Naud Ghebre <naudzghebre@google.com>
sungmin-park added a commit to coint-hub/flex_with_main_child that referenced this pull request Jul 5, 2022
From flutter 3.x, WidgetsBinding instance is not nullable.

refs: flutter/flutter#89451
github-actions bot pushed a commit to gnoliyil/fuchsia that referenced this pull request Oct 11, 2022
from `instance` method on WidgetBinding.

This is in line with the following change: flutter/flutter#89451

Change-Id: Ic14ef38b9dfce37a1d8c340f279394cf4d8012f6
Reviewed-on: https://fuchsia-review.googlesource.com/c/experiences/+/645482
Reviewed-by: Tamir Duberstein <tamird@google.com>
Reviewed-by: Sanjay Chouksey <sanjayc@google.com>
Commit-Queue: Naud Ghebre <naudzghebre@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a: accessibility Accessibility, e.g. VoiceOver or TalkBack. (aka a11y) a: animation Animation APIs a: tests "flutter test", flutter_test, or one of our tests a: text input Entering text in a text field or keyboard related problems c: contributor-productivity Team-specific productivity, code health, technical debt. c: tech-debt Technical debt, code quality, testing, etc. d: api docs Issues with https://api.flutter.dev/ d: examples Sample code and demos f: cupertino flutter/packages/flutter/cupertino repository f: focus Focus traversal, gaining or losing focus f: gestures flutter/packages/flutter/gestures repository. f: integration_test The flutter/packages/integration_test plugin f: material design flutter/packages/flutter/material repository. f: routes Navigator, Router, and related APIs. f: scrolling Viewports, list views, slivers, etc. framework flutter/packages/flutter repository. See also f: labels.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Restore error message explaining the need to call WidgetsFlutterBinding.ensureInitialized() Clean up Binding.instance
5 participants