mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
This fixes some theoretical bugs whereby we were using hashCode to try
to get unique keys for objects, but really we wanted object identity.
It also lays the groundwork for a new GlobalKey concept.
I tried to keep the impact on the code minimal, which is why the "Key"
constructor is actually a factory that returns a StringKey. The code
has this class hierarchy:
```
KeyBase
|
Key--------------+---------------+
| | |
StringKey ObjectKey UniqueKey
```
...where the constructors are Key and Key.stringify (StringKey),
Key.fromObjectIdentity (ObjectKey), and Key.unique (UniqueKey).
We could instead of factory methods use regular constructors with the
following hierarchy:
```
KeyBase
|
LocalKey---------+---------------+
| | |
Key ObjectIdentityKey UniqueKey
```
...with constructors Key, Key.stringify, ObjectIdentityKey, and
UniqueKey, but I felt that that was maybe a more confusing hierarchy.
I don't have a strong opinion on this.
Sky Examples
This directory contains several examples of using Sky. Each of these is an
individual Dart application package. If you wish to run them with sky_tool
then you will want to run pub get inside their directory before running
./packages/sky/sky_tool start.
-
Hello, world. The hello world app is a basic app that shows the text "hello, world."
-
Stocks. The stocks app is an example of a typical mobile app built using Sky. The app shows a list of all the stocks in the NASDAQ.
-
Widgets. The widgets app contains a number of Sky widgets so you can experiment with them in a simple container.