Search icon
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
Learning ibeacon

You're reading from  Learning ibeacon

Product type Book
Published in Nov 2014
Publisher
ISBN-13 9781784397128
Pages 196 pages
Edition 1st Edition
Languages
Author (1):
Craig Gilchrist Craig Gilchrist
Profile icon Craig Gilchrist

Table of Contents (16) Chapters

Learning iBeacon
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Welcome to iBeacon Detecting Beacons – Showing an Advert Broadcasting Advertisements – Sending Offers Ranging Beacons – Hunting for Treasure Detecting Beacons in the Background – Location Dating Leaving Regions – Don't Forget Your Stuff Vendor SDKs – Buying and Configuring Beacons Advanced Tutorial – iBeacon Museum iBeacon Security – Understanding the Risks Index

Chapter 7. Vendor SDKs – Buying and Configuring Beacons

In the previous chapters, we only utilized Apple's Core Location and Core Bluetooth frameworks to interact with beacons. Many vendors actually provide their own hardware beacons, a web-based API for managing beacons, and an SDK for manipulating their values over BLE.

In this chapter, we will explore Estimote beacons and the associated SDK and also ROXIMITY beacons before delving further into the ROXIMITY SDK and producing an app that allows you to configure the Estimote beacon UUID, major, and minor values.

Estimote motes and SDK


Although Estimote have recently implemented a cloud-based platform, their beacons can quite happily work independent of it, and their beacons conform to the iBeacon specification as set out by Apple.

On top of the features laid out by the iBeacon specifications, Estimote beacons also include a temperature sensor and accelerometer for additional functionality.

Currently, the only data that is actually synchronized to the cloud is a property representing the color of the silicon case that surrounds the beacon and a single property signifying the beacon's location. This property is just intended as a reference for you as the beacon owner. When you purchase beacons from Estimote, they automatically add your beacons to the cloud platform.

ROXIMITY implementation


ROXIMITY beacons implement a very different architecture. Although their beacon broadcasting ad rate is iBeacon certified, there is no way of actually choosing a UUID to suit your requirements.

ROXIMITY beacons are entirely cloud-platform managed. Much like Estimote, when you purchase ROXIMITY beacons, they are automatically added to your cloud account.

Since ROXIMITY beacons must use their SDK to build enterprise-level applications, it means that each beacon isn't locked down to a single UUID and so can be utilized for multiple apps.

ROXIMITY have based their platform very much on an advertiser network, and as such, their SDK allows you to implement rich notifications, modal pop ups, and pop up requests via simple web forms in their cloud platform without having to write any code.

By implementing the SDK, the ROXIMITY platform also gives you powerful targeting for your notifications based on demographics and behavior such as the dwell time.

Choosing the best platform for your requirements


Although there are many more platforms than just the two we've discussed here, many implement similar architectures. If you're looking to build an enterprise-level advertising network and don't have the capability or resources to build a web platform, then ROXIMITY is the choice for you.

However, if you want more control over your beacon's implementation or want additional features beyond that of just the iBeacon specification, then Estimote or one of the other more open beacons is definitely a better choice.

You might have other considerations such as beacon size, cost, or branding of beacons. Check back to Chapter 1, Welcome to iBeacon, which gives a more in-depth run-down of some of the providers on the market at the time of writing.

AltBeacon – the open beacon specification


Because there is no open and interoperable specification for proximity beacons, Radius Networks has authored the AltBeacon specification as a proposal on how to solve this problem. The AltBeacon specification defines the format of advertisement messages in an attempt to bring a standard platform-independent way for proximity beacons to broadcast.

This is unlike the iBeacon specification, which requires the vendor to register with Apple's MFI program in order to find out the exact Bluetooth advertising channel protocol data unit (PDU), which iOS devices look out for.

The AltBeacon specification defines the format of the advertisement message that BLE proximity beacons broadcast and is free for all to implement with no royalty or fees.

Keep an eye out for AltBeacon implementations. I'm sure they'll come thick and fast with third-party library implementations very soon.

Using Estimote API 2.1


Our tutorial is going to take us through how to use the Estimote API to build an app, which allows us to configure Estimote beacons with custom UUID, major, and minor values.

To complete this tutorial, you will need some hardware. Estimote offer a 3-beacon developer kit at $ 99, which allows you to get started with building solutions using their beacons, which can be ordered from their website at https://order.estimote.com/.

I've used the latest SDK (2.1) at the time of writing this, but the developers working at Estimote are always busy and constantly improving their API and firmware. Before beginning this tutorial, I'd recommend heading over to the Estimote API pages (http://bit.ly/estimoteapi) and checking out the latest API.

I'd also recommend upgrading your Estimote beacon firmware to the latest version.

Security

In the latest version of the Estimote SDK, you need to connect to the devices using the API app ID and API app token. When you buy beacons from Estimote,...

Let's get building


We'll be building a simple master-detail application similar to that of Chapter 6, Leaving Regions – Don't Forget Your Stuff. Our master view controller will be used to show the Estimote beacons in range, while the detail view controller will be used to change the values of the beacon.

Our detail view controller will also show the output from the beacon's temperature sensor and will also vibrate the iPhone when the beacon is moved.

Let's start by firing up Xcode and creating a new project following the given steps:

  1. Choose Master-Detail Application as our template.

  2. Set Product Name as Estimote Beacon Manager, uncheck the Use Core Data checkbox, and use LI as our class prefix.

  3. To make our app vibrate, we will need the Audio Toolbox framework; so, go ahead and add that framework to the project.

Adding EstimoteSDK

We'll be using CocoaPods to add EstimoteSDK. If you're not familiar with CocoaPods, it's a Ruby dependency manager for Objective-C projects that allows you to add dependencies...

Testing your application


Finally, you can fire up your application and get your Estimote beacons out.

Try changing some of your values and check whether it works. Don't forget to open a beacon in the detail view and then give the beacon a shake. Make sure it vibrates your iOS device!

Summary


In this chapter, we explored the Estimote SDK in some detail as well as discussed some other vendor implementations of iBeacon.

In the next chapter, we will combine everything we've learned in the previous chapters to build a complete museum app.

lock icon The rest of the chapter is locked
You have been reading a chapter from
Learning ibeacon
Published in: Nov 2014 Publisher: ISBN-13: 9781784397128
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime}