You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
samples/material_studies/shrine
Brett Morgan 73086e20c1
Beta branch fix (#173)
5 years ago
..
android Moving Shrine into a material_studies subdirectory (#128) 5 years ago
assets Moving Shrine into a material_studies subdirectory (#128) 5 years ago
fonts Moving Shrine into a material_studies subdirectory (#128) 5 years ago
ios Moving Shrine into a material_studies subdirectory (#128) 5 years ago
lib Beta branch fix (#173) 5 years ago
test Moving Shrine into a material_studies subdirectory (#128) 5 years ago
.gitignore Adding git ignores and pubspec updates (#166) 5 years ago
.metadata Moving Shrine into a material_studies subdirectory (#128) 5 years ago
README.md Moving Shrine into a material_studies subdirectory (#128) 5 years ago
analysis_options.yaml Analysis options uplift to 1.8 (#169) 5 years ago
pubspec.lock Beta branch fix (#173) 5 years ago
pubspec.yaml Analysis options uplift to 1.8 (#169) 5 years ago

README.md

Shrine

A sample shopping app that uses Material Component widgets in its UI and scoped_model to manage the state of its shopping cart.

Goals

  • Show how to customize Flutter's Material Component widgets to produce a unique design for an app.
  • Show how to use scoped_model to manage an app's state and access it across different routes and in different widgets.

This is a modified version of the app featured in Flutter's Material codelabs.

The important bits

/model/app_state_model.dart

The model object representing the state of the app. It holds the available products as well as what's in the shopping cart.

/supplemental

A bunch of widgets that customize Material to produce the look and feel of the app.

shopping_cart.dart

The shopping cart widgets. They access the app state model via ScopedModelDescendant, display the contents of the shopping cart, and allow the user to edit them.

Questions/issues

If you have a general question about any of the techniques you see in the sample, the best places to go are:

If you run into an issue with the sample itself, please file an issue in the main Flutter repo.