Bluetooth is one of those technologies that seems like a very simple thing from the perspective of a user—you set it up once and forget about it. But in reality, there’s a lot of complexity hidden behind the scenes. As we all know, wherever there’s complexity, there’s more that can potentially go wrong.
In my latest project, I’m building iOS and Android apps that have to handle incoming Bluetooth data even when the apps are backgrounded. To achieve this on Android, I decided to implement a BroadcastReceiver.
Writing an app that communicates with a Bluetooth device can be very challenging. These days, apps tend to do a lot of work behind the scenes, such as syncing data, updating firmware, etc., without the user knowing about it. When something goes wrong with a process that is not directly visible, it can be quite […]
With the onset of the Internet of Things, Bluetooth Low Energy (BLE) has become a popular choice for connecting interesting new devices to the smart phones we all carry in our pockets. In dealing with BLE on iOS devices, I’ve had great success with iBeacons and single devices. However, when dealing with multiple BLE devices […]
Apple’s Core Bluetooth Progamming Guide does a good job of explaining how to use Core Bluetooth in an iOS app. And there are countless blog post tutorials that walk through scanning for peripherals, connecting, discovering services and characteristics, and reading/writing values. These resources were great for getting started, but eventually I ran into some questions […]
Imagine having a lamp in your house that you can control from your phone. You don’t need to pass Gigabytes of data back and forth, you only need a hand full of bytes to tell the lamp to turn on, or off, or report its current status. You also shouldn’t need to be in constant, […]