Add a Live Activity for the running workout

A new iOS widget extension shows the active exercise, its phase, and the
work/rest countdown on the lock screen and in the Dynamic Island, driven
by the run flow's live frames so locking the phone mid-set keeps the
timer. The activity is seeded on open, refreshed on every page settle,
dismissed when the flow is left, and cleared on next launch if stranded.
Unifies the build-info stamping across all targets via a YAML anchor.

Claude-Session: https://claude.ai/code/session_01HJDQQDA9QdP8zByg43H5v3
This commit is contained in:
2026-07-08 08:02:34 -04:00
parent e04eb83e70
commit df3eac9d5f
11 changed files with 569 additions and 18 deletions
@@ -0,0 +1,18 @@
//
// WorkoutsWidgetBundle.swift
// Workouts Widget
//
// Copyright 2025 Rouslan Zenetl. All Rights Reserved.
//
import SwiftUI
import WidgetKit
/// The iOS widget extension's entry point. It currently hosts only the active-workout Live
/// Activity; ordinary home/lock-screen widgets can be added to the bundle later.
@main
struct WorkoutsWidgetBundle: WidgetBundle {
var body: some Widget {
WorkoutLiveActivity()
}
}