mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
![]() This adds a smoke test for every single API example. It also fixes 17 tests that had bugs in them, or were otherwise broken, and even fixes one actual bug in the framework, and one limitation in the framework. The bug in the framework is that NetworkImage's _loadAsync method had await response.drain<List<int>>();, but if the response is null, it will throw a cryptic exception saying that Null can't be assigned to List<int>. The fix was just to use await response.drain<void>(); instead. The limitation is that RelativePositionedTransition takes an Animation<Rect> rect parameter, and if you want to use a RectTween with it, the value emitted there is Rect?, and one of the examples was just casting from Animation<Rect> to Animation<Rect?>, which is invalid, so I modified RelativePositionedTransition to take a Rect? and just use Rect.zero if the rect is null. |
||
---|---|---|
.. | ||
android | ||
ios | ||
lib | ||
raw | ||
rendering | ||
services | ||
test | ||
widgets | ||
pubspec.yaml | ||
README.md |
Examples of Flutter's layered architecture
This directory contains several 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