Skip to content

Models ​

The DocC archive exposes model-level symbols used by controller APIs and callbacks.

Session persistence models ​

SaveWorkoutState is the central payload received by saveSession(state:).

High-signal properties documented in DocC include:

  • startDate, duration, calories
  • blocks, filteredBlocks, exercises
  • exerciseEvaluations, difficultyChanges, weightDifficulties
  • equipmentWeights, healthEvaluation, names

Media models ​

TypeKey members
Videourl
VideoMetadatacover, coverSize, title, subtitle, timeRange, relativeProgress(from:)

These models are primarily used by StreamingWorkoutController and remote media integrations.

Exercise and workout mode models ​

TypeNotes
BlockExerciseIncludes identifier, effortType, value.
ExerciseEvaluationIncludes identifier, blockId, duration, repetitions, choice, exerciseMaxReferenceValue.
ExerciseTypeEnum with calibration(_), duration, repetition.
WorkoutStateModeEnum for workout UI state: launcher, start, ongoing, paused, finished, stopped, notStarted.
ChronoStateTimer/countdown state used by workout flow rendering. Includes value (TimeInterval) and referenceDate (TimeInterval), plus the .stopwatch(value:referenceDate:) factory.

Remote playback models ​

TypeNotes
RemoteMediaPlayerStateEnum with loading, buffering, playing, paused, idle, unknown.
RemoteManager / RemoteManagerDelegateModel/controller bridge for remote session state.

Supporting symbols ​

DocC also includes integration support symbols for Apple Watch and session-level communication: SessionDelegater (declared once, in the shared TrainingKitShared module, used by both the iOS and Watch targets) and SessionGateway.shared — note this is two distinct types with the same name, one defined in the iOS TrainingKit module and a separate one defined in TrainingKitWatch, not a single symbol shared across platforms.

Use the DocC archive as canonical source for exact signatures, conformance details, and per-member discussions.