| OLD | NEW |
| 1 Sky Widgets | 1 Sky Widgets |
| 2 =========== | 2 =========== |
| 3 | 3 |
| 4 Sky widgets are built using a functional-reactive framework, which takes | 4 Sky widgets are built using a functional-reactive framework, which takes |
| 5 inspiration from [React](http://facebook.github.io/react/). The central idea is | 5 inspiration from [React](http://facebook.github.io/react/). The central idea is |
| 6 that you build your UI out of components. Components describe what their view | 6 that you build your UI out of components. Components describe what their view |
| 7 should look like given their current configuration and state. When a component's | 7 should look like given their current configuration and state. When a component's |
| 8 state changes, the component rebuilds its description, which the framework diffs | 8 state changes, the component rebuilds its description, which the framework diffs |
| 9 against the previous description in order to determine the minial changes needed | 9 against the previous description in order to determine the minial changes needed |
| 10 in the underlying render tree to transition from one state to the next. | 10 in the underlying render tree to transition from one state to the next. |
| (...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 404 * Without keys, the first entry in the current build would always sync with the | 404 * Without keys, the first entry in the current build would always sync with the |
| 405 first entry in the previous build, even if, semantically, the first entry in | 405 first entry in the previous build, even if, semantically, the first entry in |
| 406 the list just scrolled off screen and is no longer visible in the viewport. | 406 the list just scrolled off screen and is no longer visible in the viewport. |
| 407 | 407 |
| 408 * By assigning each entry in the list a "semantic" key, the infinite list can | 408 * By assigning each entry in the list a "semantic" key, the infinite list can |
| 409 be more efficient because the framework will sync entries with matching | 409 be more efficient because the framework will sync entries with matching |
| 410 semantic keys and therefore similiar (or identical) visual appearances. | 410 semantic keys and therefore similiar (or identical) visual appearances. |
| 411 Moreover, syncing the entries semantically means that state retained in | 411 Moreover, syncing the entries semantically means that state retained in |
| 412 stateful subcomponents will remain attached to the same semantic entry rather | 412 stateful subcomponents will remain attached to the same semantic entry rather |
| 413 than the entry in the same numerical position in the viewport. | 413 than the entry in the same numerical position in the viewport. |
| 414 |
| 415 Dependencies |
| 416 ------------ |
| 417 |
| 418 * `package:vector_math` |
| 419 * [`package:sky/animation`](../animation) |
| 420 * [`package:sky/base`](../base) |
| 421 * [`package:sky/painting`](../painting) |
| 422 * [`package:sky/rendering`](../rendering) |
| 423 * [`package:sky/theme`](../theme) |
| OLD | NEW |