🙆

FlutterWeb:FirebaseHostingへのデプロイとライブラリ選定:スプリントレビュー1

2022/12/24に公開

この記事は0: AI Image Prompter向け投稿サイトをFlutter&スクラムで作るぞ!?の第一回目のスプリントレビューです。

PBI

全然関係ない趣味もHobyとしてPBIに追加しちゃいました。
趣味のPBI、素敵じゃない?

デイリースクラム

毎日真面目にやれ
https://zenn.dev/link/comments/4e9f31675ac1e9

成果物1:FlutterをビルドしてFirebase Hostingにデプロイ

FlutterをビルドしてFirebase Hostingにデプロイしました。
ちゃんとURLも自分のにしましたよ。
https://spellersbar.saiki.app/#/
こちらの記事を参考にさせていただきました。
https://kimuralog.com/?p=1888

gihubにpushしたら自動でデプロイされるようになってまじすごい。助かる。
webのリリースのしやすさ本当いいですよね。
アプリだとスクショとか撮らないとなので本当に面倒。

成果物2:PBIにVelocityを追加

Velocityを追加しました。
PBIをClosedに更新したらClosed atのカラムに時刻を入れ、それを目安に各スプリントの消化SPを追加しています。
地味にめんどくさかったけどまあいい感じにできたはず。
赤い線は平均値です。

成果物3:Flutterのライブラリ選定

データクラス的なやつ

freezed
https://pub.dev/packages/freezed
Kotlinのデータクラスみたいなのを作れる。
Androidエンジニア的にはマスト。

データバインディング的なやつ

riverpod
https://riverpod.dev/ja/

リアクティブ・キャッシングとデータバインディングを実現するフレームワーク

だそうです。なんそれ。
providerは業務で使ってるのでこっちを使ってみます。

バックエンド的なやつ全部

Flutter Fire
https://firebase.flutter.dev/
つまるところFirebase。
全部firebaseで済ます予定です。

ログイン

Firebase ui auth
https://github.com/firebase/flutterfire/tree/master/packages/firebase_ui_auth
FirebaseログインのUI。
ログインを絶対に実装したくないので使います。
公式なんだけど探さないと見つからなさそう。見つかってよかった。

router

gorouter,vrouterとかがあるっぽいけどなくてもいけそうな気がするので一旦なしで行ってみる。
参考(公式):https://docs.flutter.dev/development/ui/navigation

余談:Flutterの画面遷移調べるとnamed routesを使ってるのがよく出てきて、なんでPushでClass指定でタイプセーフに遷移と値渡しできるのにわざわざ文字列指定してobjectで渡してるんだ?ってずっと思ってたんだけど公式でも普通に大体のアプリケーションで使用をお勧めしませんって書いてあって安心しました。

We don’t recommend using named routes for most applications. For more information, see the Limitations section below.

みんなも理由なく使うのやめなね。

成果物4:Flutterのアーキテクチャ

アーキテクチャってほど大層なものでもないんだけど
VNMにしようと思います。(View-Notifier-Model)
初めて聞いた!と思った人いると思うんですがそもそもそんな名前はないので安心してください。今つけた。
まあ実のところみんながMVVMっていってるやつです。最近AndroidのMVVMってライブラリの名前がViewModelだったからそう名付けられているだけで実はMVVMじゃないんじゃないかとか思ったり思わなかったりしたので別の名前でよんでみました。
View(Widget)があって(State)NotifierがあってModelがあります。
実態の通りこう呼んだ方が変な議論巻き起こんなくて楽そうじゃない?

Presentation-domain-dataの三層で依存は左から右に固定します。domainを中心にはしません。そこまで複雑にならないアプリの予定なので多分やりすぎになるため。(めんどい)
あとdomainもいるのかという話もある。大したロジック持つイメージが湧かないので二層にするかも。
あとは各層のobjectは層を跨ぐ時必ずでそれぞれの層のobjectに変換する。変換は専用のクラスが行う。Notifierはもつ公開のStateは必ず一つとするなどのルールがあります。
ありますって言ったけどまあどこにも書いてないので思ってるだけなんですが、これはそのうち別でまとめたいと思います。長くなるので…(スプリントレビューそれでいいのか?という気持ちはある)

ということで本日のスプリントレビューは以上です。
テキストでまとめるとそこそこやった感じがあるな。
デイリースクラム全然やれてないけど…

引き続き頑張ります。
ではまた。

Discussion