Thanks to visit codestin.com
Credit goes to github.com

Skip to content

CoreBluetooth abstraction layer for iOS, macOS, TvOS and WatchOS development environments. Powered by Combine.

License

Notifications You must be signed in to change notification settings

nrbrook/BLECombineKit

 
 

Repository files navigation

BLECombineKit

badge-platforms badge-ci badge-codecov badge-carthage badge-spm

CoreBluetooth abstraction layer for iOS, macOS, TvOS and WatchOS development environments. Powered by Combine.

  • SwiftUI compatible
  • Apple's APIs dependencies only

Per Apple's docs, https://developer.apple.com/documentation/combine, Combine (and BLECombineKit) is only supported on:

iOS 13.0+ macOS 11.0+ Beta Mac Catalyst 13.0+ tvOS 13.0+ watchOS 6.0+

How to use

As simple as creating a CBCentralManager and let the reactive magic of Combine do the rest:

import CoreBluetooth
import Combine
import BLECombineKit

...

let centralManager = BLECombineKit.buildCentralManager(with: CBCentralManager())

centralManager.scanForPeripherals(withServices: nil, options: nil)
    .first()
    .flatMap { $0.peripheral.discoverServices(serviceUUIDs: nil) }
    .flatMap { $0.discoverCharacteristics(characteristicUUIDs: nil) }
    .flatMap { $0.observeValue() }
    .sink(receiveCompletion: { completion in
        print(completion)
    }, receiveValue: { data in
        print(data.value)
    })
    .store(in: &disposables)

You can reference the sample project inside the repository to see the library in action with SwiftUI.

Installation

Carthage

Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks. To integrate CombineBluetoothKit into your Xcode project using Carthage specify it in your Cartfile:

github "Henryforce/BLECombineKit"

Then, run carthage update to build framework and drag CombineBluetoothKit.framework into your Xcode project.

Swift Package Manager

In Xcode, select File --> Swift Packages --> Add Package Dependency and then add the following url:

https://github.com/Henryforce/BLECombineKit

About

CoreBluetooth abstraction layer for iOS, macOS, TvOS and WatchOS development environments. Powered by Combine.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 99.5%
  • Objective-C 0.5%