M E T H O D S O F L O C AT I O N T R A C K I N G
• On-device sensors (GPS etc.)
• Network provider tracking
• Indoor Wi-Fi scanning
• “Smart” rubbish bins…
W H Y T R A C K D E V I C E L O C AT I O N
• Safety & security
• Logistics
• Friend finders
• Fitness
• Journaling/quantified self
• Anticipatory computing
H O W I S A L O C AT I O N D E T E R M I N E D
Sensor Accuracy SpeedPower
consumptionCaveats
GPS ~40mSlow
(3 seconds+)High
Rarely works indoors
WiFi triangulation ~70m Fast MediumRarely works in
rural areas
Cell triangulation Cell ID 200m-1km Fast Low
R E Q U E S T I N G A S I N G L E L O C AT I O N
• Even single location updates come as an asynchronous stream – not a single final value
• Initial location is often cached and stale
• The user may be moving around as you request their location!
A N AT O M Y O F A L O C AT I O N
• latitude
• longitude
• altitude
• accuracy (horizontal and vertical)
• speed
• bearing
• timestamp
T R A C K I N G C H A L L E N G E S
• Power consumption
• Multitasking/background processing support
• Privacy settings (global & per-app)
• Device reboots
• Airplane mode, Wi-Fi disabled, cellular disabled
• Testing
S TA N D A R D L O C AT I O N S E R V I C E S
• Delivers a constant stream of locations over time
• Supports background multitasking (limited on Windows Phone)
• Power hungry with default settings
• Tracking won’t survive device reboots*
• Consider power impact of your callback code as well
S TA N D A R D L O C AT I O N S E R V I C E S - I M P R O V I N G P O W E R C O N S U M P T I O N
• On iOS & Windows Phone, manage power usage through location manager settings:
• desired accuracy level
• distance or time threshold between notifications – helps to reduce processing overhead
• iPhone 5+ & Google Nexus 5 support deferred updates & sensor batching
S TA N D A R D L O C AT I O N S E R V I C E S - I M P R O V I N G P O W E R C O N S U M P T I O N
iOS desiredAccuracy Power usage Highest power sensor
kCLLocationAccuracyBestForNavigation High GPS+
kCLLocationAccuracyBest High GPS
kCLLocationAccuracyNearestTenMeters High GPS
kCLLocationAccuracyHundredMetersMedium (urban)
High (rural)WiFi (urban) GPS (rural)
kCLLocationAccuracyKilometer Low Cell
kCLLocationAccuracyThreeKilometers Low Cell
Android priorities Accuracy Power usageHighest power sensor
used
PRIORITY_HIGH_ACCURACY Building-level High GPS
PRIORITY_BALANCED_POWER _ACCURACY Block-level Medium WiFi
PRIORITY_LOW_POWER City-level Low Cell
PRIORITY_NO_POWER Varies None Varies
S TA N D A R D L O C AT I O N S E R V I C E S - I M P R O V I N G P O W E R C O N S U M P T I O N
S I G N I F I C A N T C H A N G E N O T I F I C AT I O N S
• Only available on iOS
• Low power overhead, relies on cell tower transitions
• On average notification triggered after a movement of around 500m and more than 5 minutes
• Survives reboots of the device
• Very useful in hybrid strategies
G E O F E N C E S
• Geofence is a region defined by a co-ordinate and radius (in this context)
• Can request background notification of entry or exit of the region (& dwelling on Android)
G E O F E N C E L I M I TAT I O N S
• Often quite a lag, doesn’t always trigger
• Not available on Windows Phone
• iOS supports up to 20 per app, Android up to 100
• Survives reboots on iOS, not on Android
H Y B R I D S T R AT E G I E S
Your app will have unique tracking needs; the default strategies are rarely the most appropriate
Find the ideal balance of quality, power use, granularity and frequency for your app
A N A S I D E : A P P L E M 7 & S I M I L A R
• iPhone 5S shipped with Apple M7 “motion co-processor”
• Does not relate to location data
• Google Nexus 5 and Moto X ship with “hardware sensor batching” – equivalent functionality
• Currently provides step counting & activity detection
T O O L S
• Profiling tools allow you to monitor use of GPS over time
• For iOS use Instruments, untethered capture supported via iPhone settings
• For Android use Qualcomm Trepn plugin for Eclipse
B L U E T O O T H B E A C O N S
• “iBeacon” – Apple specification for Bluetooth 4 location beacons
• Indoor high-accuracy location triggers
• Indoor positioning
• Opt-in via install of app tied to iBeacon namespace
T H A N K S !
@richardkeen
iOS reference: http://bit.ly/19O9PZS
Android reference: http://bit.ly/18mMnSX
Windows Phone reference: http://bit.ly/1aJu6y8