OLD | NEW |
1 Sky | 1 Sky |
2 === | 2 === |
3 | 3 |
4 Sky is an experiment in building a UI framework for Mojo. The approach we're | 4 Sky is an experiment in building a UI framework for Mojo. The approach we're |
5 exploring is to create a layered framework based around a retained hierarchy of | 5 exploring is to create a layered framework based around a retained hierarchy of |
6 semantic elements. We're experimenting with different ideas and exploring | 6 semantic elements. We're experimenting with different ideas and exploring |
7 various approaches, many of which won't work and will need to be discarded, but, | 7 various approaches, many of which won't work and will need to be discarded, but, |
8 if we're lucky, some of which might turn out to be useful. | 8 if we're lucky, some of which might turn out to be useful. |
9 | 9 |
10 Sky has three layers, each of which also adds progressively more opinion. At | 10 Sky has three layers, each of which also adds progressively more opinion. At |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
121 ``network_service``. Typically, however, Sky applications access services via | 121 ``network_service``. Typically, however, Sky applications access services via |
122 frameworks that provide idiomatic interfaces to the underlying Mojo services. | 122 frameworks that provide idiomatic interfaces to the underlying Mojo services. |
123 These idiomatic interfaces are layered on top of the underlying Mojo service, | 123 These idiomatic interfaces are layered on top of the underlying Mojo service, |
124 and developers are free to use the underlying service directly. | 124 and developers are free to use the underlying service directly. |
125 | 125 |
126 As an example, the following is a sketch of a module that wraps Mojo's | 126 As an example, the following is a sketch of a module that wraps Mojo's |
127 ``network_service`` in a simpler functional interface: | 127 ``network_service`` in a simpler functional interface: |
128 | 128 |
129 ```html | 129 ```html |
130 SKY MODULE | 130 SKY MODULE |
131 <import src=”mojo://shell” as=”shell” /> | 131 <import src=”mojo:shell” as=”shell” /> |
132 <import src="/mojo/network/network_service.mojom.sky" as="net" /> | 132 <import src="/mojo/network/network_service.mojom.sky" as="net" /> |
133 <import src="/mojo/network/url_loader.mojom.sky" as="loader" /> | 133 <import src="/mojo/network/url_loader.mojom.sky" as="loader" /> |
134 <script> | 134 <script> |
135 module.exports = function fetch(url) { | 135 module.exports = function fetch(url) { |
136 return new Promise(function(resolve, reject) { | 136 return new Promise(function(resolve, reject) { |
137 var networkService = shell.connectToService( | 137 var networkService = shell.connectToService( |
138 "mojo://network_service", net.NetworkService); | 138 "mojo:network_service", net.NetworkService); |
139 var request = new loader.URLRequest({ | 139 var request = new loader.URLRequest({ |
140 url: url, method: "GET", auto_follow_redirects: true}); | 140 url: url, method: "GET", auto_follow_redirects: true}); |
141 var urlLoader = networkService.createURLLoader(); | 141 var urlLoader = networkService.createURLLoader(); |
142 urlLoader.start(request).then(function(response) { | 142 urlLoader.start(request).then(function(response) { |
143 if (response.status_code == 200) | 143 if (response.status_code == 200) |
144 resolve(response.body); | 144 resolve(response.body); |
145 else | 145 else |
146 reject(response); | 146 reject(response); |
147 }); | 147 }); |
148 }; | 148 }; |
(...skipping 11 matching lines...) Expand all Loading... |
160 We're documenting Sky with a [set of technical specifications](specs) that | 160 We're documenting Sky with a [set of technical specifications](specs) that |
161 define precisely the behavior of the engine. Currently both the implementation | 161 define precisely the behavior of the engine. Currently both the implementation |
162 and the specification are in flux, but hopefully they'll converge over time. | 162 and the specification are in flux, but hopefully they'll converge over time. |
163 | 163 |
164 Contributing | 164 Contributing |
165 ------------ | 165 ------------ |
166 | 166 |
167 Instructions for building and testing Sky are contained in [HACKING.md](HACKING.
md). For | 167 Instructions for building and testing Sky are contained in [HACKING.md](HACKING.
md). For |
168 coordination, we use the ``#mojo`` IRC channel on | 168 coordination, we use the ``#mojo`` IRC channel on |
169 [Freenode](https://freenode.net/). | 169 [Freenode](https://freenode.net/). |
OLD | NEW |