フロータイムテクニックは、集中力を維持できる限り作業を続け、集中力が自然に薄れるまで休憩を取らないという柔軟な時間管理手法です。
25分作業して5分休憩という厳格なルールがあるポモドーロテクニックとは異なり、フロータイムは自然な作業リズムに合わせて活用できるテクニックです。
事前に設定された間隔に従うのではなく、自分のリズムに基づいて作業と休憩のタイミングを自分で決めることができます。
この手法は、単一のタスクに深く没頭することを促進し、フロー状態の心理学を活用しています。フロー状態とは、完全に没頭し、時間を忘れるような状態を指します。
詳しくはブログ記事をご覧ください。
タスクリスト
- 集中作業に取り組むタスクを管理するリスト機能です。ユーザーはタスクの追加・編集・完了チェック・削除を行え、各タスクに対して見積もりセッション数(何回の集中セッションが必要か)を設定して進捗を確認できます。現在作業中のタスクはタイマー上に表示され、どのタスクに取り組んでいるかが明示されます。
主な処理内容
• タスク追加: タスク名と見積もりセッション数を入力して新規タスクを追加できます。追加処理が成功するとトースト通知で確認できます。リスト下部の「Add Task」ボタンから入力フォームを開き、新規タスクを作成します。
• タスク表示と進捗: リストには各タスクのタイトルと、完了済みセッション数/見積もりセッション数が表示されます。集中セッション完了時に対応するタスクの完了セッション数がインクリメントされ、進捗が自動更新されます(例: 2/5 のように表示)。
• タスクのアクティブ選択: 任意のタスクをクリックすると「現在作業中」として選択され、タイマー下部に「Working on [タスク名]」として表示されます。もう一度クリックすると選択解除されます(タイマー実行中は選択ロック)。
• 完了状態の切替: 各タスクには完了チェックボタンがあり、クリックでタスクを完了または未完了に切り替え可能です。完了にするとタイトルに打ち消し線が付き、未完了に戻すこともできます(この操作もトースト通知でフィードバックされます)。
• タスク編集: タスク名や見積もりセッション数の変更も可能です。各タスクのメニューから「編集」を選ぶと編集ダイアログが表示され、内容を更新できます。更新後はリスト上でも即座に変更が反映されます。
• タスク削除: タスクのメニューから「削除」を選ぶと確認ダイアログが表示されます。削除を実行するとタスクはリストから消えますが、内部的にはステータスを削除済みに変更するソフトデリートを採用しています。削除後一定時間内であれば「Undo(元に戻す)」操作で削除取り消しも可能です。
フロータイマー
集中時間の計測と休憩時間の管理を行うタイマー機能です。Flowtimeテクニックに基づいており、ユーザーが集中作業を終了するタイミングで休憩時間を自動計算する特徴があります。ポモドーロのように固定時間ではなく、直前の作業時間に応じて休憩時間が決まる柔軟なタイマーです。ワンボタン操作で「開始」「次へ(終了/休憩開始/スキップ)」を切り替えられ、集中セッションと休憩セッションを連続して管理します。
主な処理内容
• ステージ管理: タイマーには「Idle(待機)」「FocusRunning(集中実行)」「BreakReady(休憩準備)」「BreakRunning(休憩実行)」の状態があり、ユーザー操作に応じて遷移します。待機状態で「Start」ボタンを押すと集中セッションが開始し、タイマーが進行します。集中時間を終える際に「Next」ボタンを押すと一時停止し休憩準備状態になり、続けて「Next」でもう一度押すと休憩が開始します。休憩中に再度「Next」を押すと休憩をスキップして待機状態(Idle)に戻ります。このように1つのボタンで集中→休憩→待機のサイクルを進めるシンプルな操作体系です。
統計ダッシュボード
過去の集中セッション実績を可視化するための統計ページです。直近の集中時間を日・週・月・年の単位で振り返りできるようになっており、時間の推移やタスクごとの内訳、休憩とのバランスなどを総合的に確認できます。グラフや指標を通じてユーザーは自身の作業習慣を分析でき、どのくらい集中して作業しているかを直感的に把握することが目的です。
主な処理内容
• 期間切替タブ: 画面上部で表示期間を「今日」「今週」「今月」「今年」に切り替えるタブUIを提供します。選択した期間に応じて統計データを再計算し、以下の指標が更新されます。
• サマリーカード: 選択期間内の合計集中時間やセッション数などの主要指標をカード形式で表示します。例えば「Today's Focus(今日の集中)」では本日の集中時間総計や完了セッション数、休憩時間総計などのサマリーデータが一目でわかるようになっています。週・月・年を選べばその期間の累計値が表示され、期間比較が可能です。
• タイムラインチャート: 集中時間の経時的な推移を示すチャートを描画します。日ビューでは当日内の時間帯ごとの集中量、週ビューでは曜日ごとの集中時間、月・年ビューでは日別・月別の合計推移など、期間に応じた棒グラフや折れ線グラフで視覚化されます。これにより、いつ集中して作業しているか傾向を把握できます。
オフラインデータ永続化
FlowTimeは完全オフライン対応を念頭に設計されており、ユーザーデータはすべてブラウザ内に永続化されます。集中セッションの履歴やタスク情報はIndexedDBを用いてローカルデータベース(FlowDB)に保存され、ネットワークに接続できない状況でもアプリの主要機能が制限なく動作します。サーバーとの同期を行わないためプライバシーも保たれ、ユーザーの作業履歴は自分のブラウザ環境に閉じた形で管理されます。
主な処理内容
• データ永続化: 複数のオブジェクトストアでデータを構造化保存しています。例えばraw_sessionsストアには各セッション(集中/休憩)の記録が保存され、tasksストアにはタスク一覧とそのステータスが保存されます。セッション記録には開始・終了時刻、種別、紐づくタスクID、タイムゾーン等が含まれ、タイムゾーンID(IANA)も保持することで夏時間などの影響下でも正確な日時再現が可能です。
• 日跨ぎ処理: 集中セッションが深夜0時をまたぐ場合、一つのセッションを日ごとに分割して保存します。セッション開始日と終了日が異なる場合は境界でレコードを分割し、それぞれの日付のraw_sessionsとして複数レコード登録します。これにより日別集計が正確に行えるようになり、統計表示でも各日付に適切に反映されます。
• データエクスポート/削除(準備中): ユーザーが任意でデータを扱えるよう、設定ページではデータのエクスポート・消去機能も用意されています。エクスポート機能を有効化すると、保存された全データ(セッション・タスク等)をJSON形式でダウンロードできます。将来的にはCSV形式での出力も計画されています(コード上に実装準備あり)。また「Delete Data(データ削除)」オプションではIndexedDB内の全データを消去することができ、確認ダイアログの後に実行すると保存されたセッションやタスクが全てクリアされます。このようにユーザー自身でデータをバックアップしたりリセットしたりする操作にも対応しています。