toku5552さんのTODOアプリを読んで、flutterの書き方を感じる
TODOリスト管理のようです。
CI設定
今困っている、CIの設定を見てみる…。
割と単純で、静的コード解析の結果をプルリクエストにコメントさせるようなことはさせてません。
絶対キレイにするぞ!という意志なのかな…?
パッケージ
sqliteが入ってる。内部のデータ管理はこれなのかな。
データベース使えると圧倒的に楽でいい…。
lib
プログラムを見ようと思ったわけだけど…
根っこからディレクトリで分けるときに、どこにエントリーポイントがあるんだろう…?
(あとに書く)
ディレクトリ構造
- common
- domain
- infrastracture
- presentation
presentation
表示に関する部分がまとまってる模様。
〜_pageと〜_modelが集まっている。
domain
ドメイン知識っぽい。
TODOアイテムとか、リポジトリとか。
infrastracture
インフラとの接続コードが書かれてる。
common
SQLiteの接続情報が載っているっぽい。
依存関係
最上位がpresentationで、infrastractureを使ってる。
infrastractureはdomainとcommonを使ってる。
エントリーポイント
main.dart見つけた。lib/presentation
にあった。
main.dart
という名前ならどこにあってもいいのか?それともlib
以下をすべてコンパイルするわけだから、void main()
がどこかに置いてあればいいのか…。後者かな。ひとのプログラムを読むには、まずこれを探そう。
ダイアグラム
ページはリストページTodoListPageと詳細ページTodoItemDetailPageの2つ。
自分もデザインをなんとなく起こしてから、こんなふうに書いてみよう。
TodoItemDetailPage
複数のクラスが入ってると思ってたのに、ひとつしかないや。
TextFieldがテキストボックスなのね。
TodoListPage
これもそうだ。ひとつのクラス、2つのメソッドのみ。
クラスはステートレス。たしかに、状態はなさそうだね。
フローティングボタン
pushWithReload
で画面遷移。
pushWithReload
Navigator.push
で詳細ページを追加してる。
戻るで対応できるようにかな…?