Get Started
수면 측정 시 안내 사항을 따라주시기 바랍니다.Asleep의 수면 측정/분석 기능을 정확하게 테스트하려면, 테스트 환경 가이드를 반드시 따라주시기 바랍니다. 이 가이드를 준수하지 않은 환경에서 얻은 수면 분석 결과는 실제 수면 패턴과 정확하게 일치하지 않을 수 있음을 유의해주세요.
- 수면 측정은 최소 20분 이상의 오디오가 업로드 되어야 분석이 시작되며, 그 이후로는 플랜(계약 조건)에 따라 5분 또는 20분 간격으로 분석합니다.
🔗 Test Environment Guideline 확인하기
1. Requirements
1.1 Minimum requirements on Asleep SDK for iOS
- Xcode 14.1 혹은 더 높은 버전
- iOS 14.0 혹은 더 높은 버전
- Swift 5.0 혹은 더 높은 버전
1.2 API Key
에이슬립 SDK를 사용하기 위해서는 API key가 필요합니다.
API key를 발급하는 방법에 대해서는 이 링크 Generate API key를 참고하세요.
2. Getting Ready
에이슬립 SDK for iOS는 Xcode에 내장된 Swift Package Manager을 통해 배포됩니다.
2.1 Install Asleep SDK
-
Xcode에서 File > Add Packages를 선택합니다.

-
다이얼로그 창에 repository url을 입력합니다 https://github.com/asleep-ai/asleep-sdk-ios.

-
버전에서, Up to Next Major Version 및 기본 옵션을 선택합니다.

-
Add Package를 클릭합니다.

-
Add Package를 한번 더 클릭합니다.

-
Xcode에서, Targets 애플리케이션을 선택한 후
Signing & Capabilities를 클릭합니다.

-
+ Capability를 클릭하고Background Modes를 더블클릭합니다.

-
Audio, AirPlay, and Picture in Picture를 선택합니다.

-
Xcode에서, 본인의 Targets 애플리케이션
Info를 클릭합니다.

-
+를 클릭하고Privacy - Microphone Usage Description를 선택합니다.

-
마이크 권한 요청 메시지를 작성합니다.

2.2 Import the Asleep SDK
import AsleepSDK3. Sleep Tracking with Asleep SDK
3.1 Step 1: Initialize the Asleep SDK
-
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) -
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 에 저장해야합니다.
3.2 Step 2: 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을 이용해야합니다.
3.3 Step 3: Start Tracking
var manager: Asleep.SleepTrackingManager?
manager?.startTracking()
startTracking()을 실행하려면 SDK는 마이크 권한이 필요합니다.
3.4 Step 4: Stop Tracking
var manager: Asleep.SleepTrackingManager?
manager?.stopTracking()- 수면 보고서의 session ID를 불러옵니다
extension YourClass: AsleepSleepTrackingManagerDelegate { func didClose(sessionId: String) { self.sessionId = sessionId } }
3.5 Step 5: Create Reports
var config: Asleep.Config?
var reports: Asleep.Reports?
if let config {
reports = Asleep.createReports(config: config)
}
userDidJoin에서 발급 받은Asleep.Config을 이용해야합니다.
3.6 Step 6: 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)
}
}
}Updated over 1 year ago
