iOS
SpaceSDK-iOS is a UWB-based iOS SDK developed by FREEGROW Inc. It enables easy ranging and indoor positioning using BLE + UWB communication between iOS devices and GrowSpace UWB hardware.
Key Features
BLE + UWB ranging
RTLS-based 2D/3D positioning (x, y, z)
Real-time connect/disconnect callback for devices
Simple API that works with a single line of code
Installation (SPM)
To install via Swift Package Manager, add the following link:
https://github.com/freegrowenterprise/SpaceSDK-iOS
Xcode → File → Add Packages
Paste the URL and choose the latest version
Permission Settings (Info.plist)
<key>NSBluetoothAlwaysUsageDescription</key>
<string>Required to scan and connect to BLE devices.</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Required for location tracking using BLE and UWB.</string>
<key>NSNearbyInteractionUsageDescription</key>
<string>Required for distance measurement using UWB.</string>
<key>NSMotionUsageDescription</key>
<string>Motion data is required for accurate positioning.</string>
Initialize SDK
let spaceSDK = GrowSpaceSDK()
Start Ranging
spaceSDK.startUWBRanging(
maximumConnectionCount: 3,
onUpdate: { result in
print("Device: \(result.deviceName), Distance: \(result.distance)m")
},
onDisconnect: { result in
print("Disconnected from: \(result.deviceName)")
}
)
Stop Ranging
spaceSDK.stopUWBRanging {
print("✅ Ranging stopped")
}
RTLS Positioning
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("Current position: x=\(location.x), y=\(location.y), z=\(location.z)")
},
onFail: { reason in
print("Failed to estimate position: \(reason)")
}
)
Test App
You can try all features of SpaceSDK-iOS using the official test app below.
Last updated