iOS
이 글에서는
SpaceSDK-iOS는 FREEGROW Inc.에서 개발한 UWB 기반 iOS SDK입니다. iOS 디바이스와 GrowSpace UWB 장비 간 BLE + UWB 통신을 통해 거리 측정 및 실내 위치 추정을 간편하게 구현할 수 있습니다.
주요 기능
BLE + UWB 거리 측정 (Ranging)
RTLS 기반 2D/3D 위치 추정 (x, y, z)
실시간 디바이스 연결/해제 콜백 제공
한 줄 코드로 시작할 수 있는 간편한 API
설치 방법 (SPM)
Swift Package Manager를 통해 아래 링크를 추가해주세요:
https://github.com/freegrowenterprise/SpaceSDK-iOS
Xcode → File → Add Packages
위 URL을 입력하고 최신 버전 선택
권한 설정 (Info.plist)
<key>NSBluetoothAlwaysUsageDescription</key>
<string>BLE 장치 검색 및 연결을 위해 필요합니다.</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>BLE 및 UWB 위치 추정을 위해 필요합니다.</string>
<key>NSNearbyInteractionUsageDescription</key>
<string>UWB 거리 측정을 위해 필요합니다.</string>
<key>NSMotionUsageDescription</key>
<string>정확한 위치 추정을 위해 모션 데이터가 필요합니다.</string>
SDK 초기화
let spaceSDK = GrowSpaceSDK()
거리 측정 시작
spaceSDK.startUWBRanging(
maximumConnectionCount: 3,
onUpdate: { result in
print("장치: \(result.deviceName), 거리: \(result.distance)m")
},
onDisconnect: { result in
print("연결 해제: \(result.deviceName)")
}
)
거리 측정 중지
spaceSDK.stopUWBRanging {
print("✅ 거리 측정 중지 완료")
}
RTLS 위치 추정
let anchors = [
"FGU-0001": (x: 0.0, y: 0.0, z: 0.0),
"FGU-0002": (x: 5.0, y: 0.0, z: 0.0),
"FGU-0003": (x: 0.0, y: 5.0, z: 0.0)
]
spaceSDK.startUwbRTLS(
anchorPositions: anchors,
onResult: { location in
print("현재 위치: x=\(location.x), y=\(location.y), z=\(location.z)")
},
onFail: { reason in
print("위치 추정 실패: \(reason)")
}
)
테스트 앱
SpaceSDK-iOS의 모든 기능은 아래 공식 테스트 앱에서 직접 체험하실 수 있습니다:
Last updated