特色:
- 基於原生CoreBluetooth框架封裝的輕量級的開源庫,可以幫你更簡單地使用CoreBluetooth API。
- CoreBluetooth所有方法都是通過委托完成,代碼冗余且順序凌亂。BabyBluetooth使用block方法,可以重新按照功能和順序組織代碼,並提供許多方法減少藍牙開發過程中的代碼量。
- 鏈式方法體,代碼更簡潔、優雅。
- 通過channel切換區分委托調用,並方便切換
來源
最近幾個月都在做藍牙項目,用CoreBluetooch感覺語句寫的到處都是,不優雅。一整條鏈下來要近10幾個委托方法,並且不斷的在委托方法中調用方法再進入其他的委托,導致 代碼很零散。因此我就想讓coreBluetooth使用更簡單,語法更優雅,所以開始寫這個BabyBluetooch藍牙庫。
更新於:20150916,現在BabyBluetooth 已經有了96個star
更新於:20160129,現在BabyBluetooth 已經有了880個star
期待
- 藍牙庫寫起來很辛苦,希望大家可以多多支持,多多star。BabyBluetooth主頁
- 如果在使用過程中遇到BUG,或發現功能不夠用,希望你能Issues我,謝謝
- 期待大家也能一起為BabyBluetooth輸出代碼,這里我只是給BabyBluetooth開了個頭,他可以增加和優化的地方還是非常多。也期待和大家在Pull Requests一起學習,交流,成長。
Quick Example
//導入.h文件和系統藍牙庫的頭文件 #import "BabyBluetooth.h" -(void)viewDidLoad { [super viewDidLoad]; //初始化BabyBluetooth 藍牙庫 baby = [BabyBluetooth shareBabyBluetooth]; //設置藍牙委托 [self babyDelegate]; //設置委托后直接可以使用,無需等待CBCentralManagerStatePoweredOn狀態 baby.scanForPeripherals().begin() } //藍牙網關初始化和委托方法設置 -(void)babyDelegate{ //設置掃描到設備的委托 [baby setBlockOnDiscoverToPeripherals:^(CBCentralManager *central, CBPeripheral *peripheral, NSDictionary *advertisementData, NSNumber *RSSI) { NSLog(@"搜索到了設備:%@",peripheral.name); }]; //設置設備連接成功的委托 [baby setBlockOnConnected:^(CBCentralManager *central, CBPeripheral *peripheral) { NSLog(@"設備:%@--連接成功",peripheral.name); }]; //設置發現設備的Services的委托 [baby setBlockOnDiscoverServices:^(CBPeripheral *peripheral, NSError *error) { for (CBService *service in peripheral.services) { NSLog(@"搜索到服務:%@",service.UUID.UUIDString); } }]; //設置發現設service的Characteristics的委托 [baby setBlockOnDiscoverCharacteristics:^(CBPeripheral *peripheral, CBService *service, NSError *error) { NSLog(@"===service name:%@",service.UUID); for (CBCharacteristic *c in service.characteristics) { NSLog(@"charateristic name is :%@",c.UUID); } }]; //設置讀取characteristics的委托 [baby setBlockOnReadValueForCharacteristic:^(CBPeripheral *peripheral, CBCharacteristic *characteristics, NSError *error) { NSLog(@"characteristic name:%@ value is:%@",characteristics.UUID,characteristics.value); }]; //設置發現characteristics的descriptors的委托 [baby setBlockOnDiscoverDescriptorsForCharacteristic:^(CBPeripheral *peripheral, CBCharacteristic *characteristic, NSError *error) { NSLog(