New Ways to Work with Workouts

WWDC 2018

Posted by Den on September 25, 2018 · 8 mins read
New Ways to Work with Workouts

New Ways to Work with Workouts

WWDC 2018

New Ways to Work with Workouts

WWDC 2018

Privacy and Authorization

  • Proportional Collection
  • HealthKit authorization can change
  • Ask for ⚠️
    - Only what you need
    - Only when you need it
    - Every time you need it

Workout App Lifecycle

HKWorkoutSession ( watchOS )

  • Prepares sensors for data collection
  • Allows background running
  • Controls workout state
  • Generates events
  • Collect data generated by the device ( new )
  • Save a workout ( new )

HKWorkoutBuilder ( new )

  • Creates and saves an HKWorkout
  • Add samples, events, and metadata

HKLiveWorkoutBuilder ( new )

watchOS only

  • Subclass of HKWorkoutBuilder
  • Automatic sample and event collection

Setup and Start ( new )

  • HKWorkoutBuilder
  • HKLiveWorkoutBuilder ( watchOS )

Collect Data ( new )

  • Samples
  • Events
  • Metadata
  • HKLiveWorkoutDataSource ( watchOS )
    - Automatically collects data specific to the workout
    - Data types to collect can be customized

User Interface

  • Update displayed statistics
  • Track elapsed time

Control State

HKWorkoutSession (watchOS)

End a Workout

Save a Workout

Demo

Step 1

  • Set capabilities
iOS
watchOS

Step 2

  • Set Privacy — Health Share Usage Description
  • Set Privacy — Health Update Usage Description

Step 3

  • Authorizations

Step 4

  • Sessions

Workout Recovery ( wathcOS ) ( new )

  • App automatically relaunched if it crashes during a workout 👍
  • Session and builder restored in their previous state
  • Data source must be setup again

New Quantity Series API


Use cases

HKQuantitySeriesSampleQuery

HKQuantitySeriesSampleBuilder