PRODUCT NOTE / PRD
続けたくなる、習慣トラッカー。
この文書は「何ができるか」ではなく、なぜ・誰のために・どんな判断で作ってきたかを記録した開発ノートです。
| ステータス | Shipped / Active(v2 リリース済み・継続開発中) |
|---|---|
| 現行バージョン | v2.1.2 build 30(Android 配布中/iOS 審査提出中) |
| プラットフォーム | iOS(App Store)/ Android(APK 直配布)/ Web |
| 対象ユーザー | 運動・学習などの習慣を続けたい個人 |
| 最終更新 | 2026-08-11 |
| 関連リンク | App Store ・ Android APK ・ 変更履歴(Changelog) |
DayGrid は、毎日の習慣を開いて 1 タップで記録するための習慣トラッカーです。100% オフラインで動作します。
v1 は「予定」と「達成」を ToDo × 日付のグリッドで見せる方向で作りましたが、画面が複雑になり肝心の記録操作が重くなりました。v2 では「今日やることに 1 タップでチェックを入れる」一点に絞って作り直しました。v2 リリース済み
「習慣を続けたい」を支える記録には、次の壁があった。
DayGrid はこれを「予定と達成をグリッドで一目化し、積み重ねを可視化して継続を後押しする」ことで解く。
ランニング・読書・筋トレ・瞑想・学習などの日課を定着させたい個人。「真面目な管理ツール」より、気軽に毎日開けるものを求める人。
v2 では上の多くを削り、今日の一覧・1 タップ完了・履歴(連続日数と達成率)に絞った。グリッド表示・統計グラフ・ヒートマップ・キャラテーマ・単発 ToDo は持たない。
「積み重ねが続く」状態になっているかを、次の指標で見る。数値は目標仮置き
各アップデートの裏にある「なぜ」を、決定・仮説・結果の 3 点で残す。理由は変更内容から再構成
OAuthProvider('apple.com') から Apple 専用 API に変えた。
あわせて、ログインの失敗を「同期できませんでした」と呼ぶのをやめ、
失敗の識別子をそのまま画面に出すことにした。ログイン済みの行には
アカウントのアイコンとアドレス、最終同期の時刻を出す。Habit.nextDueDate に持たせた。
逆算すると、記録の窓が 7 日しかない振り返り画面で「一度もやっていない」に落ちて
期限が開始日まで飛ぶ。列に持てば判定は日付の比較だけで済む。[1..7] のまま日ごとに数えると、
全曜日で最大 29%(2/7)にしかならない — v1 で実際に起きたバグと同じ形。
だから期間の集計からは外した。ところが実機で確かめたら
カードが 1 枚残っているのにリングが 100% と出た。
期間の一貫性より、同じ画面の中で数字と一覧が食い違うことのほうが
直接効くと判断した。nextDueDate は「今」の値しか持たない)ので
曜日ベースだけを数えたまま。非対称は残るが、意図した非対称としてコードに書いた。Apple でログインが通らなかった原因を特定して修正/ログインの失敗を同期の失敗と区別して理由を表示/設定にアカウントのアイコンと最終同期時刻
週N回・隔週・月一回の繰り返し/日ごとのメモを振り返り・履歴で読み返せる形に/円グラフを3つ並べて見比べる形へ
詳細画面の状態と操作を分離/通知に習慣名と予定時刻/計測開始日を変更可能に
長押しで並べ替え/時間帯で変わる地の色/バッジを締切ベースに
曜日・今日の残り時間表示/前日ラベル・スライド遷移/週の振り返り入口
週ごと・曜日別の達成率グラフ/詳細画面を閲覧専用に整理
ゼロベースで再構築(習慣のみ・1 タップ完了・1 画面)/任意クラウド同期
10 言語対応/寒色ナチュラルへ配色刷新(切替式)
やさしいトーンへデザイン刷新/ワンタップ記録
通知・リマインダー修復/リマインダー既定 ON 化
ストリーク・ヒートマップ・達成演出/Web 版公開
容量 45% 軽量化(WebP 化)
初回リリース(3 ビュー・今日の設定・統計・レベルテーマ・通知)
v2 で掲げた残り 3 点——端末間同期・10 言語対応・App Store / APK 公開——はいずれも v2.0.0 で達成した。ここからは作り足す方向ではなく、決めた形(習慣のみ・1 タップ・1 画面)を守りながら「続ける」を支える改善を重ねる。
やらないと決めたこと:統計の深掘り、グリッド表示の拡張、単発 ToDo。いずれも v1 で複雑さの原因になった側なので、v2 では戻さない。