Files
coach-ios/ios/App/CoachLiveActivity/CoachLiveActivityBundle.swift
Sylvain Bettinelli 3202e03a63 Trois widgets d'ecran verrouille et une complication Routine
Les familles accessory* n'etaient declarees que cote Watch, alors que ce sont
exactement celles de l'ecran verrouille iOS 16+. Les vues existaient donc
deja : il ne manquait que la declaration cote iPhone.

Ajoutes sur l'ecran verrouille : Forme (circulaire/rectangulaire/inline),
Seance (rectangulaire/inline, avec la bascule doneToday du commit precedent)
et Routine du jour. Sur la Watch : complication Routine, et la seance gagne la
famille circulaire (icone du sport, verte quand elle est faite).

Le snapshot gagne RoutineProgress {done, total} au grain EXERCICE — celui de
la page web et de l'app Watch depuis le 03/08. `fraction` borne le ratio et
protege de la division par zero ; un total nul ne doit pas remplir la jauge.
Meme garde du jour que doneToday : la routine repart a zero au reveil, un
report aveugle afficherait 24/24 des le matin.

Vues dupliquees plutot que partagees entre les deux extensions : elles ne
partagent aucun fichier et l'App Group n'est pas commun entre appareils. Trois
petites vues coutent moins qu'un fichier de plus a cabler dans deux cibles —
et pour la meme raison tout est ajoute a CoachWidgets.swift, deja membre de sa
cible : AUCUN fichier nouveau, donc rien a cabler dans le pbxproj.

⚠️ NON COMPILE — a builder au prochain passage sur le Mac, avec le correctif
« JOUR OFF » (12b56a4).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-11 18:08:13 +00:00

27 lines
984 B
Swift

// CoachLiveActivityBundle.swift
// Entry point @main de l'extension WidgetKit. Contient les Widgets exposés par
// cette extension : la Live Activity du live workout + les widgets d'écran
// d'accueil (séance du jour, score de forme).
import WidgetKit
import SwiftUI
@main
struct CoachLiveActivityBundle: WidgetBundle {
var body: some Widget {
CoachLiveActivityWidget()
CoachTodaySessionWidget()
CoachFormeScoreWidget()
// Saisie rapide : App Intents (iOS 17+) pour l'eau et le café.
if #available(iOS 17.0, *) { CoachQuickWidget() }
// Écran verrouillé (iOS 16+) : mêmes familles que les complications
// Watch. Trois widgets distincts plutôt qu'un seul multi-familles,
// pour qu'ils soient choisissables séparément dans chaque emplacement.
if #available(iOS 16.0, *) {
CoachLockFormeWidget()
CoachLockSessionWidget()
CoachRoutineWidget()
}
}
}