Swiftpack.co -  Henryforce/BLECombineKit as Swift Package
Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
Henryforce/BLECombineKit
CoreBluetooth abstraction layer for iOS, macOS, TvOS and WatchOS development environments. Powered by Combine.
.package(url: "https://github.com/Henryforce/BLECombineKit.git", from: "v0.1.3")

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

GitHub

link
Stars: 9
Last commit: 1 week ago

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jack’d and SCRUFF. We are two of the world’s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.

Submit a free job ad (while I'm testing this). The analytics numbers for this website are here.

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics