永続化・バックグラウンド対応・ポモドーロ
科目別の学習時間を計測する中核機能。バックグラウンド・アプリ再起動でも正確に経過時間を保持。 ポモドーロモード(集中25分/休憩5分)対応。
saveTimerState(subjectID, isPomodoroMode) → UserDefaults に開始日時・科目ID保存handleBackground() → Timer.invalidate(), 時刻記録handleForeground() → 背景中の経過時間を加算、Timer 再開restoreIfNeeded(context) → 24時間内なら自動復元clearTimerState() → UserDefaults クリア.focus(集中25分) ↔ .shortBreak(休憩5分)| 連携先 | 用途 |
|---|---|
| UserDefaults | タイマー状態永続化 |
| LiveActivityService | 1秒ごとに ContentState 更新 |
| WidgetSyncService | セッション保存後に Widget 同期 |
| SwiftData | StudySession として保存 |
| バージョン | 日付 | 変更内容 |
|---|---|---|
| 1.0 | 2026-05-09 | 初版作成 |