iOS keyboard animation synchronization (#37604)

* first keyboard commit

* first keyboard commit

* cleaned up from initial testing

* added keyboard animation stop calculation

* added keyboard animation stop calculation

* lucky updates :)

* type change

* final touches

* final touches

* final touches

* removed KeyboardAnimationView class

* removed KeyboardAnimationView class

* dynamic keyboard spring curve implementation

* broke out spring curve to own objc files

* broke out spring curve to own objc files

* simplified and added test

* modified spring formula to use damping

* added logic for compounding simultaneous animation calls

* remove unnecessary code

* cleanup

* cleanup

* update springCurveIos file

* cleaning up

* simple optimizations

* comment update

* bool update

* credit spring calculation project

* improved setupKeyboardAnimationCureveIfNeeded tests

Improved setupKeyboardAnimationCurveIfNeeded tests

* Optimized compounding animation checks and added new tests

* changed viewport update logic

* Update FlutterViewControllerTest.mm

Updated test nits

* Updated license

* Updated tests

* Cleanup

* Migrated spring class based on React

* Updated syntax

* Update shell/platform/darwin/ios/framework/Source/spring_curve_ios.mm

Co-authored-by: Jenn Magder <magder@google.com>

* Update shell/platform/darwin/ios/framework/Source/spring_curve_ios.h

Co-authored-by: Jenn Magder <magder@google.com>

* Updated naming

* Updated naming

* Optimized spring model calculations

* Improved interpolation accuracy

* Revert "Improved interpolation accuracy"

This reverts commit 6d025129b620db44741f70d659900430d9536628.

* Updated comment

* Updated spring curve comments

* updated to work with third_party spring animation

* updated to use SpringAnimation to/from values

* updated license (removed old files)

* updates

* allow updating springanimation position values

* updated test

* update

* fixes

---------

Co-authored-by: Jenn Magder <magder@google.com>
6 files changed
tree: fdead28bf75fbae3063d8128df56f4feef29a42f
  1. .github/
  2. assets/
  3. benchmarking/
  4. build/
  5. ci/
  6. common/
  7. display_list/
  8. docs/
  9. examples/
  10. flow/
  11. flutter_frontend_server/
  12. flutter_vma/
  13. fml/
  14. impeller/
  15. lib/
  16. runtime/
  17. shell/
  18. sky/
  19. testing/
  20. third_party/
  21. tools/
  22. vulkan/
  23. wasm/
  24. web_sdk/
  25. .ci.yaml
  26. .clang-format
  27. .clang-tidy
  28. .gitattributes
  29. .gitignore
  30. .pylintrc
  31. .style.yapf
  32. analysis_options.yaml
  33. AUTHORS
  34. BUILD.gn
  35. CONTRIBUTING.md
  36. DEPS
  37. Doxyfile
  38. LICENSE
  39. README.md
README.md

Flutter Engine

OpenSSF Scorecard

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.

The Flutter Engine is a portable runtime for hosting Flutter applications. It implements Flutter's core libraries, including animation and graphics, file and network I/O, accessibility support, plugin architecture, and a Dart runtime and compile toolchain. Most developers will interact with Flutter via the Flutter Framework, which provides a modern, reactive framework, and a rich set of platform, layout and foundation widgets.

If you want to run/contribute to Flutter Web engine, more tooling can be found at felt. This is a tool written to make web engine development experience easy.

If you are new to Flutter, then you will find more general information on the Flutter project, including tutorials and samples, on our Web site at Flutter.dev. For specific information about Flutter's APIs, consider our API reference which can be found at the docs.flutter.dev.

Flutter is a fully open source project, and we welcome contributions. Information on how to get started can be found at our contributor guide.