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.
Post
Replies
Boosts
Views
Activity
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.
The iOS 16 Fitness app has a nice horizontal scrolling view with a pinned first column. Is it possible to build that using SwiftUI's new Grid?
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?
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?
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.
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?