Post

Replies

Boosts

Views

Activity

Finishing a HKLiveWorkoutBuilder workout with lots of HKWorkoutActivity instances is very slow
I'm using the new watchOS 9 HKWorkoutActivity in my interval training app (Intervals Pro) for each interval. It's a great addition since all the intervals now show in the Apple Fitness app, however, if the workout has lots of activities then saving the workout is painfully slow. For example, on my Apple Watch Ultra I saved a workout with 63 activities and it took more than 1 minute. Here's a code snippet: try await builder.endCollection(at: workoutEndDate) try await builder.addMetadata(metadata) try await builder.finishWorkout() // This is SLOW Is anyone else having the same issue? To demonstrate the issue you can look at a Test Flight build of Intervals Pro: https://testflight.apple.com/join/Nn7iSOzY Tap on the More tab in the iPhone app and then the Apple Watch Settings. On that screen you'll see a switch to either enable or disable workout activities. To demonstrate the issue, edit a timer to continue until manually stopped by changing the Number of Cycles to "Until Stopped". Then start the timer on the watch. Let it run for a period of time to create more than 50 intervals, for example, then stop the timer. Swipe to the leftmost screen on the watch, tap pause, then tap end. At that point you'll see how slow the workout saved. Next, you can go back to the iPhone app, disable using workout activities and repeat the test. The workout will save quickly in this case. I've filed a feedback.
2
0
983
Mar ’23
New running metrics (runningPower, runningSpeed) not working in watchOS 9 beta 2
I'm using watchOS 9 beta 2 and I'm not getting the new running metrics in my workout app. Using HKLiveWorkoutDataSource attached to a HKWorkoutBuilder ActivityType is running Tried enabling the collection of the new metrics According to Jorge M in the WWDC labs: "Yes, the new running metrics are also available for 3rd party applications. If you are using an HKLiveWorkoutDataSource attached to a HKWorkoutBuilder in your application, the new metrics would be collected by default." The Health app does not show any Related Samples for these types. Am I doing something wrong or are they not available yet to 3rd party workouts? I do see them for the Apple Workout app.
2
2
1.6k
Jun ’22
Crash on iOS 14.x because iOS 15 symbols not found
I'm trying to conditionally support new features in iOS 15 and watchOS 8 by using the @available modifier. However, when running on iOS 14.x the app crashes on launch looking for symbols that found only in iOS 15. For example, scenePadding: dyld: Symbol not found: _$s7SwiftUI4ViewPAAE12scenePaddingyQrAA4EdgeO3SetVFQOMQ That class that uses scenePadding is in my watchOS app and is has an @available modifier. Any idea what's going on?
2
0
1.3k
Aug ’21
SF Symbols missing in iOS 13 version of app
I'm using Xcode 12.2 and have an app that support iOS 14 and iOS 13. I just release a new version of the app and iOS 13 users are seeing missing SF Symbols. For example, x.mark.circle does not appear in the iOS 13 version of the app. Does anyone have any ideas? I have some very unhappy users. Rebooting, reinstalling does not fix the issue.
1
0
1.8k
Dec ’20
HKHealthStore::startWatchApp not passing location in iOS 14/watchOS 7
I'm have an iPhone app that starts the watch app using HKHealthStore::startWatchApp. If I pass a locationType of outdoor, the watch app WKExtensionDelegate method gets passed unknown. This cause distance not to be tracked by my watch app. With iOS14/watchOS 6 things continue to work as expected. Is this a known bug that's already fixes in the betas?
4
0
1.4k
Sep ’20
WCSession isReachable/sendMessage broken for watchOS fitness apps
In watchOS 4 Beta 4 (and possibly later versions of watchOS 3), the WCSession isReachable comment is returning false and sendMessage fails if my watch fitness app running a workout session is not actively displayed on the watch face. This worked fine in earlier versions of watchOS 3.The documentation of the isReachable property states:WatchKit extension. The iOS device is within range, so communication can occur and the WatchKit extension is running in the foreground, or is running with a high priority in the background (for example, during a workout session or when a complication is loading its initial timeline data).What I observe is that if the watch app is running a workout session in the background, isReachable is FALSE and sendMessage fails.Can others confirm this issue or have any insights?
5
0
4.4k
Jul ’17