Slide 1

Slide 1 text

Hannes Verlinde @hverlind BUILDING AN iBEACON KILLER APP

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

The Basics

Slide 4

Slide 4 text

BLUETOOTH LOW ENERGY • Bluetooth 4.0 standard • Low transfer rate • Focus on discovery and simple communication • Broadcast small advertising packets

Slide 5

Slide 5 text

• Apple’s protocol for a BLE advertising packet ! • Physical devices conforming to the specification ! • iOS 7 API to send & receive advertising packets - (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region { [manager startRangingBeaconsInRegion:(CLBeaconRegion *)region]; } Major Minor TX Power Proximity UUID Prefix iBeacon™

Slide 6

Slide 6 text

iBeacon CoreBluetooth CoreLocation iOS FRAMEWORKS

Slide 7

Slide 7 text

• Monitoring • Location: geofence region • iBeacon: beacon region • Ranging • Location: update locations • iBeacon: update proximity MONITORING vs. RANGING

Slide 8

Slide 8 text

• Low power consumption • Works indoors • Micro-precision • Track multiple beacons with single region • Beacons can move PROXIMITY vs. LOCATION

Slide 9

Slide 9 text

• Identification: UUID - Major - Minor • Received Signal Strength Indication (RSSI) • Proximity: Immediate - Near - Far • Accuracy: “Use this property to differentiate between beacons with the same proximity value. Do not use it to identify a precise location for the beacon.” BEACON PROPERTIES

Slide 10

Slide 10 text

Enough talking, let’s see some code… https://github.com/hverlind/ibeacon-beacon https://github.com/hverlind/ibeacon-observer

Slide 11

Slide 11 text

• Signal interference • Beacon cannot transmit rich data • What if no network inside store? • Easy to intercept advertised packets • Easy to impersonate a beacon • Privacy implications LIMITATIONS

Slide 12

Slide 12 text

Micro-location

Slide 13

Slide 13 text

• Inaccurate input data, short distances • Interpolation as simple approximation TRILATERATION vs. INTERPOLATION

Slide 14

Slide 14 text

But does it really work? https://github.com/hverlind/ibeacon-interpolation

Slide 15

Slide 15 text

• Calibrate TX Power in production environment • Build in redundancy by adding more beacons • Use CoreMotion for specific use cases IMPROVED POSITIONING

Slide 16

Slide 16 text

Background Processing

Slide 17

Slide 17 text

• Region entered: 10 seconds execution time • Start background task: up to 10 minutes • Background fetch: up to every 15 minutes • Alternative: decrease signal strength BACKGROUND PROCESSING

Slide 18

Slide 18 text

Hannes Verlinde @hverlind Questions?