Done Log — 毎日のルーティンタスクを管理するiPhoneアプリの紹介

Flutter と Riverpod で開発した習慣トラッカーアプリ「Done Log」の紹介。柔軟な繰り返しルールエンジン(毎日・N日おき・曜日指定・1回のみ)でルーティンタスクを自動リセットする。

Read in: en
Done Log — 毎日のルーティンタスクを管理するiPhoneアプリの紹介

Done Log — 毎日のルーティンタスクを管理するiPhoneアプリの紹介

なぜ作ったか

ルーティンタスクはGoogle Keepで管理していたのだが、毎日の完了確認のような手段がなかったので、ルーティンタスクに特化したタスク管理アプリを作ってみた。

ワンタップでタスク完了が記録できて、繰り返しルールに従って自動でリセットされる。管理の手間と記録しやすさに特化して開発した。

App Storeで公開しているので、興味があればぜひ試してみてほしい。

ユースケース

主な機能

今日のタスク一覧

今日のタスクビュー

今日の日付と繰り返しルールにマッチするタスクが「今日」欄にリストアップされる。完了済みタスクは取り消し線とチェックマークで表示され、その日の進捗をひと目で確認できる。

完了したタスク

タスク登録フォーム

タスクフォームでは4種類の繰り返しタイプを選択できる。everyNDaysでは2〜30日の間隔をスライダーで指定できる。weekdaysでは複数の曜日チェックボックスで任意のパターン(例:月・水・金のみ)を設定できる。

タスクフォーム

カレンダービュー

過去の完了記録を月間カレンダーで可視化する。任意の日付をタップすると、その日に完了したタスクの一覧を確認できる。習慣の継続状況を振り返ったり、タスクをこなせなかった日を把握したりするのに便利だ。

カレンダービュー

設定とダークモード

言語(日本語・英語)とテーマ(ライト・ダーク・システム連動)を設定画面で変更できる。通知リマインダーを任意の時間帯にスケジュールできる。

設定画面 ダークモード

技術スタック

技術
UI Flutter (iOS)
状態管理 / DI Riverpod + riverpod_generator
永続化 Hive
カレンダー table_calendar
通知 flutter_local_notifications
テスト flutter_test / mockito

アーキテクチャはDomain・Application・Infrastructure・Presentationの4層構成で、RiverpodがDIと状態管理を担う。Hiveがすべてのデータをローカルに保存するため、アプリは完全にオフラインで動作する。タスク定義と完了履歴は別テーブルに保存されるため、繰り返しルールを変更しても過去の記録は失われない。

繰り返しルールエンジン

繰り返しルールエンジンは、「このタスクを今日表示すべきか」を判断する仕組みだ。毎日・N日おき・曜日指定・1回のみという4種類のルールをサポートしており、タスクごとに異なるリズムで自動的にリセットされる。

ルールの評価はドメイン層に閉じており、データベースやUIとは切り離されている。そのため、ルールの変更や新しいタイプの追加が他の部分に影響を与えにくい構造になっている。

リセットはアプリ起動時に自動で実行される。ユーザーが意識しなくても、翌日には前日のタスクがリセットされた状態で表示される。

まとめ

Done Logは、毎日のルーティンタスクをできるだけ手間なく管理したいと思って作ったアプリである。ワンタップで記録できる点と、繰り返しルールによる自動リセットが自分で使っていて気に入っている。

良ければダウンロードしてみてほしい。

Tags: Flutter iOS Riverpod Dart
Share: 𝕏 Post Facebook Hatena
✏️ View source / Discuss on GitHub
☕ サポート

このブログを応援していただける方は、以下からサポートをお願いします。いただいたサポートはブログ運営・技術研鑽に活用します。


関連記事