ワダチを作る #5:タイマーの記録を本番に出して、アイコンを入れた

前回(#4)で、坐禅のタイマーの設定と画面を作りました。今回は、その続きです。

  • タイマーの記録(「やった」と、座った時間)
  • タイマーの本番リリース
  • アイコンを入れた
  • 手順を飛ばした失敗が、2つ

タイマーの記録:開始で「やった」が付く

企画で決めていたとおり、タイマーを開始した時点で、その日の「やった」が付きます。途中で止めても、「やった」は残ります。「少しでも座ればよい」という続け方です。

記録は、timer_sessions(タイマーの1回分)に残します。

  • 開始した時刻
  • 設定した時間(開始のときの設定)
  • 実際に座った時間(一時停止のあいだは含めない)

座った時間は、一時停止・止める・終わりのたびに保存します。途中で閉じられたときのために、15秒ごとと、画面が見えなくなったときにも保存します。そうすれば、閉じられても、最後に保存した時間が残ります。保存した時間より減らさず、設定の時間を超えないようにしました。

間違えて開始したときは、記録の画面で「やった」を外せば、タイマーの記録も一緒に消えます(ON DELETE CASCADE)。

記録の画面(10月20日)。朝のまとまりの「瞑想」にチェックが付き、その下に「座った時間 9分45秒」と出ている

記録の画面。その日に座った時間が出る(架空のデータ)

今日でない日や、やらない曜日の習慣でも、タイマーは使えます。ただ、「やった」は付かない、と画面で伝えます。

本番リリース:マイグレーションが2つ

タイマーの3つの Issue(設定・画面・記録)が、開発環境で受入を済ませたので、本番へリリースしました(develop → main)。マイグレーションが入るリリースは、2回目です。

  • 0003:habits に、タイマーの3列を足す(既存の行は、タイマーなし・10分・環境音なしになる)
  • 0004:timer_sessions を作る

今回も、PR の本文に「戻す先の時刻(UTC)」を書きました。PR を作った時刻を書き、マージのあとで、GitHub のマージの時刻に書き換えました。本番のデプロイのログで、2つのマイグレーションが、順に適用されたことを確かめました。本番の URL(Access の後ろ)は、ログインなしだと 302 でログイン画面に移り、本番の workers.dev の URL は 404、と閉じたままです。

本番の画面は、自分で開いて、タイマーの設定から、開始・止める・記録の表示までを確かめました。

アイコンを入れた

ここまでのワダチには、アイコンがありませんでした。ChatGPT で作ってもらった画像を取り込みます。ハコヅミと同じく、アイコンの角の外は透過にします。

作ったのは、4つです。

  • 192px・512px(通常用)。角の外は透過
  • maskable(512px)。全面を背景色で埋めて、絵を80%に縮める(端末が、丸や角丸に切り抜くため)
  • apple-touch-icon(180px)。iOS は、透過を黒く塗るので、こちらも全面を背景色で埋める

切り抜きは、画像の外枠に合わせた、角の丸い四角(少し角のふくらんだ形)で行いました。

文字を入れたくなった

最初の画像には、名前の文字がありませんでした。ハコヅミは、アイコンにも名前の文字が入っています。そこで、新しいバナーの「ワダチ」の文字を切り出して、アイコンに重ねました。轍の道の上だと文字が埋もれるので、文字の後ろに、背景色のやわらかい下地を敷きました。

ところが、そのあと、文字入りの新しい画像をもらったので、結局は、その画像に差し替えました。

ワダチのアイコン。幌馬車と、轍の残る道、砂漠の景色。下に「ワダチ」の文字

本番に入れた、ワダチのアイコン

バナーの文字の色が変わった

バナーも、新しい画像に差し替えました。このとき、色を調べると、「ワダチ」の文字の色が変わっていました。前のバナーは #6a3313 で、基本色(#6b3212)と同じでした。新しいバナーは #4f2208 付近で、かなり濃くなっています。

ワダチは、ハコヅミと逆に、「バナーの文字の色を、基本色にする」と決めていました。そろえるかどうかは、まだ決めていません。

うっかりが、2つ

今回は、手順を飛ばした失敗が2つあり、どちらも、マージ済みかどうかを確かめなかったことが原因でした。

  1. PR #33 を、誤って閉じた:「マージした」と言われたときに、まだ未マージだったのに、ブランチを消して、PR が閉じてしまいました。ブランチを作り直して、開き直しました。
  2. アイコンの修正が、2回、本番に入らなかった:PR をマージされたあとで、同じブランチにコミットを足して push してしまいました。マージ済みの PR には、新しいコミットは入りません。新しいブランチと PR で出し直しました。

直し方は、同じです。ブランチを消す前も、コミットを足す前も、PR の状態を確かめます。マージ済みなら、新しい PR にします。これは、手元のルールとして、意識しておきます。


おわりに

タイマーが、本番に入りました。

  • 開始で「やった」が付き、座った時間を残す
  • 本番のマイグレーションは、2回目。戻す先の時刻を、PR に書いた
  • アイコンは、角の外を透過にして、4つの大きさを作った

次は、積み上がりの見せ方(直近7日・30日の日数、通算、再開のひとこと)です。ワダチの一番大事な設計原則、「連続日数を主役にしない」を、画面にします。その前に、iPad の PWA の不具合(#42)が、公開の前に残っています。

← トップページに戻る