Hey, 'sup
There's often a misconception about what information an iBeacon can broadcast. Basically, an iBeacon broadcasts its presence and nothing more. It says, "Hey, here I am", and nothing else. You can't broadcast data using iBeacon technology, and similarly, iBeacons aren't snooping into where you're going or where you've been. Any data that your apps require outside of the iBeacon identification must be retrieved from another source such as a bundled database or cloud service, as shown in the following diagram:
iBeacon app relationship
The best way to think about iBeacons is as a trigger for your app functionality. The trigger is based on the presence of a beacon or the relative distance of an iBeacon from your device.
iBeacons broadcast three values to help you identify which beacon your app is seeing. I call this the UUID/major/minor broadcasting triplet, discussed as follows:
- UUID: The Universally Unique Identifier (UUID) is application-specific and belongs only to your app and nobody else. You generate a UUID and tell your app to look out for this value and act accordingly when you come across an iBeacon broadcasting this value. It's specific to your app deployment and use case.
- Major: The major value further specifies a specific iBeacon and use case. For example, this could be the city that the beacon resides in or the actual store itself.
- Minor: The minor value allows further subdivision of the use case. For example, it could be the department within a store or a particular area of a theme park.
Tip
By generating a UUID yourself, you ensure that nobody else can be using your UUID by accident. However, there isn't any governing body to register the use of a UUID with specific apps, so just be aware that people can spoof this value.
The following table shows how this UUID/major/minor triplet might be used by Disney to develop a queue-jumping app at some of their Walt Disney parks and resorts:
A single multinational Disney resort's queue-jumping app could be used to determine your location and book your slot on the ride, provided you were located within the iBeacon proximity. As you can see from the preceding table, no information is passed to the device about the park or the ride itself; this information needs to be ascertained by the app from a different source such as a local database or cloud API before triggering the functionality based on that ride.