Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]
-
Upload
francesco-novelli -
Category
Software
-
view
283 -
download
1
description
Transcript of Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]
![Page 1: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/1.jpg)
MILAN november 28th/29th, 2014
Bluetooth 4.0 and iBeacons in your iOS app [email protected] - RunCode @if9 runcode.it
Francesco Novelli
![Page 2: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/2.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
Chi sono?
1. Appassionato di tecnologia! 2. Freelance! 3. iOS Developer 4. Blogger per devApp.it 5. Ex Scrittore di libri 6. Ex Web Developer
![Page 3: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/3.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
Thanks to:
blinkar
http://blinkar.it
![Page 4: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/4.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
Agenda:
• Bluetooth 4.0 • iBeacons • Beacons alternatives • iOS 7…7.1….8!
![Page 5: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/5.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
Bluetooth 4.0: cos’è?
• BLE: Bluetooth Low Energy
• Standard, niente draft! (dal 2010)
• Chip diverso da 3.0 e non retro compatibile
• Dual Chip Device
![Page 6: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/6.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
LOW ENERGY!!!!
![Page 7: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/7.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
Bluetooth 4.0: Le novità “minori”
• Niente abbinamenti, accoppiamenti, PIN, attese • Advertising continuo (se acceso…) • Low energy
MIN 0.01 - MAX 0.5 Old Bluetooth 1
• Meno Range (50m vs 100m) • Meno Throughput (0.27Mbit/s vs 2.1 Mbit/s) • Meno Latency (6ms vs 100ms)
![Page 8: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/8.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
Bluetooth 4.0: A cosa non serve
• Auricolari • Scambio dati • Cuffie • … • e quindi??
![Page 9: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/9.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
Bluetooth 4.0: A cosa serve
• IoT Internet of Things • Orologi (Apple Watch, Android Wear, Pebble) • Sport e device fitness • Healtcare • Security • Proxymity • Automation • Everything!
![Page 10: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/10.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
Bluetooth 4.0: Profili di utilizzo
• GATT: is.gd/blegatt • Da leggere per
developer • Da leggere per ogni
hardware makers • Adattare il device BLE
con i profili
![Page 11: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/11.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
Bluetooth 4.0 e iOS
• CoreBluetooth • iOS e Mac OS X • Bluetooth ad alto livello
![Page 12: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/12.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
Bluetooth 4.0 e iOS
• CBCentralManager: • CBPeripheral: device bluetooth • CBService: servizi del device • CBCharacteristic: informazioni del servizio
![Page 13: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/13.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
Bluetooth 4.0 e iOS
CBCentralManager:
CBPeripheral
CBService
CBCharacteristic
X
123
![Page 14: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/14.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
DEMO
![Page 15: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/15.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
Bluetooth 4.0 e iOS
• iPhone 4s + • Mac
Thanks to theapplelounge.com
![Page 16: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/16.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
iBeacon
• Cos’è? • Come funziona? • Dove si trova? • Quanto costa? • Come lo uso?
![Page 17: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/17.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
iBeacon
iBeacon, a new class of low-powered, low-cost transmitters that can notify nearby iOS 7 devices of their presence, provides apps a whole new level of location awareness, such as trail markers in a park, exhibits in a museum, or product displays in stores.
![Page 18: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/18.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
iBeacon: notify…what?
• UDID (Hex ID) • Major (Int) • Minor (Int) • … • Sempre! • A chiunque, in broadcasting
![Page 19: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/19.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
iBeacon: Sample
• UUDID: E2C56DB5-DFFB-48D2-B060-D0F5A71096E0 Museo Uffizi
• Major: int 2 Piano 2
• Minor: int 13 Quadro 13
• quindi…
• sei nel Museo al secondo piano davanti al quadro 13. propongo audio guida per quel quadro.
![Page 20: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/20.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
iBeacon: cos’è fisicamente?
![Page 21: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/21.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
iBeacon da iDevice
• CoreBluetooth.framework (AirLocate sample code)
_peripheralManager = ![[CBPeripheralManager alloc] initWithDelegate:self queue:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)];
NSDictionary *peripheralData = nil; !if(_uuid && _major && _minor) !{ !CLBeaconRegion *region = ![[CLBeaconRegion alloc] initWithProximityUUID:_uuid !
major:[_major shortValue] ! minor:[_minor shortValue] !
identifier:@"com.apple.AirLocate"]; !peripheralData = [region peripheralDataWithMeasuredPower:_power]; !}
[_peripheralManager startAdvertising:peripheralData];
![Page 22: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/22.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
iBeacon: Gli altri
![Page 23: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/23.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
iBeacon: Estimote
• Largamente apprezzati • Versione stickers (accelerometro e
temperatura) • Custom SDK • Android SDK • Costo elevato
![Page 24: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/24.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
iBeacon: Gimbal
• Qualcomm! • Prezzo basso • Programmabili via iPhone • SDK potenziato (non obbligatorio) • Controllo via web (con SDK proprietario) • Android SDK • Consumo batteria da rivedere • Versione Tag o Device
![Page 25: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/25.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
iBeacon: Consumi
http://is.gd/ibeaconcomp
![Page 26: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/26.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
iBeacon: Come lo uso?
NOTIFY MONITORING
![Page 27: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/27.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
![Page 28: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/28.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
iBeacon: Notify
• CLLocationManager e delegate • Metodo delegate chiamato ad ogni entrata o
uscita da una CLBeaconRegion (campo iBeacon)
• Disponibile anche ad app in background • Si può osservare un UUID o una iBeacon
(UUID + Major + Minor)
![Page 29: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/29.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
iBeacon: Notify
_locationManager = [[CLLocationManager alloc] init]; !_locationManager.delegate = self; ! !CLBeaconRegion *region = nil; !_uuid = [[NSUUID alloc] initWithUUIDString:@“E2C56DB5-DFFB-48D2-B060-D0F5A71096E0"]; !region = ![[CLBeaconRegion alloc] initWithProximityUUID:_uuid!
identifier:@"com.apple.AirLocate"]; !region.notifyOnEntry = YES; !region.notifyOnExit = YES; !region.notifyEntryStateOnDisplay = YES; ! ![_locationManager startMonitoringForRegion:region];
![Page 30: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/30.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
iBeacon: Notify delegate
- (void)locationManager:(CLLocationManager *)manager ! didEnterRegion:(CLRegion *)region;
- (void)locationManager:(CLLocationManager *)manager ! didExitRegion:(CLRegion *)region;
- (void)locationManager:(CLLocationManager *)manager ! didDetermineState:(CLRegionState)state ! forRegion:(CLRegion *)region; !
![Page 31: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/31.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
iBeacon: Notify, quando?
• Location awareness push notification • Interattività dell’app • Pagamenti
![Page 32: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/32.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
iBeacon: Monitoring
• CLLocationManager e delegate • Metodo del delegate invocato ogni secondo (se
ci sono 1 o più beacon) • Array di beacons
![Page 33: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/33.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
iBeacon: Monitoring
_locationManager = [[CLLocationManager alloc] init]; !_locationManager.delegate = self; ! !CLBeaconRegion *region = nil; !_uuid = ![[NSUUID alloc] initWithUUIDString:@“E2C56DB5-DFFB-48D2-B060-D0F5A71096E0"]; !region = [[CLBeaconRegion alloc] initWithProximityUUID:_uuid
identifier:@"com.apple.AirLocate"]; ![_locationManager startRangingBeaconsInRegion:region]; !!!- (void)locationManager:(CLLocationManager *)manager ! didRangeBeacons:(NSArray *)beacons! inRegion:(CLBeaconRegion *)region { !!!
NSLog(@"Major: %@, Minor: %@, Acc: %.2fm %li", beacon.major, beacon.minor, beacon.accuracy, beacon.proximity); !!}
![Page 34: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/34.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
iBeacon: Monitoring, quando?
• Geofencing al chiuso • Elencare beacons vicini • Ottenere le distanza da un beacon • Visualizzare informazioni con app aperta
![Page 35: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/35.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
iBeacon: iOS Roadmap
• 7.0 Introduzione • 7.1 Notify con app killate
Velocità maggiore per le notifiche • 8.0 Continuity Icon
![Page 36: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/36.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
iBeacon: Case history
• MLB • Virgin • Apple Store • Musei Palazzo Farnese • Nazioni unite • Parchi floreali • Caccia al tesoro • …
![Page 37: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/37.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
iBeacon: Android
• Android 4.3+ (e.g. Samsung Galaxy S3/S4/S4 Mini, Samsung Galaxy Note 2/3, HTC One, Google/LG Nexus 7 2013 version/Nexus 4/Nexus 5, HTC Butterfly, OnePlus One)
• SDK produttori (Gimbal, Estimote, etc) • AltBeacon Project
![Page 38: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/38.jpg)
MILAN november 28th/29th, 2014 – Francesco Novelli
iBeacon: Resources
• iBeacon Bible • developer.apple.com/ibeacon • WWDC 2014 Session 307 – What’s New In
Core Location • AirLocate Sample Code
![Page 39: Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]](https://reader034.fdocuments.in/reader034/viewer/2022052623/559cf5661a28ab94438b46d4/html5/thumbnails/39.jpg)
MILAN november 28th/29th, 2014
Bluetooth 4.0 and iBeacons in your iOS app [email protected] - RunCode @if9 runcode.it
Thanks Francesco Novelli