where camp berlin 2014 / presentation by kitlocate - a yandex company
DESCRIPTION
This is the presentation we gave at the Where Camp Berlin. We focused on some of the lessons we have learned a long the way to creating an always on mobile location SDK that helps developers create a contextual aware applications. Issue covered: Issues like: Reading and sifting wrong location samples from GPS, Cell and WiFi. Ensuring power efficiently of sampling Data plan management Managing users perceptions GPS icon Running in the background Reading and reacting to the device temperature Privacy and more on www.KitLocate.comTRANSCRIPT
Making Contextual Awareness a Reality on a Mass Scale while Keeping it Personal
Creating an Always-on Location SDK
• Tracking the app user’s location 24/7
• Runs in the background
• Efficiently
• Enabling smart engagement
• Make apps relevant
– Provide relevant info and offers at the right
time and place!
• Provide better service and value
– Smart reminders
• Reduce spam
– Enable truly personal marketing based on
consumer needs
Contextual awareness is
great!
How did we get here?
• The road from app to SDK
• KitLocate in brief
• Developing an SDK and platform
that enables always-on location
features
• Yandex
• Largest European Internet Business
– $9B Market Cap
– $1,207 B Revenues (2013)
– YNDX (NASDAQ) (2011)
• More than 6000 people strong
• 17 offices in 8 countries (Berlin!)
• #1 Internet Destination in Russia (61%)
• CIS and Turkey
• Traffic layer • Driving directions• Geographic search• Satellite imagery• Vector map data• Map rendering• Panoramas
Sensing location on a mobile device
GPS Cell towerWiFiBluetooth NFC
AccelormeterGyroscopeMagnometerTemperatureHumidity
MicrophonesCamerasLightProximityTouch
Criteria Cell Wi-Fi GPS
~Accuracy(radius in meters)
500 - 2000 30 - 200 5 - 20
Energy consumption
Low* Low* High
Limitations Signalavailability
Wi-Fi enabledand mapping
GPS enabled and initial focus time **
Reliability Reliable (-) Sometimes… Reliable (-)
Location Sensor Attributes
Obstacles along the way…
• 24/7 location sampling
• Low tolerance for power
hungry apps
LOCATION SAMPLING IS
VERY POWER HUNGRY
How to consume less (industry lowest)
• Intelligent sampling of sensors (a few examples):
• Use accelerometer to verify movement before periodic sampling
• Increase sample rate and quality as user gets close to Geo
Fence
• A lot of smart coding tradecraft
• Running efficiently in the background
• Internet connection management :
• Prefer using WIFI when available
• Prefer sending big data chunks in low frequency
Sometimes sensors do not tell the whole
truth
• THE PROBLEM:
• Some devices don’t receive accelerometer changes
when the screen is off
• THE SOLUTION:
• Check if during an interval of the accelerometer you
received any changes – if not, remember it and stop
using the accelerometer when the screen is off
Accelerometer Problem
• THE PROBLEM:
• Some devices receive upon the initiation of the
iteration old location from last iteration, but with a new
timestamp.
• THE SOLUTION:
• Examine location history over a longer period and
ignore the locations which are recognized from old
iterations.
Location Sample
Problem
• THE PROBLEM:
• Wi-Fi – Incorrect mapping can cause false locations
• Cell - Reception problems can cause significant location
change
• GPS – Mocking locations can cause false locations
• THE SOLUTION:
• We don’t trust the locations we receive. We compare it to
the user movement pattern and verify its location
False Location
• Missing Hardware
• Check every hardware before using it – not all phones
have GPS…
• Missing Software
• Some ROMs don’t offer Google Play services,
especially devices sold in China / Russia / LATAM.
Missing Hardware /
Software
USER’S
PERCEPTION
ISSUES
HOW DOES IT MEASURE?
Heat Burns – subjective user defined
3rd party Applications
PHONE
HEATING
PHONE
HEATING
HOW TO AVOID?
• SDK activity is managed in light of the temperature of
the device, if need be:
• Skip internet connection
• Disable sensors
PHONE HEATING
GPS ICON
• Minimize your use of GPS:
• Listen (passive) to GPS state and use that data
• Run GPS only when screen is off
• Run GPS for short period of time
• If you are not essential:
Don’t be there!
• Run efficiently in the background
RUNNING APPS`
PRIVACY
• Legal
• Policy
• User perception
• Intelligent sampling!
– Sample according to application’s needs
– Use location data from other running apps
– Escalate from low power to GPS only when
needed
• Overcome and fix sample errors
• Minimize battery and data consumption
• Manage users’ perceptions
SDK recap
• Geo-fencing
• Better foreground
& single location
USING KITLOCATE IN YOUR CODE
• Periodic location
• Social
• Movement detection
• Push notification platform (Cloud and SDK)
• Remote Geo Fence management (Cloud)