目的・役割

ホーム画面に配置できるウィジェット3種。週間進捗・継続日数・カテゴリ別トラッキングを表示。

3種類のウィジェット

ウィジェットサイズ表示内容
SummarySmall今週のセッション数・最終トレーニング日・ストリーク
WeeklyMedium週間サマリ + トップ種目
CategoryTrackerMediumカテゴリ別の今週セッション数

データソース

// AppGroup UserDefaults
WidgetSharedData {
    let weeklyCount: Int
    let lastWorkoutDate: Date?
    let currentStreak: Int
}

WeeklySummaryData {
    let weekStart: Date
    let weekEnd: Date
    let totalSessionCount: Int
    let topExercises: [TopExercise]
    let currentStreak: Int
    let streakUnit: StreakUnit  // .days / .weeks
}

更新タイミング

実装メモ

変更履歴

バージョン日付変更内容
1.02026-05-09初版作成