19
Présentation iBeacon Arnaud Boudou 20/06/202 2

Présentation iBeacon (cocoaheads toulouse)

Embed Size (px)

DESCRIPTION

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.

Citation preview

Page 1: Présentation iBeacon (cocoaheads toulouse)

Présentation iBeacon

Arnaud Boudou 13/04/2023

Page 2: Présentation iBeacon (cocoaheads toulouse)

13/04/2023 www.ekito.fr 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/

Page 3: Présentation iBeacon (cocoaheads toulouse)

Sommaire

• La localisation indoor• Qu’est-ce qu’iBeacon• Avec iOS• Limitations

13/04/2023 www.ekito.fr 3

Page 4: Présentation iBeacon (cocoaheads toulouse)

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

13/04/2023 www.ekito.fr 4

Page 5: Présentation iBeacon (cocoaheads toulouse)

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

13/04/2023 www.ekito.fr 5

Page 6: Présentation iBeacon (cocoaheads toulouse)

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

13/04/2023 www.ekito.fr 6

Page 7: Présentation iBeacon (cocoaheads toulouse)

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

13/04/2023 www.ekito.fr 7

Page 8: Présentation iBeacon (cocoaheads toulouse)

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)

13/04/2023 www.ekito.fr 8

Page 9: Présentation iBeacon (cocoaheads toulouse)

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];

13/04/2023 www.ekito.fr 9

Page 10: Présentation iBeacon (cocoaheads toulouse)

Avec iOS

• Deux types de méthodes– Dépendent de CLLocationManagerDelegate– Méthode de type « Ranging »– Méthode de type « Monitoring »

13/04/2023 www.ekito.fr 10

Page 11: Présentation iBeacon (cocoaheads toulouse)

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é

• UUID• Major• Minor• RSSI• Distance• Accuracy

13/04/2023 www.ekito.fr 11

Page 12: Présentation iBeacon (cocoaheads toulouse)

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.

13/04/2023 www.ekito.fr 12

Page 13: Présentation iBeacon (cocoaheads toulouse)

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.

13/04/2023 www.ekito.fr 13

Page 14: Présentation iBeacon (cocoaheads toulouse)

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.

13/04/2023 www.ekito.fr 14

Page 15: Présentation iBeacon (cocoaheads toulouse)

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

13/04/2023 www.ekito.fr 15

Page 16: Présentation iBeacon (cocoaheads toulouse)

Ressources

13/04/2023 www.ekito.fr 16

• Salade de bacon à la pomme : http://www.elle.fr/Elle-a-Table/Recettes-de-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-in-the-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

Page 17: Présentation iBeacon (cocoaheads toulouse)

Des questions ?

13/04/2023 www.ekito.fr 17

Page 18: Présentation iBeacon (cocoaheads toulouse)

Plus d’informations

ekitoSARL au capital de 150 000 €RCS Toulouse 485 109 3001 place de la bourse 31000 [email protected] – www.ekito.fr

13/04/2023 www.ekito.fr 18

Laurent Blondon Responsable CommercialTél. : + 33 (0) 659 976 [email protected]

Page 19: Présentation iBeacon (cocoaheads toulouse)

Copyright

13/04/2023 www.ekito.fr 19

• 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/