-
Proposez des analyses d’entraînements à l’aide des zones d’entraînement HealthKit
HealthKit facilite la fourniture d'analyses des entraînements, comme les zones de fréquence cardiaque et de puissance à vélo, dans votre app. Apprenez à exploiter les zones intégrées, personnalisées ou à en créer sur mesure. Découvrez comment utiliser la zone en cours et le temps passé dans chaque zone pour fournir des conseils pertinents pendant et après les entraînements.
Chapitres
- 0:01 - Introduction
- 2:17 - Accès aux zones d’entraînement
- 6:19 - Mises à jour des zones en temps réel
- 8:11 - Zones préférées
- 9:00 - Zones personnalisées
Ressources
-
Rechercher dans cette vidéo…
-
-
3:54 - Reading Heart Rate Zones from a completed workout
// Read heart rate zones from the completed workout if let heartRateZoneGroup = workout.zoneGroupsByType?[HKQuantityType(.heartRate)] { let zones = ZoneDisplayData( zoneCount: heartRateZoneGroup.configuration.zones.count, currentZoneIndex: nil, durations: heartRateZoneGroup.zoneDurations.map(\.duration) ) -
7:57 - Handling Live Zone Updates
func workoutBuilder(_ workoutBuilder: HKLiveWorkoutBuilder, didUpdateWorkoutZone zoneUpdate: HKLiveWorkoutZoneUpdate) { guard let zoneGroup = zoneUpdate.zoneGroup else { return } if let currentIndex = zoneUpdate.currentZoneDuration?.zone.index { let data = ZoneDisplayData( zoneCount: zoneGroup.configuration.zones.count, currentZoneIndex: currentIndex, durations: zoneGroup.zoneDurations.map(\.duration) ) Task { @MainActor in self.heartRateZones = data } } } -
9:19 - Check if Preferred Zone has been set
if try await builder.zoneConfiguration(for: HKQuantityType(.heartRate)) == nil { -
9:24 - Create Zone Boundaries
let defaultHeartRateZoneThresholds = [91.0, 114.0, 136.0, 158.0] let bpmUnit = HKUnit.count().unitDivided(by: HKUnit.minute()) let boundaries = defaultHeartRateZoneThresholds.map( {HKQuantity(unit: bpmUnit, doubleValue:$0)} ) -
9:33 - Create Default Workout Zone Configuration
let heartRate = HKQuantityType(.heartRate) let defaultConfiguration = try HKWorkoutZoneConfiguration(quantityType: heartRate, zoneBoundaries: boundaries) -
9:58 - Set Custom Zone Configuration
try await builder.setCustomZoneConfiguration(defaultConfiguration, for: heartRate) } -
10:03 - Begin Data Collection
// Begin data collection let startDate = Date() try await builder.beginCollection(at: startDate)
-