i beacon mobile_tea
TRANSCRIPT
About Me
- Technical Leader and Agile Coach
- Front-end Developer (test first!)
- Mobile Developer (Hybrid, iOS and Android)
- Technology Enthusiast
- GsD since 2001
- Mentor @ AirPair.com
@giorgionatili #mobiletea #nese 2
Introduction
How do beacons work?Awesome stuff done with beacons
+ Is there more to it?
3
1
2
@giorgionatili #mobiletea #nese 4
What is iBeacon?
Apple’s protocol for communication over Bluetooth Smart (BT 4.0). Used to provide mobile apps with local context.
@giorgionatili #mobiletea #nese 9
What really is iBeacon?
@giorgionatili #mobiletea #nese 10
- A new technology that extends iOS Location Services
- An app can estimate your proximity to an iBeacon
- It’s a business service from Apple
11@giorgionatili #mobiletea #nese
How does it solve the problem?
- Honestly, which problem?
- Before iBeacon: walk in, like something, buy it, etc.
- After iBeacon: walk in, phone vibrate, swipe, accept terms, reject spam, open app, swipe (it’s always needed), find a price, #!#%%@, probably buy, etc.
12@giorgionatili #mobiletea #nese
Let’s start to deal with real problems!
- Build an audio guide for visitors in a museum
- Build an analytic system to collect information about people flow in a shop
- Build a monitoring system to avoid a children can leave the school without the teachers are aware
- Build a system to control lights and save energy
- Help your drone flying using the beacons signals to give directions to a flight controller
What does Estimote do?
Estimote builds a platform on top of iBeacon to empower developers with the best tools for creating context-aware apps.
@giorgionatili #mobiletea #nese 13
Bluetooth Smart-enabled device (iPhone 4S and higher, Android 4.3 and higher) with a relevant app installed.
Technical requirements
iOS 8 for getting your app icon visible on the iPhone lock screen.
@giorgionatili #mobiletea #nese 14
Download the SDK and Demos
@giorgionatili #mobiletea #nese 18
- iOS SDK https://github.com/Estimote/iOS-SDK
- Demos tiny.cc/beacons
Cocoa Pods
@giorgionatili #mobiletea #nese 19
CocoaPods is the dependency manager for Swift and Objective-C Cocoa projects. It has thousands of libraries and can help you scale your projects elegantly.
$ sudo gem install cocoapods $ pod setup $ pod install
20@giorgionatili #mobiletea #nese
Manage Multiple Ruby Versions
$ curl -sSL https://get.rvm.io | bash -s stable $ source ~/.rvm/scripts/rvm
Beacons broadcast their ID and Measured Power in regular intervals. ID consists of three parts: UUID (128 bits), Major (16 bits), Minor (16 bits). Measured Power is a value used by smartphones to calculate proximity.
How do beacons work?
UUID Major Minor
@giorgionatili #mobiletea #nese 21
What is a beacon region?
All beacons in Esti Museum: B9407F30-F5F8-466E-AFF9-25556B57FE6D : * : * All beacons in the North Wing: B9407F30-F5F8-466E-AFF9-25556B57FE6D : 1 : * THE beacon in the North Wing, at the Exhibit A: B9407F30-F5F8-466E-AFF9-25556B57FE6D : 1 : 1
@giorgionatili #mobiletea #nese 22
Detect movementin and out of a region
Region monitoring: what is it?
@giorgionatili #mobiletea #nese 23
Region monitoring: how does it work?
ESTBeaconManager startMonitoringForRegion:
Permissions requestAlwaysAuthorization
NSLocationAlwaysUsageDescription
Delegates beaconManager:didEnterRegion: beaconManager:didExitRegion:
@giorgionatili #mobiletea #nese 24
Beacon ranging: how does it work?
ESTBeaconManager startRangingBeaconsInRegion: !
Delegates beaconManager:didRangBeacons:inRegion:
!
Permissions requestWhenInUseAuthorization
NSLocationWhenInUseUsageDescription
@giorgionatili #mobiletea #nese 26
High-level feature that allows for enhancing apps with context of time.
What are triggers?
@giorgionatili #mobiletea #nese 27
How do triggers work?
ESTProximityRule trigger actions based on in or outside range of nearables
ESTMotionRule trigger actions based on whether a nearable is in motion or not
ESTOrientationRule trigger actions when a nearable is in a specific orientation
@giorgionatili #mobiletea #nese 28
Examples
ESTTrigger *forgotBagTrigger = [[ESTTrigger alloc] initWithRules:@[isMorningRule, insideCarRule, noBagRule] identifier:@"forgotBagTrigger"]; [self.triggerManager startMonitoringForTrigger:forgotBagTrigger];
Obj-C
let forgotBagTrigger = ESTTrigger( rules: [isMorningRule, insideCarRule, noBagRule] identifier: "forgotBag") triggerManager.startMonitoringForTrigger(forgotBagTrigger)
Swift
@giorgionatili #mobiletea #nese 29
Integrating your beacon-enabled apps with a cloud backend gives it superpowers!
How do I get even more context?
@giorgionatili #mobiletea #nese 31
Order food and pay with an app and have it delivered to your table. No queues, no checks, no hassle! !
http://downtownapp.co
33
Smart office and workplace analytics. Never worry about booking a room again. !
https://robinpowered.com
34
Smart app-launcher aware of local context. Life made easier. !
http://contrast.co/launch-center-pro/
35
Cool! How do I get started?
Build your app: developer.estimote.com !
SDK: github.com/estimote !
Example apps: tiny.cc/beacons !
Estimote Community Portal: https://community.estimote.com
37