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
- 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๋ฅผ ์ ํํฉ๋๋ค.
- ๋ง์ดํฌ ๊ถํ ์์ฒญ ๋ฉ์์ง๋ฅผ ์์ฑํฉ๋๋ค.
Import the SleepTrack SDK
import AsleepSDK
Sleep Tracking with SleepTrack SDK
Initialize the SleepTrack 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์ ์ ์ฅํด์ผํฉ๋๋ค.
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()- ์๋ฉด ๋ฆฌํฌํธ์ 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
Updated 15 days ago
Whatโs Next
