Nouvelle target "CoachLiveActivity" (Widget Extension, bundle ch.hypnotruck.coach.LiveActivity, iOS 17.0) embarquée dans App via copy phase "Embed App Extensions" (dstSubfolderSpec=13). API ActivityKit + WidgetKit vérifiées sur SDK iOS 26.5 swiftinterface (Activity.request(content:), ActivityConfiguration, DynamicIsland(expanded:compactLeading:trailing:minimal:)). Architecture : - CoachLiveActivityAttributes (modèle partagé App ↔ extension) - CoachLiveActivityWidget (Lock Screen + Dynamic Island UI) - CoachLiveActivityBundle (@main WidgetBundle) - LiveActivityManager (App side, wrap Activity.request/update/end) - LiveStore hook : start sur 1er sample, update à chaque ingest, end après 60s "lost". Tout guardé @available(iOS 16.2, *) pour préserver deployment iOS 15. - Info.plist App : NSSupportsLiveActivities = YES. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
14 lines
341 B
Swift
14 lines
341 B
Swift
// CoachLiveActivityBundle.swift
|
|
// Entry point @main de l'extension WidgetKit. Contient le ou les Widgets
|
|
// exposés par cette extension. Ici juste la Live Activity du live workout.
|
|
|
|
import WidgetKit
|
|
import SwiftUI
|
|
|
|
@main
|
|
struct CoachLiveActivityBundle: WidgetBundle {
|
|
var body: some Widget {
|
|
CoachLiveActivityWidget()
|
|
}
|
|
}
|