flutter/examples/layers
liyuqian a44f174efc
Shader warm up (#27660)
This patch adds a default shader warm up process which moves shader compilation from the animation time to the startup time. This also provides an extension for `runApp` so developers can customize the warm up process.

This should reduce our worst_frame_rasterizer_time_millis from ~100ms to ~20-30ms for both flutter_gallery and complex_layout benchmarks. Besides, this should also have a significant improvement on 90th and 99th percentile time (50%-100% speedup in some cases, but I haven't tested them thoroughly; I'll let our device lab collect the data afterwards).

The tradeoff the is the startup time (time to first frame). Our `flutter run --profile --trace-startup` seems to be a little noisy and I see about 100ms-200ms increase in that measurement for complex_layout and flutter_gallery. Note that this only happens on the first run after install or data wipe. Later the Skia persistent cache will remove the overhead.

This also adds a cubic_bezier benchmark to test the custom shader warm up process.

This should fix https://github.com/flutter/flutter/issues/813 (either by `defaultShaderWarmUp`, or a `customShaderWarmUp`).
2019-02-22 15:37:02 -08:00
..
android Revert "Upgrade the Gradle script to Android plugin version 3.3.0 (#26913)" (#27045) 2019-01-24 14:29:08 -08:00
ios Roll engine to 05fee4eeee0ff6b219b1fcc394371e5f6963cc46 (#26713) 2019-01-21 21:23:04 -08:00
lib Make examples/catalog instructions a bit less confusing (#24252) 2018-11-14 14:26:30 -08:00
raw Shader warm up (#27660) 2019-02-22 15:37:02 -08:00
rendering sort_constructors_first (#22575) 2018-10-04 07:28:07 +02:00
services Prefer void to null (#22977) 2018-10-16 22:03:06 +02:00
test Shader warm up (#27660) 2019-02-22 15:37:02 -08:00
widgets add missing type parameter on methods (#22096) 2018-10-01 21:29:08 +02:00
pubspec.yaml Reland #27754, now that bsdiff has moved to flutter/packages. (#28291) 2019-02-21 21:59:41 -08:00
README.md Update the examples/ README and associated fixes. (#9090) 2017-04-05 11:28:33 -07:00

Examples of Flutter's layered architecture

This directory contains a number of self-contained examples that illustrate Flutter's layered architecture.

  • raw/ These examples show how to program against the lowest layer of the system. They manually receive input packets and construct composited scenes.

  • rendering/ These examples use Flutter's render tree to structure your app using a retained tree of visual objects. These objects coordinate to determine their size and position on screen and to handle events.

  • widgets/ These examples use Flutter's widgets to build more elaborate apps using a reactive framework.

  • services/ These examples use services available in Flutter to interact with the host platform.

To run each example, specify the demo file on the flutter run command line, for example:

flutter run raw/spinning_square.dart
flutter run rendering/spinning_square.dart
flutter run widgets/spinning_square.dart