Slides de la présentation iBeacon pour la session CocoaHeads Toulouse du 30 janvier 2014.
Certains slides ont des infos complémentaires dans les notes de présentation, ne pas hésiter à télécharger pour les voir.
2. • Arnaud Boudou
– Développeur Java / iOS chez ekito
– Twitter : @boudouarnaud
– Web (ekito) :
http://www.ekito.fr/people?author_name=aboudou
– Web (perso) : http://goddess-gate.com/
30/01/2014
www.ekito.fr
2
3. Sommaire
• La localisation indoor
• Qu’est-ce qu’iBeacon
• Avec iOS
• Limitations
30/01/2014
www.ekito.fr
3
4. La localisation indoor
• Positionnement géographique, les différentes
méthodes :
– Réseau cellulaire
– Points d’accès WIFI
– GPS
• Dans certains cas, ces solutions ne sont pas viables
en intérieur
• Solution proposée par Apple : iBeacon
30/01/2014
www.ekito.fr
4
5. Qu’est ce qu’iBeacon ?
• iBeacon ≠ pomme au bacon
• iBeacon = iBalise / iPhare
• Émetteur radio basé sur la norme BLE (Bluetooth
Low Energy)
• Faible portée : environ 10m, fonction de la puissance
d’émission
• Forte autonomie, fonction de la puissance d’émission
30/01/2014
www.ekito.fr
5
6. Qu’est ce qu’iBeacon ?
• Techniquement :
– Utilise un champ optionnel des paquets d’avertissement
– Message sous la forme
02 | 15 | E2 0A 39 F4 73 F5 4B C4 A1 2F 17 D1 AD 07 A9 61 | 00 00 | 00 00 | C8
•
•
•
•
•
•
ID : toujours 0x02
Data length : taille du message en octets. Ici 0x15 (= 21 octets)
UUID : identifiant iBeacon (différent de l’identifiant Bluetooth)
Numéro major
Numéro minor
TX Power : niveau de puissance, utilisé pour « calculer » la distance entre
l’iBeacon et le périphérique iOS
30/01/2014
www.ekito.fr
6
7. Qu’est ce qu’iBeacon ?
• Les identifiants d’un iBeacon :
– UUID : Identifiant semi-unique, pour une entreprise
– Major : Identifiant d’un des locaux de l’entreprise
– Minor : Identifiant d’un lieu précis du local précédent
• Exemple Apple Store
– UUID identique pour l’ensemble des AS
– Major en fonction d’un AS donné
– Minor en fonction d’un rayon donné de l’AS correspondant
30/01/2014
www.ekito.fr
7
8. Compatibilité
• Compatibilité :
– iOS 7 +
•
•
•
•
iPhone 4S et suivants
iPad 3 et suivants
iPad mini et suivants
iPod Touch 5 et suivants
– OS X 10.9 + machines équipées en Bluetooth 4.0 (en
émetteur)
– Android 4.3 + devices équipés en Bluetooth 4.0
– Machines sous Linux avec BlueZ (en émetteur)
30/01/2014
www.ekito.fr
8
9. Avec iOS
• Dépend de CoreLocation (et non CoreBluetooth) :
NSUUID *uuid = [[NSUUID alloc]
initWithUUIDString:@"B9407F30-F5F8-466E-AFF9-25556B57FE6D"];
CLBeaconMajorValue major = 42176;
CLBeaconMinorValue minor = 34023;
NSString *regionIdentifier = @"com.example.identifier.ibeacon";
CLBeaconRegion *beaconRegion = [[CLBeaconRegion alloc]
initWithProximityUUID:uuid
major:major
minor:minor
identifier:regionIdentifier];
30/01/2014
www.ekito.fr
9
10. Avec iOS
• Deux types de méthodes
– Dépendent de CLLocationManagerDelegate
– Méthode de type « Ranging »
– Méthode de type « Monitoring »
30/01/2014
www.ekito.fr
10
11. Avec iOS
• Méthode de type Ranging :
– Uniquement quand l’application est active au premier plan
– Permet de récupérer les informations de l’iBeacon détecté
•
•
•
•
•
•
30/01/2014
UUID
Major
Minor
RSSI
Distance
Accuracy
www.ekito.fr
11
12. Avec iOS
• Une seule méthode
-(void)locationManager:(CLLocationManager *)manager
didRangeBeacons:(NSArray *)beacons
inRegion:(CLBeaconRegion *)region
Est appelée quand le statut d’un iBeacon à portée du iDevice change.
30/01/2014
www.ekito.fr
12
13. Avec iOS
• Méthodes de type Monitoring:
– Fonctionnent aussi avec l’application en arrière plan
– Doivent aussi fonctionner avec application arrêtée (d’après
Doc Apple), mais échec.
– Permettent seulement de savoir quand on rentre ou sort
d’une région.
30/01/2014
www.ekito.fr
13
14. Avec iOS
• Deux méthodes
- (void)locationManager:(CLLocationManager *)manager
didEnterRegion:(CLRegion *)region
Est appelée quand l’iDevice rentre dans une région définie.
- (void)locationManager:(CLLocationManager *)manager
didExitRegion:(CLRegion *)region
Est appelée quand l’iDevice sort d’une région définie.
30/01/2014
www.ekito.fr
14
15. Limitations
• Pour le moment, techno Apple-centrée (pas de
support officiel pour les autres OS)
• UUID iBeacon ≠ UUID Bluetooth
– Si un iBeacon propose des services Bluetooth, c’est à
l’application de faire le lien entre les deux
30/01/2014
www.ekito.fr
15
16. Ressources
• Salade de bacon à la pomme : http://www.elle.fr/Elle-a-Table/Recettesde-cuisine/salade-de-bacon-a-la-pomme-549374
• Doc Apple : Ahem… (a.k.a. /dev/null, HTTP 404, etc.)
• Gestion du monitoring en avant et arrière plan (point de vue
performances) :
http://developer.radiusnetworks.com/2013/11/13/ibeacon-monitoring-inthe-background-and-foreground.html
• Un projet d’exemple pour le monitoring et ranging iBeacon :
https://github.com/Ekito/TestBeacon
• Emetteur iBeacon pour OS X : https://github.com/lgaches/BeaconEmitter
• Billet sir iBeacon, avec extraits de code et prototypes :
http://www.ekito.fr/people/?p=3698
30/01/2014
www.ekito.fr
16
18. Plus d’informations
Laurent Blondon
ekito
SARL au capital de 150 000 €
RCS Toulouse 485 109 300
1 place de la bourse 31000 Toulouse
contact@ekito.fr – www.ekito.fr
30/01/2014
www.ekito.fr
Responsable Commercial
Tél. : + 33 (0) 659 976 860
lblondon@ekito.fr
18
19. Copyright
• Vous êtes libres de :
– Reproduire, distribuer et communiquer l’œuvre
– Adapter l’œuvre
– D’utiliser cette œuvre à des fins commerciales
• Selon les conditions suivantes :
– Vous devez attribuer l’œuvre de la manière indiquée par
l’auteur de l’œuvre ou le titulaire des droits (mais pas
d’une manière qui suggérerait qu’ils vous
approuvent, vous ou votre utilisation de l’œuvre).
http://creativecommons.org/licenses/by/3.0/fr/
30/01/2014
www.ekito.fr
19