Apple’s iBeacon is broken.
But hope is on the horizon: we’re only a few beta releases away from the launch of iOS 7.1. And with it, maybe we’ll all be able to more easily build experiences around Bluetooth LE.
The dot.1 release is usually when Apple gets beyond immediate bug fixes and irons out the major kinks in its new operating system, launches new features (iOS in the car being a potentially major one) and tweaks the user experience.
But will Apple also fix problems with its iBeacon framework? Will it also launch its iBeacon specification? We’ll soon find out.
Bluetooth LE and iBeacon: The Muddled Mess of Language
As a refresher, iOS 7 saw the launch of iBeacon: the protocols and software that allow phones and tablets to scan for and receive Bluetooth Low Energy (LE) signals (and to act as beacons themselves).
Apple makes things a little vague and confusing and has managed to own and trademark the term iBeacon without being absolutely clear on what it actually refers to.
A beacon can be a device that transmits any kind of signal (audio, say) but which has generally become a blanket term for devices that transmit a Bluetooth LE signal.
iBeacon (at least according to its trademark filing) refers to the protocols that Apple has published to allow these beacons to be recognized by Apple devices, the general set of software and services that support it, and the devices themselves.
So at least when it comes to Apple, there are several components to the iBeacon “stack”:
- The specifications for the beacon itself, something which Apple has not yet published. These specifications may include things like how device makers need to transmit specific tags and information in their broadcast; how private mode should be handled; and whether the devices can use some of their ‘sub-channels’ to communicate other data.
- The hardware capabilities of iPhones and iPads and the software that drives the chips to make it all happen.
- The software capabilities and APIs that developers can use to create apps that respond to beacons.
Don’t Blame Everything on Apple
If you’ve been working with beacons you’ll have encountered frustrations. What’s important is to understand where the problems are coming from – not always an easy task.
It’s also one of the reasons why we’re finding more and more companies waking up to the fact that iBeacon requires reliable hardware, software, UX and engineering talent to create flawless user experiences.
So errors or glitches in your iBeacon app aren’t always the fault of Apple:
- Not all beacons are created equal, for example. Different beacons use different chipsets. Some of those chipsets and Bluetooth LE modules are, frankly, better than others.
- The beacons themselves are engineered by developers who also make decisions about things like signal strength and battery life. So, one beacon may give you a less reliable signal but more battery life – a trade-off decided in the engineering process for the actual device.
- There is ‘firmware’ in each beacon – and while the differences might seem negligible for simple BLE transmission, it gets more complicated when you need to figure out how to update a device ‘over the air’.
- How the beacons are placed in a physical environment can have a big impact. Being a low energy radio transmission, BLE can be impacted by metal shelves or other physical characteristics of the environment.
- Competing signals can impact outcomes: a coffee shop with 100 people on their laptops and cell phones will produce a different result than the same store in the early morning when there’s one or two people reading the paper.
What’s On Your iBeacon Fix List?
Once you’ve considered all the above, you’ll still run into frustrations – and they can be directly attributed to Apple devices and iOS 7. Here’s a quick “fix list” of our own:
- Address issue where Bluetooth monitoring turns off: Every now and then you get very brief millisecond-long moments when beacon scanning gets turned off. It makes your app believe you’ve left the region of beacons entirely, even thought it’s a very brief ‘blip’. What’s actually happening is that Bluetooth is turned OFF for a very brief moment and then turned back on again.
- Fix Delay in Local Notification (or make it predictable): It can take 20 seconds or 2 minutes for you to receive a ‘push’ message when you enter a region. This either needs to be fixed or made more predictable.
- Fix Region Toggling: Your app won’t be able to decide whether it’s Near or Far from a beacon. Or will toggle between two different beacons when it absolutely shouldn’t (one beacon is at the other end of the room, the other beacon is right next to you). Apple needs to fix the algorithm for determining beacon proximity to help us all avoid this rapid toggling. (Yes, you can work around it, but it’s still a ‘hack’)
- Create Better Background State Predictability: We understand Apple wants to conserve battery on a user’s phone. But this creates a massive variability in how long it takes for an app in background mode to ‘detect’ a beacon. A greater degree of user choice or predictability would go a very long way.
- Allow devices to permanently broadcast: If I have an iPad cash register and I want it to BE a beacon, its broadcasting of a beacon should NEVER be interrupted – especially if the iPad is plugged in.
But that’s just our top-of-mind fix list. What’s on yours? What do you think Apple should make a priority in iOS 7.1 related to iBeacon? Drop your thoughts in the comments below.