SlideShare a Scribd company logo
A little less conversation,
a little more iBeacons
Estimote iBeacons mini-hack
Jim Bennett
@JimBobBennett
http://JimBobBennett.io
What are we going to do
tonight?
• A quick overview of iBeacons
• The cool things you can do with them
• Hands on with the Estimote Xamarin component
• Lets play! Team up and build a treasure hunt app,
and win some beacons
What are iBeacons?
• Bluetooth LE devices
• Broadcast a fixed format
message defined by Apple on a
periodic basis
• Message has an Id, version
(major, minor), measured power
• Multiple iBeacons can have the
same Id, versions can be use to
distinguish different iBeacons
How do they interact with
your app?
• Apple defines an API to interact
with iBeacons as part of
CoreLocation
• Apps can register to monitor a
region - all beacons with a given Id
• Monitoring notifies when an
iBeacon moves in or out of range
• Monitoring can happen in the
background and will launch your
app
• Once your app is in the foreground,
you can range the iBeacons to get
their proximity/distance as it
changes
What does this mean for
your app?
• Indoor location awareness
• Context awareness
What apps can you build to
take advantage of this?
• Museum guide - app knows which exhibit you are
standing next to and plays the correct audio
• Theatre location - app can pinpoint your location and
direct you to your seat
• Shopping - notifications of special offers when you are
next to the items on offer
• Respond to indoor location - turn your lights off when
you put your phone down on your bedside table, notify
friends when you are home safe
Problems!
• Security - anyone can read your beacon by scanning
for Bluetooth devices and spoof your id
• Power - some iBeacons run off the mains so need
socket, battery powered ones will die and need
replacing
• Accuracy - not very, for example in a busy location
people can decrease signal strength
• No simulator support - need an actual device for
debugging
Estimote iBeacons
• Estimote have extended the
capabilities of their iBeacons
• Distance measurements, flip to
power off
• Indoor location SDK
• Android support
• Xamarin component
• Nearables
• Strong developer community support
• Other iBeacon providers are
available
Best of all!
Free beacons!
2 dev kits to be given away, everyone gets 10% off their first Estimote
order and Stickers for everyone
Code
Examples at:
https://github.com/jimbobbennett/iBeaconsMiniHack
https://gist.github.com/jimbobbennett
Step 1 - add the component
• Install the Estimote SDK for iOS component
Step 2 - add the permissions
• Need either NSLocationWhenInUseUsageDescription or
NSLocationAlwaysUsageDescription set
Step 3 - Setup the
BeaconManager and
authorise
• Create a BeaconManager - this wraps CLLocationManager
• Listen for changes to the authorisation status
• Request permission
Step 4 - Start ranging
beacons
• To range you need to specify a region
• Each region is based on a UUID and optionally a major and minor
version
• Each region must have a name and you can use this in the event
handler to correctly handle the ranging of beacons from multiple
regions
• By default all brand new Estimote iBeacons have a UUID of
B9407F30-F5F8-466E-AFF9-25556B57FE6D
Step 5 - Handle the ranged
beacons
• The Ranged event provides a list of beacons
• Contains just the one that was ranged, or all of them depending on the
setup
Gotcha’s
• Distance of -1
• Means not enough signal or advertising packets - ramp up the
broadcast rate
• Checking for equality
• Beacons are equal if the UUID/version matches. Beacons in the event
args are new instances.
• Not working - check authorization!
• Make sure your code requests authorization and handles the denied
case.
Lets find some treasure!
Your challenge:
Form small teams - ideally 3 to a team
There will be 3 beacons hidden in another room
Write an app to find the beacons and record the
letters written on each
Each team will enter the room one at a time - the
fastest team to locate them all wins some booty - an
Estimote iBeacons dev kit with 3 iBeacons - worth
$100
Afterwards each team will show off their results. The
team with the best app wins another Estimote dev kit
Useful links
• http://estimote.com
• https://gist.github.com/jimbobbennett/07fb701789abce7bdc8b
• https://github.com/jimbobbennett/iBeaconsMiniHack
• https://developer.apple.com/library/ios/documentation/UserExperience/
Conceptual/LocationAwarenessPG/RegionMonitoring/RegionMonitoring
.html#//apple_ref/doc/uid/TP40009497-CH9-SW1
• http://motzcod.es/post/105283789517/ios-ibeacon-background-region-
monitoring
• http://motzcod.es/post/97662738237/scanning-for-ibeacons-in-ios-8
• https://www.brooklynmuseum.org/community/blogosphere/2015/02/04/t
he-realities-of-installing-ibeacon-to-scale/

More Related Content

What's hot

Workshop: Building location-aware mobile apps with iBeacons
Workshop: Building location-aware mobile apps with iBeaconsWorkshop: Building location-aware mobile apps with iBeacons
Workshop: Building location-aware mobile apps with iBeacons
Heather Downing
 
iBeacon introduction and overview
iBeacon introduction and overviewiBeacon introduction and overview
iBeacon introduction and overview
Christian Glover Wilson
 
iBeacon Indoor Proximity System
iBeacon Indoor Proximity SystemiBeacon Indoor Proximity System
iBeacon Indoor Proximity System
Ennio Masi
 
Eddystone beacons: Everything you need to know
Eddystone beacons: Everything you need to knowEddystone beacons: Everything you need to know
Eddystone beacons: Everything you need to know
Beaconstac
 
Building Mobile Proximity Apps with iBeacon
Building Mobile Proximity Apps with iBeaconBuilding Mobile Proximity Apps with iBeacon
Building Mobile Proximity Apps with iBeacon
David Helms
 
Telerik AppBuilder, Estimote Beacons, and the IoT - Presentation for TelerikNEXT
Telerik AppBuilder, Estimote Beacons, and the IoT - Presentation for TelerikNEXTTelerik AppBuilder, Estimote Beacons, and the IoT - Presentation for TelerikNEXT
Telerik AppBuilder, Estimote Beacons, and the IoT - Presentation for TelerikNEXT
Jen Looper
 
iBeacon and Bluetooth LE: An Introduction
iBeacon and Bluetooth LE: An Introduction iBeacon and Bluetooth LE: An Introduction
iBeacon and Bluetooth LE: An Introduction
Doug Thompson
 
NewAer Beacon Summit Dusseldorf 2015
NewAer Beacon Summit Dusseldorf 2015NewAer Beacon Summit Dusseldorf 2015
NewAer Beacon Summit Dusseldorf 2015
Dave Mathews
 
Factors effecting positional accuracy of iBeacons
Factors effecting positional accuracy of iBeacons Factors effecting positional accuracy of iBeacons
Factors effecting positional accuracy of iBeacons
Chris Thomson
 
Estimote q3-demo-betaworks ja00044-dosada
Estimote q3-demo-betaworks ja00044-dosadaEstimote q3-demo-betaworks ja00044-dosada
Estimote q3-demo-betaworks ja00044-dosada
Daisuke Osada
 
I beacons 101
I beacons 101I beacons 101
I beacons 101
Arunabh Mishra
 
Location-Aware Salesforce1 Development with Beacons
Location-Aware Salesforce1 Development with BeaconsLocation-Aware Salesforce1 Development with Beacons
Location-Aware Salesforce1 Development with Beacons
Salesforce Developers
 
Geo tech masterclass_beacons_oct
Geo tech masterclass_beacons_octGeo tech masterclass_beacons_oct
Geo tech masterclass_beacons_oct
Luke Hampson
 
Beacon The Google Way
Beacon The Google WayBeacon The Google Way
Beacon The Google Way
Ketan Raval
 
What is iBeacon in iOS?
What is iBeacon in iOS?What is iBeacon in iOS?
What is iBeacon in iOS?
Softweb Solutions
 
Health Care Clipboard iPad Application
Health Care Clipboard iPad ApplicationHealth Care Clipboard iPad Application
Health Care Clipboard iPad Application
Jose Ortega
 
Development of a mobile app for Android
Development of a mobile app for AndroidDevelopment of a mobile app for Android
Development of a mobile app for Android
AlexJReid
 
Why Streethawk re-wrote ibeacon handling on Android
Why Streethawk re-wrote ibeacon handling on AndroidWhy Streethawk re-wrote ibeacon handling on Android
Why Streethawk re-wrote ibeacon handling on Android
David Jones
 
My home iot for dev connect korea
My home iot for dev connect koreaMy home iot for dev connect korea
My home iot for dev connect korea
Yoonseok Hur
 
WWDC 2017
WWDC 2017WWDC 2017
WWDC 2017
Abhishek Neb
 

What's hot (20)

Workshop: Building location-aware mobile apps with iBeacons
Workshop: Building location-aware mobile apps with iBeaconsWorkshop: Building location-aware mobile apps with iBeacons
Workshop: Building location-aware mobile apps with iBeacons
 
iBeacon introduction and overview
iBeacon introduction and overviewiBeacon introduction and overview
iBeacon introduction and overview
 
iBeacon Indoor Proximity System
iBeacon Indoor Proximity SystemiBeacon Indoor Proximity System
iBeacon Indoor Proximity System
 
Eddystone beacons: Everything you need to know
Eddystone beacons: Everything you need to knowEddystone beacons: Everything you need to know
Eddystone beacons: Everything you need to know
 
Building Mobile Proximity Apps with iBeacon
Building Mobile Proximity Apps with iBeaconBuilding Mobile Proximity Apps with iBeacon
Building Mobile Proximity Apps with iBeacon
 
Telerik AppBuilder, Estimote Beacons, and the IoT - Presentation for TelerikNEXT
Telerik AppBuilder, Estimote Beacons, and the IoT - Presentation for TelerikNEXTTelerik AppBuilder, Estimote Beacons, and the IoT - Presentation for TelerikNEXT
Telerik AppBuilder, Estimote Beacons, and the IoT - Presentation for TelerikNEXT
 
iBeacon and Bluetooth LE: An Introduction
iBeacon and Bluetooth LE: An Introduction iBeacon and Bluetooth LE: An Introduction
iBeacon and Bluetooth LE: An Introduction
 
NewAer Beacon Summit Dusseldorf 2015
NewAer Beacon Summit Dusseldorf 2015NewAer Beacon Summit Dusseldorf 2015
NewAer Beacon Summit Dusseldorf 2015
 
Factors effecting positional accuracy of iBeacons
Factors effecting positional accuracy of iBeacons Factors effecting positional accuracy of iBeacons
Factors effecting positional accuracy of iBeacons
 
Estimote q3-demo-betaworks ja00044-dosada
Estimote q3-demo-betaworks ja00044-dosadaEstimote q3-demo-betaworks ja00044-dosada
Estimote q3-demo-betaworks ja00044-dosada
 
I beacons 101
I beacons 101I beacons 101
I beacons 101
 
Location-Aware Salesforce1 Development with Beacons
Location-Aware Salesforce1 Development with BeaconsLocation-Aware Salesforce1 Development with Beacons
Location-Aware Salesforce1 Development with Beacons
 
Geo tech masterclass_beacons_oct
Geo tech masterclass_beacons_octGeo tech masterclass_beacons_oct
Geo tech masterclass_beacons_oct
 
Beacon The Google Way
Beacon The Google WayBeacon The Google Way
Beacon The Google Way
 
What is iBeacon in iOS?
What is iBeacon in iOS?What is iBeacon in iOS?
What is iBeacon in iOS?
 
Health Care Clipboard iPad Application
Health Care Clipboard iPad ApplicationHealth Care Clipboard iPad Application
Health Care Clipboard iPad Application
 
Development of a mobile app for Android
Development of a mobile app for AndroidDevelopment of a mobile app for Android
Development of a mobile app for Android
 
Why Streethawk re-wrote ibeacon handling on Android
Why Streethawk re-wrote ibeacon handling on AndroidWhy Streethawk re-wrote ibeacon handling on Android
Why Streethawk re-wrote ibeacon handling on Android
 
My home iot for dev connect korea
My home iot for dev connect koreaMy home iot for dev connect korea
My home iot for dev connect korea
 
WWDC 2017
WWDC 2017WWDC 2017
WWDC 2017
 

Viewers also liked

Using iBeacon with Xamarin.iOS and Xamarin.Android
Using iBeacon with Xamarin.iOS and Xamarin.AndroidUsing iBeacon with Xamarin.iOS and Xamarin.Android
Using iBeacon with Xamarin.iOS and Xamarin.Android
Glenn Stephens
 
GSU Beacon
GSU BeaconGSU Beacon
GSU Beacon
Ayoub Salhi
 
What can I do with Estimote Beacons?
What can I do with Estimote Beacons?What can I do with Estimote Beacons?
What can I do with Estimote Beacons?
Estimote
 
Jakub Krzych - Estimote - Poland - Stanford Engineering - Jan 26 2015
Jakub Krzych - Estimote - Poland - Stanford Engineering - Jan 26 2015Jakub Krzych - Estimote - Poland - Stanford Engineering - Jan 26 2015
Jakub Krzych - Estimote - Poland - Stanford Engineering - Jan 26 2015
Burton Lee
 
How to start with Estimote Beacons?
How to start with Estimote Beacons?How to start with Estimote Beacons?
How to start with Estimote Beacons?
Estimote
 
Estimote Beacons
Estimote BeaconsEstimote Beacons
Estimote Beacons
Estimote
 

Viewers also liked (6)

Using iBeacon with Xamarin.iOS and Xamarin.Android
Using iBeacon with Xamarin.iOS and Xamarin.AndroidUsing iBeacon with Xamarin.iOS and Xamarin.Android
Using iBeacon with Xamarin.iOS and Xamarin.Android
 
GSU Beacon
GSU BeaconGSU Beacon
GSU Beacon
 
What can I do with Estimote Beacons?
What can I do with Estimote Beacons?What can I do with Estimote Beacons?
What can I do with Estimote Beacons?
 
Jakub Krzych - Estimote - Poland - Stanford Engineering - Jan 26 2015
Jakub Krzych - Estimote - Poland - Stanford Engineering - Jan 26 2015Jakub Krzych - Estimote - Poland - Stanford Engineering - Jan 26 2015
Jakub Krzych - Estimote - Poland - Stanford Engineering - Jan 26 2015
 
How to start with Estimote Beacons?
How to start with Estimote Beacons?How to start with Estimote Beacons?
How to start with Estimote Beacons?
 
Estimote Beacons
Estimote BeaconsEstimote Beacons
Estimote Beacons
 

Similar to Xamarin iBeacon Mini-hack using Estimote iBeacons

Using Beacons in a Mobile App - IoT Nearables
Using Beacons in a Mobile App - IoT NearablesUsing Beacons in a Mobile App - IoT Nearables
Using Beacons in a Mobile App - IoT Nearables
Jen Looper
 
The Internet of Fails - Mark Stanislav, Senior Security Consultant, Rapid7
The Internet of Fails - Mark Stanislav, Senior Security Consultant, Rapid7The Internet of Fails - Mark Stanislav, Senior Security Consultant, Rapid7
The Internet of Fails - Mark Stanislav, Senior Security Consultant, Rapid7
Rapid7
 
ibeacons, Privacy & Customer Segmentation - StreetHawk
ibeacons, Privacy & Customer Segmentation - StreetHawkibeacons, Privacy & Customer Segmentation - StreetHawk
ibeacons, Privacy & Customer Segmentation - StreetHawk
David Jones
 
Resisting App Pirates
Resisting App PiratesResisting App Pirates
Resisting App Pirates
ripeapps
 
10 industries that will be disrupted by iBeacons in 2015
10 industries that will be disrupted by iBeacons in 201510 industries that will be disrupted by iBeacons in 2015
10 industries that will be disrupted by iBeacons in 2015
Lukasz Felsztukier
 
[CB19] I KNOW WHAT YOU DID LAST NIGHT : Pwning The State-Of-The-Art the IoT H...
[CB19] I KNOW WHAT YOU DID LAST NIGHT : Pwning The State-Of-The-Art the IoT H...[CB19] I KNOW WHAT YOU DID LAST NIGHT : Pwning The State-Of-The-Art the IoT H...
[CB19] I KNOW WHAT YOU DID LAST NIGHT : Pwning The State-Of-The-Art the IoT H...
CODE BLUE
 
Estimote beacons and simple Android application (full)
Estimote beacons and simple Android application (full)Estimote beacons and simple Android application (full)
Estimote beacons and simple Android application (full)
davidepiccardi
 
Webapi
WebapiWebapi
Webapi
Jan Jongboom
 
Ibeacon
IbeaconIbeacon
JAM805 - Beyond the Device
JAM805 -  Beyond the DeviceJAM805 -  Beyond the Device
JAM805 - Beyond the Device
Dr. Ranbijay Kumar
 
iBeacons Tech talk
iBeacons Tech talk iBeacons Tech talk
iBeacons Tech talk
Howard Huang
 
iBeacon™ FAQ White Paper
iBeacon™ FAQ White PaperiBeacon™ FAQ White Paper
iBeacon™ FAQ White Paper
Red Fox Insights
 
Smart Phones for Real Estate (property of HAR)
Smart Phones for Real Estate (property of HAR)Smart Phones for Real Estate (property of HAR)
Smart Phones for Real Estate (property of HAR)
Marilyn M. Maxwell
 
[CB16] BLE authentication design challenges on smartphone controlled IoT devi...
[CB16] BLE authentication design challenges on smartphone controlled IoT devi...[CB16] BLE authentication design challenges on smartphone controlled IoT devi...
[CB16] BLE authentication design challenges on smartphone controlled IoT devi...
CODE BLUE
 
voice recognition security system ppt
voice recognition security system pptvoice recognition security system ppt
voice recognition security system ppt
Nitesh Dubey
 
Foo Café 20160407 - Beacons and PhoneGap in practice
Foo Café 20160407 - Beacons and PhoneGap in practiceFoo Café 20160407 - Beacons and PhoneGap in practice
Foo Café 20160407 - Beacons and PhoneGap in practice
Abiro AB
 
BLE Beacons4classrooms - iBeacons
BLE Beacons4classrooms - iBeaconsBLE Beacons4classrooms - iBeacons
BLE Beacons4classrooms - iBeacons
garybau
 
PayPal Beacon and Apple iBeacon
PayPal Beacon and Apple iBeaconPayPal Beacon and Apple iBeacon
PayPal Beacon and Apple iBeacon
Chitpong Wuttanan
 
Location Based Development Using Xamarin
Location Based Development Using XamarinLocation Based Development Using Xamarin
Location Based Development Using Xamarin
Kym Phillpotts
 
A crash course in iBeacon technology
A crash course in iBeacon technologyA crash course in iBeacon technology
A crash course in iBeacon technology
Klyp
 

Similar to Xamarin iBeacon Mini-hack using Estimote iBeacons (20)

Using Beacons in a Mobile App - IoT Nearables
Using Beacons in a Mobile App - IoT NearablesUsing Beacons in a Mobile App - IoT Nearables
Using Beacons in a Mobile App - IoT Nearables
 
The Internet of Fails - Mark Stanislav, Senior Security Consultant, Rapid7
The Internet of Fails - Mark Stanislav, Senior Security Consultant, Rapid7The Internet of Fails - Mark Stanislav, Senior Security Consultant, Rapid7
The Internet of Fails - Mark Stanislav, Senior Security Consultant, Rapid7
 
ibeacons, Privacy & Customer Segmentation - StreetHawk
ibeacons, Privacy & Customer Segmentation - StreetHawkibeacons, Privacy & Customer Segmentation - StreetHawk
ibeacons, Privacy & Customer Segmentation - StreetHawk
 
Resisting App Pirates
Resisting App PiratesResisting App Pirates
Resisting App Pirates
 
10 industries that will be disrupted by iBeacons in 2015
10 industries that will be disrupted by iBeacons in 201510 industries that will be disrupted by iBeacons in 2015
10 industries that will be disrupted by iBeacons in 2015
 
[CB19] I KNOW WHAT YOU DID LAST NIGHT : Pwning The State-Of-The-Art the IoT H...
[CB19] I KNOW WHAT YOU DID LAST NIGHT : Pwning The State-Of-The-Art the IoT H...[CB19] I KNOW WHAT YOU DID LAST NIGHT : Pwning The State-Of-The-Art the IoT H...
[CB19] I KNOW WHAT YOU DID LAST NIGHT : Pwning The State-Of-The-Art the IoT H...
 
Estimote beacons and simple Android application (full)
Estimote beacons and simple Android application (full)Estimote beacons and simple Android application (full)
Estimote beacons and simple Android application (full)
 
Webapi
WebapiWebapi
Webapi
 
Ibeacon
IbeaconIbeacon
Ibeacon
 
JAM805 - Beyond the Device
JAM805 -  Beyond the DeviceJAM805 -  Beyond the Device
JAM805 - Beyond the Device
 
iBeacons Tech talk
iBeacons Tech talk iBeacons Tech talk
iBeacons Tech talk
 
iBeacon™ FAQ White Paper
iBeacon™ FAQ White PaperiBeacon™ FAQ White Paper
iBeacon™ FAQ White Paper
 
Smart Phones for Real Estate (property of HAR)
Smart Phones for Real Estate (property of HAR)Smart Phones for Real Estate (property of HAR)
Smart Phones for Real Estate (property of HAR)
 
[CB16] BLE authentication design challenges on smartphone controlled IoT devi...
[CB16] BLE authentication design challenges on smartphone controlled IoT devi...[CB16] BLE authentication design challenges on smartphone controlled IoT devi...
[CB16] BLE authentication design challenges on smartphone controlled IoT devi...
 
voice recognition security system ppt
voice recognition security system pptvoice recognition security system ppt
voice recognition security system ppt
 
Foo Café 20160407 - Beacons and PhoneGap in practice
Foo Café 20160407 - Beacons and PhoneGap in practiceFoo Café 20160407 - Beacons and PhoneGap in practice
Foo Café 20160407 - Beacons and PhoneGap in practice
 
BLE Beacons4classrooms - iBeacons
BLE Beacons4classrooms - iBeaconsBLE Beacons4classrooms - iBeacons
BLE Beacons4classrooms - iBeacons
 
PayPal Beacon and Apple iBeacon
PayPal Beacon and Apple iBeaconPayPal Beacon and Apple iBeacon
PayPal Beacon and Apple iBeacon
 
Location Based Development Using Xamarin
Location Based Development Using XamarinLocation Based Development Using Xamarin
Location Based Development Using Xamarin
 
A crash course in iBeacon technology
A crash course in iBeacon technologyA crash course in iBeacon technology
A crash course in iBeacon technology
 

More from Jim Bennett

Intro to the Cloud from TeenHacks LI
Intro to the Cloud from TeenHacks LIIntro to the Cloud from TeenHacks LI
Intro to the Cloud from TeenHacks LI
Jim Bennett
 
WooHoo my app is on the store! Now what?
WooHoo my app is on the store! Now what?WooHoo my app is on the store! Now what?
WooHoo my app is on the store! Now what?
Jim Bennett
 
Building Fabulous mobile apps with F#
Building Fabulous mobile apps with F#Building Fabulous mobile apps with F#
Building Fabulous mobile apps with F#
Jim Bennett
 
Adding platform specific magic to cross-platform Xamarin Forms apps
Adding platform specific magic to cross-platform Xamarin Forms appsAdding platform specific magic to cross-platform Xamarin Forms apps
Adding platform specific magic to cross-platform Xamarin Forms apps
Jim Bennett
 
Learning to love f#
Learning to love f#Learning to love f#
Learning to love f#
Jim Bennett
 
App center - the gateway drug to mobile devops
App center -  the gateway drug to mobile devopsApp center -  the gateway drug to mobile devops
App center - the gateway drug to mobile devops
Jim Bennett
 
Adding platform specific magic to cross-platform Xamarin Forms apps
Adding platform specific magic to cross-platform Xamarin Forms appsAdding platform specific magic to cross-platform Xamarin Forms apps
Adding platform specific magic to cross-platform Xamarin Forms apps
Jim Bennett
 
Cross platform Xamarin Apps With MVVM
Cross platform Xamarin Apps With MVVMCross platform Xamarin Apps With MVVM
Cross platform Xamarin Apps With MVVM
Jim Bennett
 
Clicking on the real world with iBeacon and eddystone
Clicking on the real world with iBeacon and eddystoneClicking on the real world with iBeacon and eddystone
Clicking on the real world with iBeacon and eddystone
Jim Bennett
 

More from Jim Bennett (9)

Intro to the Cloud from TeenHacks LI
Intro to the Cloud from TeenHacks LIIntro to the Cloud from TeenHacks LI
Intro to the Cloud from TeenHacks LI
 
WooHoo my app is on the store! Now what?
WooHoo my app is on the store! Now what?WooHoo my app is on the store! Now what?
WooHoo my app is on the store! Now what?
 
Building Fabulous mobile apps with F#
Building Fabulous mobile apps with F#Building Fabulous mobile apps with F#
Building Fabulous mobile apps with F#
 
Adding platform specific magic to cross-platform Xamarin Forms apps
Adding platform specific magic to cross-platform Xamarin Forms appsAdding platform specific magic to cross-platform Xamarin Forms apps
Adding platform specific magic to cross-platform Xamarin Forms apps
 
Learning to love f#
Learning to love f#Learning to love f#
Learning to love f#
 
App center - the gateway drug to mobile devops
App center -  the gateway drug to mobile devopsApp center -  the gateway drug to mobile devops
App center - the gateway drug to mobile devops
 
Adding platform specific magic to cross-platform Xamarin Forms apps
Adding platform specific magic to cross-platform Xamarin Forms appsAdding platform specific magic to cross-platform Xamarin Forms apps
Adding platform specific magic to cross-platform Xamarin Forms apps
 
Cross platform Xamarin Apps With MVVM
Cross platform Xamarin Apps With MVVMCross platform Xamarin Apps With MVVM
Cross platform Xamarin Apps With MVVM
 
Clicking on the real world with iBeacon and eddystone
Clicking on the real world with iBeacon and eddystoneClicking on the real world with iBeacon and eddystone
Clicking on the real world with iBeacon and eddystone
 

Recently uploaded

みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
David Brossard
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Things to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUUThings to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUU
FODUU
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 

Recently uploaded (20)

みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Things to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUUThings to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUU
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 

Xamarin iBeacon Mini-hack using Estimote iBeacons

  • 1. A little less conversation, a little more iBeacons Estimote iBeacons mini-hack Jim Bennett @JimBobBennett http://JimBobBennett.io
  • 2. What are we going to do tonight? • A quick overview of iBeacons • The cool things you can do with them • Hands on with the Estimote Xamarin component • Lets play! Team up and build a treasure hunt app, and win some beacons
  • 3. What are iBeacons? • Bluetooth LE devices • Broadcast a fixed format message defined by Apple on a periodic basis • Message has an Id, version (major, minor), measured power • Multiple iBeacons can have the same Id, versions can be use to distinguish different iBeacons
  • 4. How do they interact with your app? • Apple defines an API to interact with iBeacons as part of CoreLocation • Apps can register to monitor a region - all beacons with a given Id • Monitoring notifies when an iBeacon moves in or out of range • Monitoring can happen in the background and will launch your app • Once your app is in the foreground, you can range the iBeacons to get their proximity/distance as it changes
  • 5. What does this mean for your app? • Indoor location awareness • Context awareness
  • 6. What apps can you build to take advantage of this? • Museum guide - app knows which exhibit you are standing next to and plays the correct audio • Theatre location - app can pinpoint your location and direct you to your seat • Shopping - notifications of special offers when you are next to the items on offer • Respond to indoor location - turn your lights off when you put your phone down on your bedside table, notify friends when you are home safe
  • 7. Problems! • Security - anyone can read your beacon by scanning for Bluetooth devices and spoof your id • Power - some iBeacons run off the mains so need socket, battery powered ones will die and need replacing • Accuracy - not very, for example in a busy location people can decrease signal strength • No simulator support - need an actual device for debugging
  • 8. Estimote iBeacons • Estimote have extended the capabilities of their iBeacons • Distance measurements, flip to power off • Indoor location SDK • Android support • Xamarin component • Nearables • Strong developer community support • Other iBeacon providers are available
  • 9. Best of all! Free beacons! 2 dev kits to be given away, everyone gets 10% off their first Estimote order and Stickers for everyone
  • 11. Step 1 - add the component • Install the Estimote SDK for iOS component
  • 12. Step 2 - add the permissions • Need either NSLocationWhenInUseUsageDescription or NSLocationAlwaysUsageDescription set
  • 13. Step 3 - Setup the BeaconManager and authorise • Create a BeaconManager - this wraps CLLocationManager • Listen for changes to the authorisation status • Request permission
  • 14. Step 4 - Start ranging beacons • To range you need to specify a region • Each region is based on a UUID and optionally a major and minor version • Each region must have a name and you can use this in the event handler to correctly handle the ranging of beacons from multiple regions • By default all brand new Estimote iBeacons have a UUID of B9407F30-F5F8-466E-AFF9-25556B57FE6D
  • 15. Step 5 - Handle the ranged beacons • The Ranged event provides a list of beacons • Contains just the one that was ranged, or all of them depending on the setup
  • 16. Gotcha’s • Distance of -1 • Means not enough signal or advertising packets - ramp up the broadcast rate • Checking for equality • Beacons are equal if the UUID/version matches. Beacons in the event args are new instances. • Not working - check authorization! • Make sure your code requests authorization and handles the denied case.
  • 17. Lets find some treasure! Your challenge: Form small teams - ideally 3 to a team There will be 3 beacons hidden in another room Write an app to find the beacons and record the letters written on each Each team will enter the room one at a time - the fastest team to locate them all wins some booty - an Estimote iBeacons dev kit with 3 iBeacons - worth $100 Afterwards each team will show off their results. The team with the best app wins another Estimote dev kit
  • 18. Useful links • http://estimote.com • https://gist.github.com/jimbobbennett/07fb701789abce7bdc8b • https://github.com/jimbobbennett/iBeaconsMiniHack • https://developer.apple.com/library/ios/documentation/UserExperience/ Conceptual/LocationAwarenessPG/RegionMonitoring/RegionMonitoring .html#//apple_ref/doc/uid/TP40009497-CH9-SW1 • http://motzcod.es/post/105283789517/ios-ibeacon-background-region- monitoring • http://motzcod.es/post/97662738237/scanning-for-ibeacons-in-ios-8 • https://www.brooklynmuseum.org/community/blogosphere/2015/02/04/t he-realities-of-installing-ibeacon-to-scale/

Editor's Notes

  1. At the end of this slide - organise everyone into teams, minimum 1 iOS dev per team, ideally max 3 to a team
  2. iBeacons use Bluetooth 4.0 LE. Very low power so can run for a long time. Estimote reckon 2 years for their battery powered iBeacons. The frequency of the broadcast can vary - less time to save battery life. Apple recommends 100ms. The Id is a 128bit UUID, version is 2 16-bit integers for major and minor Multiple beacons with the same Id can be used to indicate the same thing to allow discovery over a wider area than the broadcast power of a single iBeacon.
  3. Monitoring detects iBeacons moving into an our of fixed ranges. Once your app is in the foreground you can range the iBeacons to get notifications of distance changes. The iBeacon message contains the measured power. The API provides a value for the RSSI - relative signal strength indicator. This is the power detected by the iOS device and can be used to calculate the approximate distance. Distance is only approximate and is based on assuming empty air - things in the way can reduce the detected signal - furniture, people etc. Ranging will call a method regularly when your app is in the foreground to provide the updated distance.
  4. Indoor location - an app can know where it is without accurate GPS. Useful for finding your seat in a stadium, directing you around a hospital etc. Context aware - it can resolve the id to a context, such as a painting in a gallery.
  5. Security can be a problem for payments - another beacon can broadcast the same id and the wrong person pays. Battery is an issue with large installations - imaging having to replace them regularly in an art gallery where they would be hidden behind pictures. Not accurate with people in the way - a problem in busy areas like shops, museums and art galleries. Brooklyn Museum has a great article on this.
  6. I don’t work for Estimote, just like their products. Custom SDK on top of iOS CoreLocation, cloud offering to provide CMS for beacon ids Indoor location to easily plot location in a room Android support similar to iOS support and getting closer all the time Strong Xamarin support, strong dev community. Nearables provide temperature, movement triggers
  7. Estimote have provided 2 iBeacon developer kits with $100 each to be given away at this talk. They will also provide 10% off on your first order with them, just email them at contact@estimote.com Also - free stickers!
  8. New single page iOS app. Need correct identifier so it can run on a device
  9. Install the component and it shows a nice getting started guide
  10. Set the relevant item in the info.plist. It’s not a default option so needs to be added as a new property The contents of the string is shown in the alert when the app asks for permission Visual studio users - you will need to edit the plist source directly.
  11. If the app has never requested authorisation then the request will pop up an alert to the user. RequesWhenInUseAuthorization or RequestAlwaysAuthorization - and the relevant info.plist item should be there. Default authorization state is NotDetermined. Event will fire with a status of AuthorizedAlways, AuthorizedWhenInUse, Denied. Denied means the user has to turn it on in settings - this happens when they reject the alert - you need to handle this case!
  12. You can range up to 20 regions. Every beacon that matches the region will be detected on every beacon signal - this rate is set on the beacon. Faster means better ranging but lower battery life. As each signal is detected the event is fired. It can be fired once per detected signal or the event can include all ranged beacons in one bundle. The UUID of a beacon can be configured using the Estimote SDK or app. Default UUID is on a gist - https://gist.github.com/jimbobbennett/9d815bafe4dd432f7e09
  13. Broadcast rates can be set in code or from the Estimote app but needs authorisation. Each iBeacon is assigned to an account and you need to log into that account to change beacon settings. This stops malicious changes. When storing beacons in a list beware the comparison - the event provides new instances so although they are equal by ID, the properties are different.