Intro to iBeacon and Bluetooth Low Energy

12,539 views

Published on

FULL VIDEO ON YOUTUBE - https://www.youtube.com/watch?v=wpl1f8f4Vis

Speaker: Kurt McIntire, Co-Founder, Vektor Digital
@kurtmcintire, @vektordigital

iBeacons are small devices that transmit data via Bluetooth Low Energy. iOS devices can detect these signals as well as transmit data as iBeacons. When within range of an iBeacon, events like push notifications and server calls can be triggered inside apps.

As mobile marketers and developers, iBeacon technology presents us an incredible opportunity to build sophisticated, proximity based apps for clients and for distribution on the App Store.

In this talk, we’ll explore:

1. What are iBeacons and BLE?
2. How to detect iBeacons inside your apps
3. How to make your iOS device act as an iBeacon
4. Potential applications / Apps using iBeacon

Published in: Technology, Education
1 Comment
39 Likes
Statistics
Notes
  • Has anyone found a way to range while the app is in the background/the device is asleep yet? I know core bluetooth can transmit while the app is asleep, is there any way to get core bluetooth to talk with iBeacon?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
12,539
On SlideShare
0
From Embeds
0
Number of Embeds
117
Actions
Shares
0
Downloads
956
Comments
1
Likes
39
Embeds 0
No embeds

No notes for slide

Intro to iBeacon and Bluetooth Low Energy

  1. 1. Introduction to iBeacon and BLE @KurtMcIntire
  2. 2. #iBeacon @VektorDigital @KurtMcIntire
  3. 3. Source: aim.org
  4. 4. Source: aim.org
  5. 5. Source: starhooks.blogspot.com
  6. 6. Source: starhooks.blogspot.com
  7. 7. three minutes elapse Source: starhooks.blogspot.com
  8. 8. Source: starhooks.blogspot.com
  9. 9. Overview 1.  2.  3.  4.  5.  What is BLE? What is iBeacon? How to detect iBeacons How make your iOS device an iBeacon Demos & Real-world Applications
  10. 10. Bluetooth Low Energy Optimized for small bursts of data Impressive battery life   Ideal for sensors
  11. 11. Sensors & Wearables Photo Sources: ewf.sm, macrumors.com, cdn.macrumors.com
  12. 12. Joke and Photo Source: Punch Through Design #iBacon  
  13. 13. Photo Source: Beekn.net #iBeacon  
  14. 14. UUID B9407F30F5F8466EAFF925556B57FE6D Minor 34956 Major 58549
  15. 15. manufacturers   Photo Sources: QualCom, Estimote, PunchThrough, Roximity
  16. 16. manufacturers   Cost ~0 - $99   Battery Life 2 mo - 2 yr   Dashboards and Beacon Management Tools  
  17. 17. iBeacon BLUETOOTH LE SIGNAL
  18. 18. Phones and tablets As iBeacons
  19. 19. 250,000,000 Bluetooth low energy Phones and tablets
  20. 20. Requirements   1.  User needs your app 2.  User must have app-on (does not need to be “open”) 3.  User needs Bluetooth BLE compatible device 4.  User needs Bluetooth on 5.  User must allow you to push messages
  21. 21. You’re not wrong You’re just an asshole Photo Source: blog.estately.com
  22. 22. The dude says, Photo Source: blog.estately.com
  23. 23. 1.  Don’t spam the s**t out of people 2.  Don’t send repeat messages 3.  Provide value Photo Source: blog.estately.com
  24. 24. Detect Beacons
  25. 25. Framework #import <CoreLocation/CoreLocation.h>! Delegate <CLLocationManagerDelegate>!
  26. 26. Set up a Region
  27. 27. Set up a Region ! CLBeaconRegion *beaconRegion! - (id)initWithProximityUUID:(NSUUID *)proximityUUID identifier:(NSString *)identifier;! OR - (id)initWithProximityUUID:(NSUUID *)proximityUUID major:(CLBeaconMajorValue)major minor: (CLBeaconMinorValue)minor identifier:(NSString *)identifier;!
  28. 28. Set up a Region static NSString *const kUUID = 
 @"B9407F30-F5F8-466E-AFF9-25556B57FE6D";! ! static NSString *const kIdentifier = @"EstimoteBeacon”;!
  29. 29. Location manager CLLocationManager *locationManager! 1. Monitoring 2. Ranging
  30. 30. Monitoring Inside or Outside Works when phone asleep
  31. 31. Monitoring - (void)locationManager:(CLLocationManager *)manager! !didDetermineState:(CLRegionState)state forRegion: (CLRegion *)region! if (state == CLRegionStateInside) {! ! !// do something ! !}! else if (state == CLRegionStateOutside) {! ! !// do something! !}!
  32. 32. Monitoring - (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region! ! - (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region!
  33. 33. Monitoring App State Active Asleep Distance (ft) 50 18
  34. 34. Ranging 1 / second Proximity Works when app active
  35. 35. Ranging - (void)locationManager:(CLLocationManager *)manager! !didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region!
  36. 36. Ranging NSArray *detectedBeacons! CLBeacon *closestBeacon!
  37. 37. Closest Beacon _closestBeacon = [_detectedBeacons firstObject];!
  38. 38. Ranging typedef {! CLProximityUnknown,! CLProximityImmediate,! CLProximityNear,! CLProximityFar! } CLProximity;!
  39. 39. Ranging 2014-01-16 14:51:33.611 BeaconDemo[591:60b] (! "CLBeacon (uuid:<__NSConcreteUUID 0x17003c800> B9407F30-F5F8-466E-AFF9-25556B57FE6D, major:34956, minor: 46961, proximity:2 +/- 1.20m, rssi:-73)",! "CLBeacon (uuid:<__NSConcreteUUID 0x17003c340> B9407F30-F5F8-466E-AFF9-25556B57FE6D, major:43680, minor: 8490, proximity:3 +/- 6.49m, rssi:-86)",! "CLBeacon (uuid:<__NSConcreteUUID 0x17003d360> B9407F30-F5F8-466E-AFF9-25556B57FE6D, major:22222, minor: 58549, proximity:3 +/- 8.61m, rssi:-85)"! )!
  40. 40. Ranging Beacon Proximity RSSI Beacon 1 2 +/- 1.20m -73 Beacon 2 3 +/- 6.49m -86 Beacon 3 3 +/- 8.61m -85
  41. 41. Do Something! - (void)checkProximity {! switch (_closestBeacon.proximity) {! ! ! case CLProximityImmediate:! self.view.backgroundColor = [UIColor redColor];! [self beaconIsImmediate];! break;! case CLProximityNear:! self.view.backgroundColor = [UIColor yellowColor];! break;! case CLProximityFar:! self.view.backgroundColor = [UIColor blueColor];! break;! default:! break;! }! }!
  42. 42. Make your device an iBeacon
  43. 43. Frameworks #import <CoreBluetooth/CoreBluetooth.h>! Delegate <CBPeripheralManagerDelegate>!
  44. 44. The PlayerS CBPeripheralManager *peripheralManager! NSDictionary *beaconPeripheralData!
  45. 45. Set up a Region - (id)initWithProximityUUID:(NSUUID *)proximityUUID identifier:(NSString *)identifier;! OR - (id)initWithProximityUUID:(NSUUID *)proximityUUID major:(CLBeaconMajorValue)major minor: (CLBeaconMinorValue)minor identifier:(NSString *)identifier;!
  46. 46. Set up a Region static NSString *const kUUID = 
 @"DE8F8D67-4914-4B25-A9F2-EE0C624117CE";! ! static NSString *const kIdentifier = @”MyiPhone”;!
  47. 47. Advertising [self.peripheralManager startAdvertising:beaconPeripheralData];! [self.peripheralManager stopAdvertising];!
  48. 48. Advertising - (void)peripheralManagerDidUpdateState: (CBPeripheralManager *)peripheralManager!
  49. 49. resources BEEKN.net Raywenderlich.com HiBeacons App – Github Radius Networks – iBeacon Monitoring in the Background and Foreground
  50. 50. Beer demo
  51. 51. Coupon Redeem with Parse demo
  52. 52. PKPKT
  53. 53. Photo Source: insidemobileapps.com PKPKT h#p://pkpkt.com/  
  54. 54. Apple Store ALL 254 Retail Locations
  55. 55. Photo Source: insidemobileapps.com
  56. 56. MLB At the Ballpark
  57. 57. Photo Source: CNET News : MLB tests Apple's iBeacon at Citi Field
  58. 58. NFL Mobile app
  59. 59. Photo Source: nytimes.com
  60. 60. Safeway Stores
  61. 61. Photo Source: idownloadblog.com
  62. 62. iBeacon   What will you make? @VektorDigital @KurtMcIntire

×