OLD | NEW |
1 Sky | 1 Sky |
2 === | 2 === |
3 | 3 |
4 Sky is an experimental, high-performance UI framework for mobile apps. Sky helps | 4 Sky is an experimental, high-performance UI framework for mobile apps. Sky helps |
5 you create apps with beautiful user interfaces and high-quality interactive | 5 you create apps with beautiful user interfaces and high-quality interactive |
6 design that run smoothly at 120 Hz. | 6 design that run smoothly at 120 Hz. |
7 | 7 |
8 Sky consists of two components: | 8 Sky consists of two components: |
9 | 9 |
10 1. *The Sky engine.* The [engine](engine) is the core of the system system. | 10 1. *The Sky engine.* The [engine](engine) is the core of the system system. |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
43 ``` | 43 ``` |
44 | 44 |
45 Execution starts in `main`, which creates the `HelloWorldApp`. The framework | 45 Execution starts in `main`, which creates the `HelloWorldApp`. The framework |
46 then marks `HelloWorldApp` as dirty, which schedules it to build during the next | 46 then marks `HelloWorldApp` as dirty, which schedules it to build during the next |
47 animation frame. Each animation frame, the framework calls `build` on all the | 47 animation frame. Each animation frame, the framework calls `build` on all the |
48 dirty components and diffs the virtual `Node` hierarchy returned this frame with | 48 dirty components and diffs the virtual `Node` hierarchy returned this frame with |
49 the hierarchy returned last frame. Any differences are then applied as mutations | 49 the hierarchy returned last frame. Any differences are then applied as mutations |
50 to the physical heiarchy retained by the engine. | 50 to the physical heiarchy retained by the engine. |
51 | 51 |
52 For a more featureful example, please see the | 52 For a more featureful example, please see the |
53 [example stocks app](examples/stocks-fn/lib/stocks_app.dart). | 53 [example stocks app](examples/stocks/lib/stocks_app.dart). |
54 | 54 |
55 Services | 55 Services |
56 -------- | 56 -------- |
57 | 57 |
58 Sky apps can access services from the host operating system using Mojo. For | 58 Sky apps can access services from the host operating system using Mojo. For |
59 example, you can access the network using the `network_service.mojom` interface. | 59 example, you can access the network using the `network_service.mojom` interface. |
60 Although you can use these low-level interfaces directly, you might prefer to | 60 Although you can use these low-level interfaces directly, you might prefer to |
61 access these services via libraries in the framework. For example, the | 61 access these services via libraries in the framework. For example, the |
62 `fetch.dart` library wraps the underlying `network_service.mojom` in an | 62 `fetch.dart` library wraps the underlying `network_service.mojom` in an |
63 ergonomic interface: | 63 ergonomic interface: |
(...skipping 17 matching lines...) Expand all Loading... |
81 -------------- | 81 -------------- |
82 | 82 |
83 We're documenting Sky with a [set of technical specifications](specs) that | 83 We're documenting Sky with a [set of technical specifications](specs) that |
84 define precisely the behavior of the engine. Currently both the implementation | 84 define precisely the behavior of the engine. Currently both the implementation |
85 and the specification are in flux, but hopefully they'll converge over time. | 85 and the specification are in flux, but hopefully they'll converge over time. |
86 | 86 |
87 Contributing | 87 Contributing |
88 ------------ | 88 ------------ |
89 | 89 |
90 Instructions for building and testing Sky are contained in [HACKING.md](HACKING.
md). | 90 Instructions for building and testing Sky are contained in [HACKING.md](HACKING.
md). |
OLD | NEW |