SkaleKit is a Bluetooth Low Energy SDK for connecting to Skale scales on iOS.
- Real-time weight updates
- Device picker UI with BLE scanning
- Tare function
- Battery status monitoring
- Dark Mode support
- Localization (English, 繁體中文, 简体中文, 日本語)
- iOS 12.0+
- Xcode 14.0+
- Swift 5.0+
pod 'SkaleKit', '~> 1.0'dependencies: [
.package(url: "https://github.com/atomaxinc/SkaleKit.git", from: "1.0.0")
]- Download
SkaleKit.xcframeworkfrom the Releases page - Drag it into your Xcode project
- Ensure it's added to "Frameworks, Libraries, and Embedded Content" with "Embed & Sign"
Add Bluetooth permissions to your Info.plist:
<key>NSBluetoothAlwaysUsageDescription</key>
<string>This app uses Bluetooth to connect to your Skale scale.</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>This app uses Bluetooth to connect to your Skale scale.</string>import SkaleKit
class ViewController: UIViewController, SKSkaleDelegate {
let skale = SKSkale()
override func viewDidLoad() {
super.viewDidLoad()
skale.delegate = self
}
// Show device picker
func connectToScale() {
skale.showDevicePicker(onViewContoller: self) { error in
if let error = error {
print("Error: \(error)")
}
}
}
// Disconnect
func disconnect() {
skale.disconnect()
}
// MARK: - SKSkaleDelegate
func skaleDidConnected(_ skale: SKSkale!) {
print("Connected")
}
func skaleDidDisconnected(_ skale: SKSkale!) {
print("Disconnected")
}
func skaleWeightDidUpdate(_ weight: Float32) {
print("Weight: \(weight)g")
}
func skale(_ skale: SKSkale!, didErrorOccur error: Error!) {
print("Error: \(error)")
}
}#import <SkaleKit/SkaleKit.h>
@interface ViewController () <SKSkaleDelegate>
@property (nonatomic, strong) SKSkale *skale;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.skale = [[SKSkale alloc] init];
self.skale.delegate = self;
}
- (void)connectToScale {
[self.skale showDevicePickerOnViewContoller:self WithCompletion:^(NSError *error) {
if (error) {
NSLog(@"Error: %@", error);
}
}];
}
#pragma mark - SKSkaleDelegate
- (void)skaleDidConnected:(SKSkale *)skale {
NSLog(@"Connected");
}
- (void)skaleDidDisconnected:(SKSkale *)skale {
NSLog(@"Disconnected");
}
- (void)skaleWeightDidUpdate:(Float32)weight {
NSLog(@"Weight: %.1fg", weight);
}
@endSee the Example folder for a complete Swift demo app.
To run the example:
- Open
Example/SkaleKitExample.xcodeproj - Build and run on a real device (BLE requires physical device)
- Migrated to XCFramework (supports device + simulator)
- Updated minimum iOS version to 12.0
- New Swift example app with modern UI
- Added Dark Mode support
- Added localization (EN, zh-Hant, zh-Hans, JA)
SkaleKit is available under the MIT license. See the LICENSE file for more info.
Atomax Inc. - [email protected]
Any feedback is welcomed! Please send feedback to [email protected]