Flutterの最新記事を閲覧するサンプルアプリです。
Riverpodを使ったFlutterアプリの例として参考になれば嬉しいです。
コメントやプルリクエストなど、できるだけ日本語で書いています。
このリポジトリをクローンすれば、カウンターサンプルと同じ容量で動かせるはずです。
フィード取得でエラーになるので、Webで動かす際は後述のgrinderでCORSを無効化してください。
コマンドラインからDartタスクを実行できるgrinderを導入しています。 詳しくはtoolディレクトリのREADME.mdを参照してください。
https://github.com/K9i-0/flutter_feed_viewer/tree/develop/tool
device_previewおよびdevice_preview_screenshotを導入しています。
解説記事 https://zenn.dev/k9i/articles/69eb5a52ce16d1
--dart-define=enable_device_preview=trueを指定して起動すると有効になります。
lib以下は以下のような構成です。 構成はRiverpodの公式サンプルや以下の記事を参考にしています。 https://medium.com/flutter-jp/architecture-240d3c56b597
lib
├── common_widget
├── feature
│ ├── feed
│ │ └── ui
│ └── settings
├── local
├── main.dart
└── util
汎用Widgetが入るディレクトリです。
機能をまとめたディレクトリです。 feedディレクトリならフィードの機能のUI、ロジック、リポジトリがまとまっています。
uiディレクトリは画面が複雑な場合に、クラスとして切り出されたWidgetをまとめています。
ローカルデータソースが入るディレクトリです。 現在はSharedPreferencesのキーやSharedPreferencesのProviderが入っているほか、データベースの定義などもここに入ります。
extensionやhelperが入っています。