Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Droidcon London 2010  - Create Killer Location Apps
Upcoming SlideShare
Loading in...5
×

Droidcon London 2010 - Create Killer Location Apps

1,751

Published on

My talk in the API / SDK track at Droidcon London 2010.

Published in: Technology, Business
0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,751
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

  • Audience have used location services. How many used Rummble?
    Some already building location-centric apps.
    Some have apps and trying to work out how to integrate location.
  • Thanks for making first session.
    We living in the distant future... (according to Doc Brown) So let’s travel back in time to 1995 for some interactive trivia. I hope you’re awake!
  • 0.4% of world pop
  • 8.6% world pop
  • 8.6% world pop
  • Making assumption that most people on Twitter or other social networks have FB account.
    FB Launched in 2004, so < 3 years to get achieve same growth as internet.
  • Market size Google Maps, Local Search or Check-in service?
    Network effect... next slide
  • 1908 Theodore Vail, Bell Telephone annual report.
    Network effect much greater now - more connections, accelerated growth...
    ...building upon internet and social.
  • Rummble’s Q3 revenue....
    28.8% of world pop
  • Rummble’s Q3 revenue....
    28.8% of world pop
  • Rummble’s Q3 revenue....
    28.8% of world pop





  • Does this fit with your business?
  • Does this fit with your business?
  • Does this fit with your business?
  • Does this fit with your business?
  • Does this fit with your business?
  • Wifi - Works well in built up areas and indoors
    Cell ID - Works well, quite accurate with triangulation
    GPS - Long fix time, high accuracy, doesn’t work well in built-up areas....
  • Wifi - Works well in built up areas and indoors
    Cell ID - Works well, quite accurate with triangulation
    GPS - Long fix time, high accuracy, doesn’t work well in built-up areas....

  • What is your tolerance and implications on the UI?
    At what point do you reload data?
    Wifi - Works well in built up areas and indoors
    Cell ID - Works well, quite accurate with triangulation
    GPS - Long fix time, high accuracy, doesn’t work well in built-up areas....
    Lead on to... but there’s one main alternative.
  • What is your tolerance and implications on the UI?
    At what point do you reload data?
    Wifi - Works well in built up areas and indoors
    Cell ID - Works well, quite accurate with triangulation
    GPS - Long fix time, high accuracy, doesn’t work well in built-up areas....
    Lead on to... but there’s one main alternative.
  • What is your tolerance and implications on the UI?
    At what point do you reload data?
    Wifi - Works well in built up areas and indoors
    Cell ID - Works well, quite accurate with triangulation
    GPS - Long fix time, high accuracy, doesn’t work well in built-up areas....
    Lead on to... but there’s one main alternative.
  • What is your tolerance and implications on the UI?
    At what point do you reload data?
    Wifi - Works well in built up areas and indoors
    Cell ID - Works well, quite accurate with triangulation
    GPS - Long fix time, high accuracy, doesn’t work well in built-up areas....
    Lead on to... but there’s one main alternative.
  • What is your tolerance and implications on the UI?
    At what point do you reload data?
    Wifi - Works well in built up areas and indoors
    Cell ID - Works well, quite accurate with triangulation
    GPS - Long fix time, high accuracy, doesn’t work well in built-up areas....
    Lead on to... but there’s one main alternative.
  • What is your tolerance and implications on the UI?
    At what point do you reload data?
    Wifi - Works well in built up areas and indoors
    Cell ID - Works well, quite accurate with triangulation
    GPS - Long fix time, high accuracy, doesn’t work well in built-up areas....
    Lead on to... but there’s one main alternative.
  • What is your tolerance and implications on the UI?
    At what point do you reload data?
    Wifi - Works well in built up areas and indoors
    Cell ID - Works well, quite accurate with triangulation
    GPS - Long fix time, high accuracy, doesn’t work well in built-up areas....
    Lead on to... but there’s one main alternative.

  • Crowd sourced historical population density API.
    Samsung - Android market rules.. ? check it out first
  • Crowd sourced historical population density API.
    Samsung - Android market rules.. ? check it out first
  • Crowd sourced historical population density API.
    Samsung - Android market rules.. ? check it out first
  • Crowd sourced historical population density API.
    Samsung - Android market rules.. ? check it out first
  • The Geolocation object is used by scripts to programmatically determine the location information associated with the hosting device. The location information is acquired by applying a user-agent specific algorithm, creating a Position object, and populating that object with appropriate data accordingly.

    Objects implementing the Navigator interface (e.g. the window.navigator object) must also implement the NavigatorGeolocation interface [NAVIGATOR]. An instance ofNavigatorGeolocation would be then obtained by using binding-specific casting methods on an instance of Navigator.


    4.1 Privacy considerations for implementors of the Geolocation API
    User agents must not send location information to Web sites without the express permission of the user. User agents must acquire permission through a user interface, unless they have prearranged trust relationships with users, as described below. The user interface must include the URI of the document origin [DOCUMENTORIGIN]. Those permissions that are acquired through the user interface and that are preserved beyond the current browsing session (i.e. beyond the time when the browsing context[BROWSINGCONTEXT] is navigated to another URL) must be revocable and user agents must respect revoked permissions.
  • The Geolocation object is used by scripts to programmatically determine the location information associated with the hosting device. The location information is acquired by applying a user-agent specific algorithm, creating a Position object, and populating that object with appropriate data accordingly.

    Objects implementing the Navigator interface (e.g. the window.navigator object) must also implement the NavigatorGeolocation interface [NAVIGATOR]. An instance ofNavigatorGeolocation would be then obtained by using binding-specific casting methods on an instance of Navigator.


    4.1 Privacy considerations for implementors of the Geolocation API
    User agents must not send location information to Web sites without the express permission of the user. User agents must acquire permission through a user interface, unless they have prearranged trust relationships with users, as described below. The user interface must include the URI of the document origin [DOCUMENTORIGIN]. Those permissions that are acquired through the user interface and that are preserved beyond the current browsing session (i.e. beyond the time when the browsing context[BROWSINGCONTEXT] is navigated to another URL) must be revocable and user agents must respect revoked permissions.
  • The Geolocation object is used by scripts to programmatically determine the location information associated with the hosting device. The location information is acquired by applying a user-agent specific algorithm, creating a Position object, and populating that object with appropriate data accordingly.

    Objects implementing the Navigator interface (e.g. the window.navigator object) must also implement the NavigatorGeolocation interface [NAVIGATOR]. An instance ofNavigatorGeolocation would be then obtained by using binding-specific casting methods on an instance of Navigator.


    4.1 Privacy considerations for implementors of the Geolocation API
    User agents must not send location information to Web sites without the express permission of the user. User agents must acquire permission through a user interface, unless they have prearranged trust relationships with users, as described below. The user interface must include the URI of the document origin [DOCUMENTORIGIN]. Those permissions that are acquired through the user interface and that are preserved beyond the current browsing session (i.e. beyond the time when the browsing context[BROWSINGCONTEXT] is navigated to another URL) must be revocable and user agents must respect revoked permissions.
  • The Geolocation object is used by scripts to programmatically determine the location information associated with the hosting device. The location information is acquired by applying a user-agent specific algorithm, creating a Position object, and populating that object with appropriate data accordingly.

    Objects implementing the Navigator interface (e.g. the window.navigator object) must also implement the NavigatorGeolocation interface [NAVIGATOR]. An instance ofNavigatorGeolocation would be then obtained by using binding-specific casting methods on an instance of Navigator.


    4.1 Privacy considerations for implementors of the Geolocation API
    User agents must not send location information to Web sites without the express permission of the user. User agents must acquire permission through a user interface, unless they have prearranged trust relationships with users, as described below. The user interface must include the URI of the document origin [DOCUMENTORIGIN]. Those permissions that are acquired through the user interface and that are preserved beyond the current browsing session (i.e. beyond the time when the browsing context[BROWSINGCONTEXT] is navigated to another URL) must be revocable and user agents must respect revoked permissions.
  • The Geolocation object is used by scripts to programmatically determine the location information associated with the hosting device. The location information is acquired by applying a user-agent specific algorithm, creating a Position object, and populating that object with appropriate data accordingly.

    Objects implementing the Navigator interface (e.g. the window.navigator object) must also implement the NavigatorGeolocation interface [NAVIGATOR]. An instance ofNavigatorGeolocation would be then obtained by using binding-specific casting methods on an instance of Navigator.


    4.1 Privacy considerations for implementors of the Geolocation API
    User agents must not send location information to Web sites without the express permission of the user. User agents must acquire permission through a user interface, unless they have prearranged trust relationships with users, as described below. The user interface must include the URI of the document origin [DOCUMENTORIGIN]. Those permissions that are acquired through the user interface and that are preserved beyond the current browsing session (i.e. beyond the time when the browsing context[BROWSINGCONTEXT] is navigated to another URL) must be revocable and user agents must respect revoked permissions.
  • 1 = UTC(universal time, coordinated) of position fix
    2 = Data status (A=good, V=navigation receiver warning)
    3 = Current Latitude
    4 = North/South in Latitude Hemisphere
    5 = Current Longitude
    6 = East/West in Longitude Hemisphere
    7 = Speed over ground in knots
    8 = (Direction of travel N:0°, E:90°, S:180°, W:270°)
    9 = UT DateStamp
    10 = Magnetic variation degrees (Easterly var. subtracts from true course)
    11 = East/West
    12 = Checksum
  • 1 = UTC(universal time, coordinated) of position fix
    2 = Data status (A=good, V=navigation receiver warning)
    3 = Current Latitude
    4 = North/South in Latitude Hemisphere
    5 = Current Longitude
    6 = East/West in Longitude Hemisphere
    7 = Speed over ground in knots
    8 = (Direction of travel N:0°, E:90°, S:180°, W:270°)
    9 = UT DateStamp
    10 = Magnetic variation degrees (Easterly var. subtracts from true course)
    11 = East/West
    12 = Checksum
  • 1 = UTC(universal time, coordinated) of position fix
    2 = Data status (A=good, V=navigation receiver warning)
    3 = Current Latitude
    4 = North/South in Latitude Hemisphere
    5 = Current Longitude
    6 = East/West in Longitude Hemisphere
    7 = Speed over ground in knots
    8 = (Direction of travel N:0°, E:90°, S:180°, W:270°)
    9 = UT DateStamp
    10 = Magnetic variation degrees (Easterly var. subtracts from true course)
    11 = East/West
    12 = Checksum
  • 1 = UTC(universal time, coordinated) of position fix
    2 = Data status (A=good, V=navigation receiver warning)
    3 = Current Latitude
    4 = North/South in Latitude Hemisphere
    5 = Current Longitude
    6 = East/West in Longitude Hemisphere
    7 = Speed over ground in knots
    8 = (Direction of travel N:0°, E:90°, S:180°, W:270°)
    9 = UT DateStamp
    10 = Magnetic variation degrees (Easterly var. subtracts from true course)
    11 = East/West
    12 = Checksum
  • 1 = UTC(universal time, coordinated) of position fix
    2 = Data status (A=good, V=navigation receiver warning)
    3 = Current Latitude
    4 = North/South in Latitude Hemisphere
    5 = Current Longitude
    6 = East/West in Longitude Hemisphere
    7 = Speed over ground in knots
    8 = (Direction of travel N:0°, E:90°, S:180°, W:270°)
    9 = UT DateStamp
    10 = Magnetic variation degrees (Easterly var. subtracts from true course)
    11 = East/West
    12 = Checksum
  • 1 = UTC(universal time, coordinated) of position fix
    2 = Data status (A=good, V=navigation receiver warning)
    3 = Current Latitude
    4 = North/South in Latitude Hemisphere
    5 = Current Longitude
    6 = East/West in Longitude Hemisphere
    7 = Speed over ground in knots
    8 = (Direction of travel N:0°, E:90°, S:180°, W:270°)
    9 = UT DateStamp
    10 = Magnetic variation degrees (Easterly var. subtracts from true course)
    11 = East/West
    12 = Checksum
  • So you’ve established the user location? What next?
  • Context - time, historical activity (user and everyone), social connections, etc..
  • Context - time, historical activity (user and everyone), social connections, etc..
  • Context - time, historical activity (user and everyone), social connections, etc..
  • Context - time, historical activity (user and everyone), social connections, etc..
  • Context - time, historical activity (user and everyone), social connections, etc..
  • Context - time, historical activity (user and everyone), social connections, etc..
  • Context - time, historical activity (user and everyone), social connections, etc..
  • Cold start problem not having
    Commercial license expensive - especially when location isn’t core and you want to scale globally.
    We’ve looked at available OS solutions (note examples) and the quality is bad.
    Scraping can be more expensive and time consuming. Can run into legal issues. Quality?
    Unified open location DB
  • Cold start problem not having
    Commercial license expensive - especially when location isn’t core and you want to scale globally.
    We’ve looked at available OS solutions (note examples) and the quality is bad.
    Scraping can be more expensive and time consuming. Can run into legal issues. Quality?
    Unified open location DB
  • Cold start problem not having
    Commercial license expensive - especially when location isn’t core and you want to scale globally.
    We’ve looked at available OS solutions (note examples) and the quality is bad.
    Scraping can be more expensive and time consuming. Can run into legal issues. Quality?
    Unified open location DB
  • Cold start problem not having
    Commercial license expensive - especially when location isn’t core and you want to scale globally.
    We’ve looked at available OS solutions (note examples) and the quality is bad.
    Scraping can be more expensive and time consuming. Can run into legal issues. Quality?
    Unified open location DB
  • Cold start problem not having
    Commercial license expensive - especially when location isn’t core and you want to scale globally.
    We’ve looked at available OS solutions (note examples) and the quality is bad.
    Scraping can be more expensive and time consuming. Can run into legal issues. Quality?
    Unified open location DB
  • Cold start problem not having
    Commercial license expensive - especially when location isn’t core and you want to scale globally.
    We’ve looked at available OS solutions (note examples) and the quality is bad.
    Scraping can be more expensive and time consuming. Can run into legal issues. Quality?
    Unified open location DB
  • Used to create boundaries, also contains some POI data....





  • Levels the playing field as far as check-ins are concerned...
    Can’t input lat,long yet...
  • Index, interpret and consume location
    Cloud infrastructure
  • Data Marketplace
    Spotrank



  • Quality of response fine for most apps, but will vary between services.
    Geocode on the client side where possible - i.e. use the Javascript SDK.
    List<Address>

  • Used to cost a fortune. People usually want to know how to find a place, but best to export leave this to Google Maps... Can get Bing tiles???

  • Group notificationsSimple to customise / turn off via app



  • To summarise
  • Are you average? Do you always like what everyone else likes? In many cases a rating derived from “an average” becomes meaningless.
  • To solve the problem, we had to come up with a new way to filter the noise & deliver relevant content. This was the birth of our algorithm.
  • To solve the problem, we had to come up with a new way to filter the noise & deliver relevant content. This was the birth of our algorithm.
  • To solve the problem, we had to come up with a new way to filter the noise & deliver relevant content. This was the birth of our algorithm.
  • To solve the problem, we had to come up with a new way to filter the noise & deliver relevant content. This was the birth of our algorithm.
  • To solve the problem, we had to come up with a new way to filter the noise & deliver relevant content. This was the birth of our algorithm.
  • To solve the problem, we had to come up with a new way to filter the noise & deliver relevant content. This was the birth of our algorithm.
  • To solve the problem, we had to come up with a new way to filter the noise & deliver relevant content. This was the birth of our algorithm.
  • To solve the problem, we had to come up with a new way to filter the noise & deliver relevant content. This was the birth of our algorithm.
  • To solve the problem, we had to come up with a new way to filter the noise & deliver relevant content. This was the birth of our algorithm.
  • This was the birth of our algorithm.
  • Then we had to build it....
    Simple explanation follows.

  • Then we had to build it....
    Simple explanation follows.

  • Then we had to build it....
    Simple explanation follows.

  • Then we had to build it....
    Simple explanation follows.

  • Then we had to build it....
    Simple explanation follows.

  • Then we had to build it....
    Simple explanation follows.

  • Then we had to build it....
    Simple explanation follows.

  • Then we had to build it....
    Simple explanation follows.

  • Then we had to build it....
    Simple explanation follows.

  • Then we had to build it....
    Simple explanation follows.

  • Then we had to build it....
    Simple explanation follows.

  • Then we had to build it....
    Simple explanation follows.

  • Then we had to build it....
    Simple explanation follows.

  • Then we had to build it....
    Simple explanation follows.







  • Greater reach, more content
  • Greater reach, more content
  • Greater reach, more content
  • Greater reach, more content

  • 450 average tweets a day from NYC alone, which comment on a venue, bar or restaurant. We’re currently processing ½ million tweets a day, from just 4 cities – San Francisco, Austin, New York, and London
  • Commercial rationale?





  • ...so come “swing” with us and not sound *too* strange.
  • ...so come “swing” with us and not sound *too* strange.
  • ...so come “swing” with us and not sound *too* strange.
  • ...so come “swing” with us and not sound *too* strange.
  • ...so come “swing” with us and not sound *too* strange.





  • Long tail graph – easy example; blue i regular bookshops, red is amazon.

  • ×