Skip to content

Advanced Topics

This page covers advanced integration patterns for teams that need deeper control over TrainingKit behavior in a UIKit application.

Controller subclassing strategy

In advanced host apps, ClassicWorkoutController and StreamingWorkoutController are typically subclassed to centralize workflow decisions such as custom completion flows, analytics dispatching, and conditional navigation. Keep overrides focused on host responsibilities and call super when the SDK default behavior must be preserved.

Callback orchestration

TrainingKitInterface and logging hooks are the main extension points for synchronization with your backend and analytics systems. In practice, stable integrations process session completion data first, persist critical state, and only then trigger user-facing transitions.

Asset and offline considerations

AssetManager can be used for workflows that prefetch or clean local workout assets for regular sessions. Teams operating in network-constrained environments should define explicit cache lifecycle rules to prevent stale data and excessive storage use.

Remote and cast integrations

For cast-enabled experiences, remote/media synchronization should be treated as a separate control layer coordinated with your host app state machine. TrainingKit exposes remote manager interfaces for this integration, while Google Cast configuration details are found in the upstream iOS SDK repository and DocC archive.

Use Controllers, Delegates, Tracking, and Configuration for API-level details.