While location-based mobile apps are becoming increasingly popular, they are still relatively new. Special considerations need to be made for battery life and handling large data sets of geolocated data. The good news is there are many services and technologies you can use to assist you in building mobile location-based apps.
In this session, Aaron Parecki, co-founder of Geoloqi.com, shows you services you can leverage to do things like nearby business lookups, location-based triggers, nearest intersection queries, and more. Aaron also covers the location services available on the various mobile platforms as well as in HTML 5, and shares some insights on how to deal with battery life. The session concludes with some real-world use cases for real-time location such as turning on and off your lights in your house or sending an SMS when you leave work.
1. Geolocation in
Web and Mobile Apps
Aaron Parecki – Web Directions – May 2011
aaron@parecki.com – http://aaron.pk – @aaronpk
Slides and code available at
aaron.pk/unplugged11
7. Browser Geolocation
! Desktop browsers use nearby wifi hotspots
! Mobile devices may use GPS or cell tower positioning
! You can also use IP lookups to get a rough location
(but is usually very inaccurate)
@aaronpk aaron.pk/unplugged11
13. Browser Geolocation
! Usability problem with this approach:
! User is left with an empty page waiting for them to press
“allow”
! You should do the best you can with no location, and then
update your page after you get the user’s location
! Could use IP-based location to center a map somewhere that
is (probably) nearby
@aaronpk aaron.pk/unplugged11
14. Using SimpleGeo
Start with IP-based geolocation to quickly center the map.
Update with browser-based geolocation after it’s available.
aaron.pk/unplugged11
@aaronpk aaron.pk/unplugged11
15. Finding Nearby Businesses
! SimpleGeo Places
! Foursquare API
! Twitter API
! Yelp API
! Google Places API
! Many others
@aaronpk aaron.pk/unplugged11
16. Place Search with Foursquare
developer.foursquare.com
@aaronpk aaron.pk/unplugged11
23. Monitoring Continuous
Location in Javascript
Now go run around outside!
(But keep the browser open)
@aaronpk aaron.pk/unplugged11
24. Keep the browser open? That’s kind of lame.
@aaronpk aaron.pk/unplugged11
25. Monitoring Continuous
Location on the iPhone
This will keep running in the background!
(But now you will potentially drain the battery)
@aaronpk aaron.pk/unplugged11
26. Saving battery by
Getting the User’s
Approximate Location
@aaronpk aaron.pk/unplugged11
27. Retrieving Approximate
Location on the iPhone
[locationManager startMonitoringSignificantLocationChanges];
• Your app will be re-launched in the background
when the user moves “significantly”
• Most likely when they change cell towers
• Location is very rough, ~500-1500m accuracy
@aaronpk aaron.pk/unplugged11
28. Retrieving Approximate
Location on Android
locationManager.requestLocationUpdate(
LocationManager.PASSIVE_PROVIDER, 0, 0, listener);
• Service runs in the background, gets locations
when other providers or apps request location.
• Could be cell tower location, could be GPS
@aaronpk aaron.pk/unplugged11
39. Turning On/Off Your Lights
Geoloqi
API
Your
Home
Server
X10
SMSified.com
Your
Home
And sending an SMS when you leave work Lights
@aaronpk aaron.pk/unplugged11
40. X10 Lamp
Switch
Linux Command Line X10 Client
www.heyu.org
$ heyu on A1
@aaronpk aaron.pk/unplugged11