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`.

1. *Hello, world.* The [hello world app](hello_world) is a basic app that shows
   the text "hello, world."

2. *Stocks.* The [stocks app](stocks) is an example of a typical mobile app
   built using Sky. The app shows a list of all the stocks in the NASDAQ.

3. *Widgets.* The [widgets app](widgets) contains a number of Sky widgets so
   you can experiment with them in a simple container.
