Skip to content

dsjove/BLEByJove

Repository files navigation

BLEByJove

@Published and async interfaces for Bluetooth Low Energy.

Design Goals

In the world of SwiftUI we have async tasks and @Published properties. The high level goal is to present BLE device characteristics as these high level constructs.

Bluetooth Low Energy is a great technology for wireless connectivity and transmission of named data. Due to varying hardware platforms, async nature, and many transmission failure points, there are a lot of "do the right thing" that needs to be implemented. These complications are handled by this library.

Usage

See attached playground for example.

TODOs

  • That Actor Refactor: Apple's BLE implementation is very Objective-C UIKit centric. I do not know what the coding patterns looks like yet for both adoption and public interface expectations.
  • BTProperty Capabilities: the can read/write/notify needs to be exposed to ControlledProperty
  • Auto Reconnect: That would would be nice to have
  • Circuit Cube Naming: I cannot get the reading and writing of device name to work
  • Logger: have BT events be logged to a protocol
  • LEGO Powered Up: implement
  • Use swiftplayground as example

About

Facade over Apple's ObjC-ish BLE implementation to provide Combine and async interfaces.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages