Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mono0926/wdb106-flutter
WEB+DB PRESS Vol.106のAndroid・iOSアプリ設計のサンプルをFlutterではどう書くかというサンプル
https://github.com/mono0926/wdb106-flutter
bloc dart design-patterns flutter
Last synced: about 8 hours ago
JSON representation
WEB+DB PRESS Vol.106のAndroid・iOSアプリ設計のサンプルをFlutterではどう書くかというサンプル
- Host: GitHub
- URL: https://github.com/mono0926/wdb106-flutter
- Owner: mono0926
- License: mit
- Created: 2018-08-16T12:27:49.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2024-11-26T08:04:15.000Z (about 1 month ago)
- Last Synced: 2024-12-24T18:08:54.566Z (7 days ago)
- Topics: bloc, dart, design-patterns, flutter
- Language: Dart
- Homepage: https://amzn.to/3SvKD1E
- Size: 3.26 MB
- Stars: 330
- Watchers: 6
- Forks: 30
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# wdb106_sample
- [WEB+DB PRESS Vol.106](https://www.amazon.co.jp/dp/4774199435?tag=mono0926-22) の特集 1 の「実践 Android/iOS アプリ設計」のサンプルを Flutter ではどう書くのかというサンプル
- 元のサンプルは [サポートページ:WEB+DB PRESS Vol.106](http://gihyo.jp/magazine/wdpress/archive/2018/vol106/support) からダウンロード可能## 内容概要
- 以下のパッケージを組み合わせたパターン
- [Riverpod](https://riverpod.dev) の [flutter_riverpod](https://pub.dev/packages/flutter_riverpod)
- [state_notifier](https://pub.dev/packages/state_notifier)
- [freezed](https://pub.dev/packages/freezed)
- 自動テストをほぼ網羅
- 自動スモークテスト(Widget テスト)も対応
- JSON API は http://www.mocky.io で用意
- https://github.com/mono0926/wdb106-flutter/blob/main/response.jsonc| 商品リスト | カート |
| -------------------------------- | ---------------------------- |
| ![商品リスト](screenshots/1.png) | ![カート](screenshots/2.png) |# Provider graph
Generated by https://github.com/rrousselGit/riverpod/tree/master/packages/riverpod_graph
```mermaid
flowchart TB
subgraph Arrows
direction LR
start1[ ] -..->|read| stop1[ ]
style start1 height:0px;
style stop1 height:0px;
start2[ ] --->|listen| stop2[ ]
style start2 height:0px;
style stop2 height:0px;
start3[ ] ===>|watch| stop3[ ]
style start3 height:0px;
style stop3 height:0px;
endsubgraph Type
direction TB
ConsumerWidget((widget));
Provider[[provider]];
end
_ItemListView((_ItemListView));
itemStocksProvider ==> _ItemListView;
_CartButton((_CartButton));
cartProvider ==> _CartButton;
cartProvider ==> _CartButton;
ItemTile((ItemTile));
itemStocksProvider ==> ItemTile;
itemQuantityProviders ==> ItemTile;
_AddButton((_AddButton));
itemQuantityProviders ==> _AddButton;
cartProvider -.-> _AddButton;
CartPage((CartPage));
cartProvider --> CartPage;
_CartListView((_CartListView));
cartProvider ==> _CartListView;
CartHeader((CartHeader));
cartPriceProvider ==> CartHeader;
CartTile((CartTile));
itemStocksProvider ==> CartTile;
cartProvider ==> CartTile;
cartProvider -.-> CartTile;
App((App));
routerProvider ==> App;
itemStocksProvider[[itemStocksProvider]];
httpClientProvider ==> itemStocksProvider;
httpClientProvider[[httpClientProvider]];
itemQuantityProviders[[itemQuantityProviders]];
itemStocksProvider ==> itemQuantityProviders;
cartProvider ==> itemQuantityProviders;
cartProvider[[cartProvider]];
cartPriceProvider[[cartPriceProvider]];
cartProvider ==> cartPriceProvider;
itemStocksProvider ==> cartPriceProvider;
routerProvider[[routerProvider]];
```