カナエを作る #6:繰り返しは、未来のカードを先に作る。画像だけは全体で1枚にする
前回(#5)で、バケットリスト1件が持つ内容を決めました。今回は、その続きの繰り返しです。
庭のジューンベリーを収穫してジャムを作る、のように、毎年やりたいことがあります。これをどう持つかで、データの形が大きく変わります。
1件のまま記録するか、カードが増えるか
Claude から、2つのイメージを聞かれました。
- 1件のカードのまま、毎年、達成を記録していく
- 毎年、その年の予定のカードが増える
自分のイメージは、カードが増えるほうです。さらに、具体的な形も考えていました。
- 登録のときに繰り返しを指定すると、月または年の単位を選べる(日・週・年代は不要)
- 登録すると、未来のバケットリストとして、その時点で同じ内容で、それぞれ登録される
- 繰り返しで登録したものは、同じキーを内部的に持つ
内部キーを持ちたい理由
同じキーを持ちたいのは、例外を把握するためです。
たとえば、来月だけ日付をちょっとずらすとします。日付を変更しても、その月だけ例外的に予定を変更した、という状態を把握しておきたいと考えました。繰り返しを全て削除するときも、このキーをもとに削除できます。
Claude の評価は、先にカードを作るので、一覧、グラフ、知らせのすべてを、通常のカードと同じ処理で扱えるというものでした。「あと何回」も、同じキーを持つ未完了のカードを数えるだけです。
終了日は、失念していた
先にカードを作る方式だと、終わりなしの繰り返しはできません。Claude に指摘されるまで、失念していました。
繰り返しの終了日は必須にします。未入力なら、エラーで登録できません。
画像は、繰り返し全体で1枚にする
いちばん考えたのは、登録数の上限との関係です。毎月を10年分作ると120件になります。これをカードの数で数えるか、繰り返し全体を1件と数えるか、という問題です。
これは、イメージ画像を共通にするかどうかによると思いました。
上限を画像にだけ設けているのは、ストレージの容量の問題があるからです。バケットリスト1件のテキストのデータは、微々たるものです。
そこで、画像は繰り返し全体で共通の1枚にしました。変更したら、繰り返しのカードが全部変わります。それなら、繰り返し全体を1件と数えて問題ありません。ちょっと処理は面倒だと思っていましたが、カードごとに同じ画像を指すようにすれば、表示は通常のカードと同じ処理で済むようです。
細かいところも、決めた
残りは、Claude の案を確認しながら決めました。
- 全て削除:未完了のカードだけを削除する。達成済みは実績なので残す
- 内容の変更:「このカードだけ」と「未完了すべて」を選べる
- 使える指定:毎年は指定日と指定月、毎月は指定日だけ。31日の毎月指定は、短い月では末日にする
- 1回の繰り返しの上限:60件。毎月なら5年分あれば、一旦大丈夫だと思う
60件は、あとから自分で決めました。数字を決めるのは、Issue にする段階でもよかったのですが、決められるなら決めておきます。
記事を確認していて、削除の抜けに気づいた
この記事の下書きを確認しているときに、思いつきました。未完了を一括で削除する機能自体は、これでいいです。ただ、今年はスキップするけど、来年以降は毎年やりたい、という意味の削除もあります。
たとえば、大通公園のビアガーデンで飲む、というバケットリストです。今年は予定が合わなくて、開催が終わってしまった。今年の分は削除するけれど、来年以降は残したい、というときです。
そこで、削除でも「このカードだけ」を選べるようにしました。内容の変更と同じ形です。
おわりに
繰り返しは、1つの機能に見えて、登録数の上限、画像、削除の範囲と、いろいろなところにつながっていました。
「上限を画像にだけ設けているのは、なぜか」という元の理由に戻ると、判断が楽になったのが印象的です。
次回は、一覧の見せ方と、最初のリリースの範囲です。