Learning iBeacon which was written by Craig Gilchrist is a solid technical manual that provides Objective-C / iOS source code that demonstrates various methods to interface with a iBeacon. Now for folks that do not know what an iBeacon is, they are a small electronic that transmits a signal for an application that is attempting to locate the proximity of a person to where they currently are.
Shown below, the iBeacon is no bigger then a quarter and can be placed anywhere within your store or location to send out a beacon to inform the user which area they are in. Now the signal is just that, a signal your application does everything else. So if I walk into a store and step by the shoe department, using the app I can get possible current sales information.
iBeacons work with Bluetooth and the demos actually can work on your iMac if you do not have a Apple developers account.
Going back to the Gilchrist manual, it is broken up into 9 chapters at 180 pages. There are excellent examples allowing you to develop the applet and test it either on a iMac or on your iPhone. Each chapter is contains a simple theme and the following describes it fully by the author:
Chapter 1, Welcome to iBeacon, introduces you to the technology and the incredible opportunities it offers us as developers. We’ll cover the technological advancements that have made iBeacon possible and we’ll discuss some of the options which you have to get your hands on for some real beacons. Finally, we’ll create the age-old Hello World application and start detecting beacons easily.
Chapter 2, Detecting Beacons – Showing an Advert, introduces you to beacon detection in more detail. We’ll show you how to differentiate between beacons using the values that they broadcast and we’ll introduce the concept of regions and some of the CoreLocation classes used to represent regions and location. We will also cover the user permissions needed to monitor beacons before building a tutorial using our new-found knowledge to build an app that shows different offers as you approach different beacons.
Chapter 3, Broadcasting Advertisements – Sending Offers, introduces you to the important classes in the Core Bluetooth framework and discusses how to handle the variations in beacon broadcasting power before building a functioning beacon broadcasting app. Now that you know how to detect beacons and act on their unique broadcasting values, you will learn how to turn your iPhone or iPad into a fully functioning iBeacon broadcaster.
Chapter 4, Ranging Beacons – Hunting for Treasure, introduces the concept of ranging beacons and determining their distance from the receiver. This chapter expands on the CLLocationManager class usage and will take you through a tutorial that allows one device to be configured as a sender and another as a receiver to ultimately build a simple treasure-hunting app.
Chapter 5, Detecting Beacons in the Background – Location Dating, introduces you to the core responsibilities of the iOS in monitoring beacons in the background. We will discuss how iOS takes over beacon monitoring when the app is in the background and will also launch the app if it has been terminated.
Chapter 6, Leaving Regions – Don’t Forget Your Stuff, discusses other uses of beacon technology and introduces functionalities based on when a user leaves a region. This chapter will introduce you to the possibilities of the technology for home automation before showing how to develop an application that ensures you don’t leave your keys or wallet at home.
Chapter 7, Vendor SDKs – Buying and Configuring Beacons, discusses some popular vendor implementations of iBeacon hardware and takes you through some of the vendor software development kits to build a beacon configuration tool using the Estimote SDK, as buying iBeacon hardware can be difficult. By the end of this chapter, you’ll be armed and confident to go and buy beacons for your commercial implementation.
Chapter 8, Advanced Tutorial – iBeacon Museum, pulls everything together with a more advanced tutorial. The tutorial focuses on an imaginary museum, which has different exhibits and multiple displays within each of the exhibits. As the user travels around the museum, the information shown in the app changes to show information about the display that they are currently closest to. As the user travels around the museum, you can track the user’s journey on an interactive website.
Chapter 9, iBeacon Security – Understanding the Risks, arms you with a complete idea of the security vulnerabilities that need consideration when building apps that use iBeacon. This chapter also dispels any myths around security that concern users and discusses ways to naturally request the security permissions in an app without scaring users.