見出し画像

経過日数をカウントする処理を実装する話

余談

前々回の冒頭で書いた通り、個人的に開発のルーティンを保つために、とりあえず席に座ったらまず開発環境を開いて一回デプロイしてみたところ、Flutterの最新バージョンがリリースされたとのこと。

こういうのってほいほいアップグレードして大丈夫なのだろうか。まあ、だめならダウングレードすればいいか、と思ってあげてみました。余談終了。

経過日数のカウントに必要なこと

正直、MVP版をこさえた時に、うじうじ書いたJSのコードが残っているには残っているのですが、まあ一からGPT先生に書いてもらった方が品質高いかなと思いますので、ゼロベースで考えます。

日数のカウントはこのアプリのコア機能です。元々このアプリのモデルは禁煙アプリです。禁煙しようと思った日から今日までの日数をカウントして教えてくれることでモチベーションを維持するというもの。まあ爪噛み癖も一種の依存症ですから同じモデルでいけるのではと考えました。

必要なことは、開始日と現在日ですね。この差分を計算すると経過日数が出ると。なんも難しいことはないです。

細かいことを言うと、システム的には日数の概念ではなくミリ秒単位のシステム時間で計算するはずなので、その辺りの加工は必要なものと思いますが、3年前の自分にできたのだからGPT先生なら余裕なものと思います。

で、前回やった目標日数と一緒にshared_preferencesに記録しておきさえすれば、メイン画面に表示する情報はこれで揃いますし、条件分岐に必要な情報としてもほぼ揃うはずです。ゴールが近い・・・!(と信じたい。)

余談2

こうして毎日しっかり進捗を残せるようになったことは自分自身とても進歩だなと思うのでこのところ凄い充実感を持って暮らせているのですが、このMVP版をMMP版として提供していくためにFlutterベースに作り替える作業は画面的に新しい機能が増えるわけでもないので、臨場感に欠けると言うか、あまり長く時間をかけてやるものではないですね。。。

Flutterに関する知識が僅かでも身についていると思えることは救いだと思いつつも、はやくスタートラインに立ちたいと言うか、余談書いている場合ではないな。

アプリに開始日を記録する

スタートボタンを押した時に、shared_preferencesにデータを持たせると言うだけの話のはず。

しかしあれですね。UI上は困ったことにスタート画面が今はない(スタート画面はダウンロードした初回立ち上げ時や爪噛んでしまって目標リセット時にのみ登場する画面で通常は見えない)ので、便宜上どこかに作らないとテストできないですね・・・

ということで、ジピえもん(ChatGPT)にお願いしてハンバーガーメニューに配置してもらいますか。

と思って改めてソースコード見ると、何も考えずにコード生成し続けてもらったが故に、main.dartが肥大化してしまってメンテナンスどころじゃない感じになってきたので、このタイミングで画面で切り分けるなりした方がいい感じになってきました。。スクリーンごとにファイル分けましょうか。事故りたくないなあ・・・最後にやろうかなあ。。。

や、今だな。で、ここは記事を分けよう。次回は、main.dartをダイエットする話にします。


ご覧いただきありがとうございます。とても嬉しいです。