HealthKit이 관리하는 모든 데이터에 대한 액세스 포인트.
HKHealthStore 객체를 사용하여 HealthKit 데이터를 공유하거나 읽기 위한 권한을 요청합니다. 권한을 획득한 후에는 HealthKit 저장소를 사용하여 새로운 샘플을 저장하거나 앱이 저장한 샘플을 관리할 수 있습니다. 또한, HealthKit 저장소를 사용하여 쿼리를 시작하고 중지하고 관리할 수 있습니다.
HealthKit에 접근하기
func authorizationStatus(for: HKObjectType) -> HKAuthorizationStatus
: 지정된 데이터 유형을 공유하기 위한 앱의 인증 상태를 반환합니다.
enum HKAuthorizationStatus
: 특정 데이터 타입의 인증 상태를 상수로 나타냅니다.
case notDetermined: 사용자는 아직 지정된 데이터 유형에 대한 액세스를 승인하지 않았을 때
case sharingDenied: 사용자가 지정된 데이터 유형에 대한 액세스를 승인을 거부했을 때
case sharingAuthorized: 사용자가 지정된 데이터 유형에 대한 액세스를 승인 했을 때
func getRequestStatusForAuthorization(toShare: Set<HKSampleType>, read: Set<HKObjectType>, completion: (HKAuthorizationRequestStatus, (any Error)?) -> Void)
: 앱이 제공된 유형에 대한 권한을 요청하는 경우 시스템이 사용자에게 권한 시트를 제공하는지 여부를 나타냅니다.
enum HKAuthorizationRequestStatus
: 앱이 사용자에게 승인을 요청해야 하는지 여부를 나타내는 값.
case unknow: 에러가 발생했기 때문에 권한 요청 상태가 결정되지 않았을 수 있을 때
case shouldRequest: 모든 데이터 타입에 대하여 권한을 수락하지 않았을 때
case unnecessary: 모든 데이터 타입에 대하여 권한을 수락하였을 때
class func isHealthDataAvailable() -> Bool
: 현재 기기에서 HealthKit이 사용 가능한지를 나타내는 Bool값을 반환
func supportsHealthRecords( ) -> Bool
: 현재 기기에서 임상 기록을 지원하는지를 나타내는 Bool값을 반환
func requestAuthorization(toShare: Set<HKSampleType>?, read: Set<HKObjectType>?, completion: (Bool, (any Error)?) -> Void)
: 특정 데이터 타입을 읽거나 쓸 수 있게끔 권한을 요청
func requestAuthorization(toShare: Set<HKSampleType>, read: Set<HKObjectType>)
: 특정 데이터 타입을 읽거나 쓸 수 있게끔 권한을 비동기적으로 요청
func requestPerObjectReadAuthorization(for: HKObjectType, predicate: NSPredicate?, completion: (Bool, (any Error)?) -> Void)
: 객체별 인증(예: 비전 처방)이 필요한 데이터 유형을 읽을 수 있는 권한을 비동기적으로 요청합니다.
func handleAuthorizationForExtension(completion: (Bool, (any Error)?) -> Void)
: extension로 지정된 데이터 유형을 저장하고 읽을 수 있는 권한을 요청합니다.
var authorizationViewControllerPresenter: UIViewController?
: HealthKit 권한 시트를 나타내는 view controller
HealthKit 데이터 쿼리하기
func execute(HKQuery)
: 제공된 쿼리를 시작하기
func stop(HKQuery)
: 오래 지속되는 쿼리를 멈후기
특성 데이터 읽기
func biologicalSex() -> HKBiologicalSexObject
: HealthKit store로부터 성별 데이터 가져오기
func bloodType() -> HKBloodTypeObject
: HealthKit store로부터 혈액형 데이터 가져오기
func dateOfBirth() -> Date
: HealthKit store로부터 생년월일 데이터 가져오기
func dateOfBirthComponents() -> DateComponents
: HealthKit store로부터 생년월일 구성 데이터 가져오기
func fitzpatrickSkinType() -> HKFitzpatrickSkinTypeObject
: HealthKit store로부터 피부색 데이터 가져오기
func wheelchairUse() -> HKWheelchairUseObject
: HealthKit store로부터 휠체어 사용 유무 데이터 가져오기
HealthKit 객체 다루기
func delete(HKObject, withCompletion: (Bool, (any Error)?) -> Void)
: HealthKit으로부터 특정 객체 삭제하기
func delete([HKObject], withCompletion: (Bool, (any Error)?) -> Void)
: HealthKit으로부터 특정 객체 삭제하기
func deleteObjects(of: HKObjectType, predicate: NSPredicate, withCompletion: (Bool, Int, (any Error)?) -> Void)
: 주어진 타입과 predicate와 일치하는 애플리케이션으로부터 저장된 객체 삭제하기
func earliestPermittedSampleDate() -> Date
: 가장 마지막으로 허용된 샘플 삭제하기
func save(HKObject, withCompletion: (Bool, (any Error)?) -> Void)
: HealthKit store에서 주어진 저장된 객체 삭제하기
func save([HKObject], withCompletion: (Bool, (any Error)?) -> Void)
: HealthKit store에 배열로된 객체들 저장하기
선호하는 유닛에 접근하기
func preferredUnits(for: Set<HKQuantityType>, completion: ([HKQuantityType : HKUnit], (any Error)?) -> Void)
주어진 HQuantityType에 대해 사용자가 선호하는 단위를 반환합니다.
static let HKUserPreferencesDidChange: NSNotification.Name
사용자가 선호하는 유닛을 변경할 때마다 관찰자에게 알립니다.
백그라운드 전달 관리하기
func enableBackgroundDelivery(for: HKObjectType, frequency: HKUpdateFrequency, withCompletion: (Bool, (any Error)?) -> Void)
: 백그라운드에서 앱이 실행되는 동안 데이터를 업데이트할 수 있도록 해줍니다.
enum HKUpdateFrequency
: HealthKit 데이터의 변경에 대응하여 시스템이 앱을 실행하는 빈도를 결정하는 상수.
func disableBackgroundDelivery(for: HKObjectType, withCompletion: (Bool, (any Error)?) -> Void)
: 특정 데이터 타입에 대하여 백그라운드에서 데이터를 업데이트를 못하기 막아줍니다.
func disableAllBackgroundDelivery(completion: (Bool, (any Error)?) -> Void)
: 모든 백그라운드 업데이트 알림을 비활성화 합니다.
운동 관리하기
func splitTotalEnergy(HKQuantity, start: Date, end: Date, resultsHandler: (HKQuantity?, HKQuantity?, (any Error)?) -> Void)
: 주어진 기간 동안 소모된 총 에너지를 기준으로 연소된 활성 및 휴식 에너지를 계산합니다.
func recoverActiveWorkoutSession(completion: (HKWorkoutSession?, (any Error)?) -> Void)
: 활성화된 운동 세션을 복구합니다.
운동 세션 관리하기
var workoutSessionMirroringStartHandler: ((HKWorkoutSession) -> Void)?
: 미러링된 운동 세션을 시작할 때 시스템이 호출하는 블록.
func startWatchApp(with: HKWorkoutConfiguration, completion: (Bool, (any Error)?) -> Void)
: 새로운 운동 세션을 만들기 위해 watchOS 앱을 실행하거나 깨웁니다.
func pause(HKWorkoutSession)
: workout session을 중지합니다
func resumeWorkoutSession(HKWorkoutSession)
: workout session을 재개합니다
견적 관리
func recalibrateEstimates(sampleType: HKSampleType, date: Date, completion: (Bool, (any Error)?) -> Void)
: 지정된 샘플 유형을 계산하는 데 사용되는 예측 알고리즘을 재계정합니다.
이동 모드에 접근하기
func activityMoveMode() -> HKActivityMoveModeObject
: 현재 사용자의 활동 이동 모드를 반환합니다
static let HKUserPreferencesDidChange: NSNotification.Name
: 사용자가 선호하는 유닛을 변경할 때마다 관찰자에게 알립니다
'SwiftUI' 카테고리의 다른 글
HKLiveWorkoutBuilder (0) | 2024.03.11 |
---|---|
HKWorkoutSession (0) | 2024.03.11 |
Alamofire (0) | 2024.03.11 |
Authorizing access to health data (0) | 2024.03.11 |
HealthKit 을 사용하기 전에 세팅 (0) | 2024.03.11 |