# Flutter gallery

Demo app for the material design widgets and other features provided by Flutter.

## Building

You can follow these instructions to build the gallery app
and install it onto your device.

### Prereqs

If you are new to Flutter, please first follow
the [Flutter Setup](https://flutter.io/setup/) guide.

### Building and installing the Flutter app

* `cd $FLUTTER_ROOT/examples/flutter_gallery`
* `flutter upgrade`
* `flutter run --release`

The `flutter run --release` command both builds and installs the Flutter app.

## Prerelease checklist

* Verify that the About box's license page scrolls and reveals its long
long stream of license texts.

## Icon

Android launcher icons were generated using Android Asset Studio:
https://romannurik.github.io/AndroidAssetStudio/icons-launcher.html#foreground.type=image&foreground.space.trim=1&foreground.space.pad=0.1&foreColor=607d8b%2C0&crop=0&backgroundShape=square&backColor=fafafa%2C100&effects=none
