Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building an iBeacon Killer app

Building an iBeacon Killer app

iBeacon talk presented at mdevcon on March 8th 2014 in Amsterdam.

Hannes Verlinde

March 08, 2014
Tweet

More Decks by Hannes Verlinde

Other Decks in Technology

Transcript

  1. BLUETOOTH LOW ENERGY • Bluetooth 4.0 standard • Low transfer

    rate • Focus on discovery and simple communication • Broadcast small advertising packets
  2. • 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™
  3. • Monitoring • Location: geofence region • iBeacon: beacon region

    • Ranging • Location: update locations • iBeacon: update proximity MONITORING vs. RANGING
  4. • Low power consumption • Works indoors • Micro-precision •

    Track multiple beacons with single region • Beacons can move PROXIMITY vs. LOCATION
  5. • 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
  6. • 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
  7. • Inaccurate input data, short distances • Interpolation as simple

    approximation TRILATERATION vs. INTERPOLATION
  8. • Calibrate TX Power in production environment • Build in

    redundancy by adding more beacons • Use CoreMotion for specific use cases IMPROVED POSITIONING
  9. • 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