Where Camp Berlin 2014 / Presentation by KitLocate - a Yandex company

Preview:

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.com

Citation preview

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)

Thank you

Dan Atzmon dan@Kitlocate.com

Hadar Dubinhadar@KitlLocate.com