iBeacon is part of the CoreLocation framework in iOS. Using an iBeacon is akin to geofencing.
The big difference, however, is that geofencing requires GPS co-ordinates and this fixes your location.
iBeacons work by fixing your location based on your proximity to it. The location of the iBeacon is everything. The user is just a device that happens to be within an estimated proximity.
It’s possible to detect the users proximity to moving objects – achieved by simply placing an iBeacon on these objects.
Each beacon has three identifiers:
- proximityUUID: a unique UUID to distinguish your beacons from those others are using.
- Major: used to group related sets of beacons
- Minor: used to identify a beacon within a group
The major and minor identifiers allow groups of beacons to be placed in a location. The app’ then needs to be able to distinguish between this group of beacons as well as knowing which of the set of beacons is actually in range (minor identifier).
We recommend using certain formats and services to make the app’ flexible enough – especially in a retail environment. For example, new stores may be opened or new product lines introduced (requiring new iBeacons).
By using JSON the app’ can download [its] settings at start. This allows the addition of new iBeacon identifiers to be incorporated without having to recompile and update the app.
The updatable files can be stored on any of the “back end” hosts and pulled down in milliseconds. The app’ will still function when not on-line and will sync next time it has a connection.