目的・役割
科目を選んでタイマーを開始・停止する画面。タイマー実行中はLive Activityとも連動。
UI 構成
| 要素 | 説明 |
| 科目選択カード | 登録済み Subject 一覧から選択 |
| タイマー表示 | HH:MM:SS / 経過時間 |
| STARTボタン | タイマー開始 |
| 一時停止 / 停止 | 実行中のみ表示 |
| ポモドーロモードトグル | 集中25分/休憩5分の自動切替 |
| セッション履歴 | 本日のセッション一覧 |
状態
| 状態 | 表示 |
| 停止中 | STARTボタン + 科目選択 |
| 実行中 | 経過時間 + 一時停止/停止 |
| 一時停止中 | 再開ボタン |
| ポモドーロ集中中 | 「集中タイム N分」表示 |
| ポモドーロ休憩中 | 「休憩タイム N分」表示 |
遷移
| 操作 | 先 |
| STOP | StudySession保存 → 同画面 |
使用するデータモデル
StudySession(保存対象)+ Subject(科目選択)
TimerViewModel { isRunning, isPaused, elapsedSeconds, currentSubject, isPomodoroMode, pomodoroPhase }
実装メモ
- UserDefaults 経由でタイマー永続化(24時間境界)
- scenePhase 監視でバックグラウンド時の経過時間補正
- Live Activity と連動(startActivity / updateActivity / endActivity)
関連
変更履歴
| バージョン | 日付 | 変更内容 |
|---|
| 1.0 | 2026-05-09 | 初版作成 |