iOS SDK 시작하기

Requirements

🚧

Minimum requirements for SleepTrack SDK on iOS

  • Xcode 14.1 혹은 더 높은 버전
  • iOS 15.0 혹은 더 높은 버전
  • Swift 5.0 혹은 더 높은 버전

API Key

SleepTrack SDK를 사용하기 위해서는 API key가 필요합니다.

API key를 발급하는 방법에 대해서는 이 링크 API key 생성하기를 참고하세요.


Getting Ready

SleepTrack SDK for iOS는 Xcode에 내장된 Swift Package Manager을 통해 배포됩니다.

Install SleepTrack SDK

  1. Xcode에서 File > Add Packages를 선택합니다.
  1. 다이얼로그 창에 repository url을 입력합니다 https://github.com/asleep-ai/asleep-sdk-ios.
  1. 버전에서, Up to Next Major Version 및 기본 옵션을 선택합니다.
  1. Add Package 를 클릭합니다.
  1. Add Package 를 한번 더 클릭합니다.
  1. Xcode에서, Targets 애플리케이션을 선택한 후 Signing & Capabilities 를 클릭합니다.
  1. + Capability 를 클릭하고 Background Modes를 더블클릭합니다.
  1. Audio, AirPlay, and Picture in Picture를 선택합니다.
  1. Xcode에서, 본인의 Targets 애플리케이션 Info 를 클릭합니다.
  1. +를 클릭하고 Privacy - Microphone Usage Description를 선택합니다.
  1. 마이크 권한 요청 메시지를 작성합니다.

Import the SleepTrack SDK

import AsleepSDK

Sleep Tracking with SleepTrack SDK

Initialize the SleepTrack SDK

  1. SDK를 초기화 합니다

    • userId가 nil이면 새로운 userId가 생성됩니다.
    • baseUrl에는 프록시 서버를 입력하세요. nil이면 default base url이 사용됩니다.
    • callbackUrl은 분석 결과를 직접 받는 서버를 입력하세요. nil이면 콜백이 없습니다.
    • service는 개발할 앱의 닉네임이 있다면 입력하세요.
    let apiKey: String = "YOUR_API_KEY"
    let userId: String?
    let baseUrl: URL?
    let callbackUrl: URL?
    let service: String?
    let delegate: AsleepConfigDelegate = self
    
    Asleep.initAsleepConfig(apiKey: apiKey,
                            userId: userId,
                            baseUrl: baseUrl,
                            callbackUrl: callbackUrl,
                            service: service,
                            delegate: self)
  2. config과 user ID를 받아옵니다

    extension YourClass: AsleepConfigDelegate {
        func userDidJoin(userId: String, config: Asleep.Config) {
            self.userId = userId
            self.config = config 
        }
    
        func didFailUserJoin(error: Asleep.AsleepError) {
            print(error)
        }
    
        func userDidDelete(userId: String) {
            print("\(userId) is deleted")
        }
    }
❗️

join을 하기 위해서 userId를 permanent storage에 저장해야합니다.

Create SleepTrackingManager

var config: Asleep.Config?
let delegate: AsleepSleepTrackingManagerDelegate = self
var manager: Asleep.SleepTrackingManager?

if let config {
    manager = Asleep.createSleepTrackingManager(config: config,
                                                delegate: self)
}
🚧

userDidJoin에서 발급 받은 Asleep.Config을 이용해야합니다.

Start Tracking

var manager: Asleep.SleepTrackingManager?
manager?.startTracking()
❗️

startTracking()을 실행하려면 SDK는 마이크 권한이 필요합니다.

Stop Tracking

var manager: Asleep.SleepTrackingManager?
manager?.stopTracking()
  1. 수면 리포트의 session ID를 불러옵니다
    extension YourClass: AsleepSleepTrackingManagerDelegate {
        func didClose(sessionId: String) {
          	self.sessionId = sessionId
        }
    }

Create Reports

var config: Asleep.Config?
var reports: Asleep.Reports?

if let config {
    reports = Asleep.createReports(config: config)
}
🚧

userDidJoin에서 발급 받은 Asleep.Config을 이용해야합니다.

Get Report

var reports: Asleep.Reports?
var sessionId: String?

if let reports, let sessionId {
    // Closure
    reports.report(sessionId: sessionId) {
        if let error = $1 {
            print(error)
            return
        }
        
        if let report = $0 {
        }
    }

    // Async
    Task {
        do {
            let report: Asleep.Model.Report = try await reports.report(sessionId: sessionId)	
        } catch {
            print(error)
        }
    }
}

📘

Sample App을 직접 실행해보면서 SDK를 빠르게 익히고, 실제 프로젝트에 적용해보세요.

https://github.com/asleep-ai/asleep-sdk-ios-sampleapp-public


Did this page help you?