1
0
mirror of https://github.com/flutter/samples.git synced 2025-11-08 13:58:47 +00:00
Files
samples/provider_shopper
dependabot[bot] 763c79ca8a Bump go_router from 15.1.3 to 16.1.0 in /provider_shopper (#2705)
Bumps [go_router](https://github.com/flutter/packages/tree/main/packages) from 15.1.3 to 16.1.0.
<details>
<summary>Commits</summary>
<ul>
<li><a href="83ae18a4fa"><code>83ae18a</code></a> [go_router] add initial json support <a href="https://github.com/flutter/packages/tree/main/packages/issues/110781">#110781</a> (<a href="https://github.com/flutter/packages/tree/main/packages/issues/9404">#9404</a>)</li>
<li><a href="56bcd0cbbf"><code>56bcd0c</code></a> [google_maps_flutter_ios] Fix kCGImageAlphaPremultipliedLast implicit convers...</li>
<li><a href="b53593053d"><code>b535930</code></a> [interactive_media_ads] Fixes setting adsresponse on Android (<a href="https://github.com/flutter/packages/tree/main/packages/issues/9744">#9744</a>)</li>
<li><a href="28c35c6e0d"><code>28c35c6</code></a> [interactive_media_ads]: Adds additional methods to configure ad requests (<a href="https://github.com/flutter/packages/tree/main/packages/issues/9">#9</a>...</li>
<li><a href="03b33b1a22"><code>03b33b1</code></a> [webview_flutter_platform_interface] Provide flexible API for loading local H...</li>
<li><a href="f0645d8448"><code>f0645d8</code></a> Mark <code>FlutterIOOverrides</code> as <code>final</code> (<a href="https://github.com/flutter/packages/tree/main/packages/issues/9719">#9719</a>)</li>
<li><a href="b2aef15c15"><code>b2aef15</code></a> [in_app_purchase_storekit] Updated comment  (<a href="https://github.com/flutter/packages/tree/main/packages/issues/9445">#9445</a>)</li>
<li><a href="fe53da20d5"><code>fe53da2</code></a> [video_player] Separate event stream from player on iOS (<a href="https://github.com/flutter/packages/tree/main/packages/issues/9700">#9700</a>)</li>
<li><a href="db6988d785"><code>db6988d</code></a> [tool] Remove web drive hot reload workaround (<a href="https://github.com/flutter/packages/tree/main/packages/issues/9704">#9704</a>)</li>
<li><a href="7a9e9ceee8"><code>7a9e9ce</code></a> Fixed Camera Switching Bug (<a href="https://github.com/flutter/packages/tree/main/packages/issues/9671">#9671</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/flutter/packages/commits/go_router-v16.1.0/packages">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=go_router&package-manager=pub&previous-version=15.1.3&new-version=16.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

</details>
2025-08-05 11:44:23 +00:00
..
2023-11-16 08:55:44 +10:00
2019-07-23 15:40:43 -07:00
2023-11-16 08:55:44 +10:00
2025-02-12 18:08:01 -05:00
2023-11-16 08:55:44 +10:00
2023-08-17 06:26:43 +10:00
2025-02-12 18:08:01 -05:00
2023-11-16 08:55:44 +10:00
2022-10-04 22:38:07 +10:00
2023-11-16 14:48:50 +10:00
2023-06-28 19:16:30 +10:00

provider_shopper

A Flutter sample app that shows a state management approach using the Provider package. This is the app discussed in the Simple app state management section of flutter.dev.

Goals for this sample

  • Show simple use of Provider for providing an immutable value to a subtree
  • Illustrate a simple state management approach using the ChangeNotifier class
  • Show use of ProxyProvider for provided objects that depend on other provided objects

The important bits

lib/main.dart

Here the app sets up objects it needs to track state: a catalog and a shopping cart. It builds a MultiProvider to provide both objects at once to widgets further down the tree.

The CartModel instance is provided using a ChangeNotifierProxyProvider, which combines two types of functionality:

  1. It will automatically subscribe to changes in CartModel (if you only want this functionality simply use ChangeNotifierProvider).
  2. It takes the value of a previously provided object (in this case, CatalogModel, provided just above), and uses it to build the value of CartModel (if you only want this functionality, simply use ProxyProvider).

lib/models/*

This directory contains the model classes that are provided in main.dart. These classes represent the app state.

lib/screens/*

This directory contains widgets used to construct the two screens of the app: the catalog and the cart. These widgets have access to the current state of both the catalog and the cart via Provider.of.

Questions/issues

If you have a general question about Provider, 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.