| Index: sky/sdk/lib/README.md
|
| diff --git a/sky/sdk/lib/README.md b/sky/sdk/lib/README.md
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..4b58e3c3ea2a61f529f58309270721c78990fd63
|
| --- /dev/null
|
| +++ b/sky/sdk/lib/README.md
|
| @@ -0,0 +1,66 @@
|
| +SKY SDK
|
| +========
|
| +
|
| +Sky and Sky's SDK are designed as layered frameworks, where each layer
|
| +depends on the ones below it but could be replaced wholesale.
|
| +
|
| +The bottom-most layer is the Sky Platform, which is exposed to Dart
|
| +code as various ```dart:``` packages, including ```dart:sky```.
|
| +
|
| +The [base/](base/) directory contains libraries that extend these core
|
| +APIs to provide base classes for tree structures
|
| +([base/node.dart](base/node.dart)), hit testing
|
| +([base/hit_test.dart](base/hit_test.dart)), debugging
|
| +([base/debug.dart](base/debug.dart)), and task scheduling
|
| +([base/scheduler.dart](base/scheduler.dart)).
|
| +
|
| +Above this are the files in the [painting/](painting/) directory,
|
| +which provide APIs related to drawing graphics, and in the
|
| +[animation/](animation/) directory, which provide core primitives for
|
| +animating values.
|
| +
|
| +Layout primitives are provided in the next layer, found in the
|
| +[rendering/](rendering/) directory. They use ```dart:sky``` and the
|
| +APIs exposed in painting/ to provide a retained-mode layout and
|
| +rendering model for applications or documents.
|
| +
|
| +Widgets are provided by the files in the [widgets/](widgets/)
|
| +directory, using a reactive framework. They use data given in the
|
| +[theme/](theme/) directory to select styles consistent with Material
|
| +Design.
|
| +
|
| +Text input widgets are layered on this mechanism and can be found in
|
| +the [editing/](editing/) directory.
|
| +
|
| +Alongside the above is the [mojo/](mojo/) directory, which contains
|
| +anything that uses the Mojo IPC mechanism, typically as part of
|
| +wrapping host operating system features. Some of those Host APIs are
|
| +implemented in the host system's preferred language.
|
| +
|
| +Here is a diagram summarising all this:
|
| +
|
| +```
|
| + +-----------------------------+ ------
|
| + | YOUR APP |
|
| + | +--------------------+--+
|
| + | | [editing/](editing/) | |
|
| + | +--+-------------------++ |
|
| + | | [widgets/](widgets/) ([theme/](theme/)) | |
|
| + | ++---------------------++ | Dart
|
| + | | [rendering/](rendering/) | |
|
| + +-+---------+------------+ |
|
| + | [painting/](painting/) | [animation/](animation/) | |
|
| + +---------------+--------+ |
|
| + | [base/](base/) | [mojo/](mojo/) |
|
| + +------------+--+-+----+------+ -------
|
| + | dart:sky | | | Host |
|
| + +--------+---+ | | APIs | C++
|
| + | Skia | [Dart](https://api.dartlang.org/) | +------+ ObjC
|
| + +--------+--------+ | Java
|
| + | Mojo |
|
| + +-----------------------------+ -------
|
| + | Host Operating System | C/C++
|
| + +-----------------------------+ -------
|
| +```
|
| +
|
| +TODO(ianh): document dart:sky and the Host APIs somewhere
|
|
|