Ambient background image.

Bluejay: Reliable Bluetooth in Swift

Building apps that reliably talk to Bluetooth hardware can be tricky. Apple’s Core Bluetooth APIs are pretty low level, and they offer enough flexibility to really make a mess if you’re not experienced with Bluetooth. We’ve built a lot of Bluetooth apps in recent years, ranging from medical apps to solar lighting apps, and learned a lot about what does and doesn’t work well with Core Bluetooth.

Using those lessons, we built a framework for building reliable Bluetooth apps. We call it Bluejay, and its first public release is now available! 🎉

Bluejay is a simple Swift framework for building Bluetooth LE apps that are reliable. It makes properly queuing Bluetooth communications easier, helps coordinate background operations, and takes advantage of Swift idioms with a callback-based API.

We’re staying modest by numbering this week’s official public release 0.1, but Bluejay is already working in three apps we’ve built for our clients, so with luck it will be a good fit for your apps too. We’re going to keep iterating and are open to the community’s input as we move towards a 1.0 release.

We’re eager for feedback, though of course Bluejay is MIT-licensed, so code contributions are encouraged but optional. If you do build Bluetooth apps, or are even just curious, we’d love for you to take a look and let us know what you think!