May 19, 2010 - Comments Off on Live blogging Google I/O: Map once, map anywhere: Developing geospatial applications for both desktop and mobile
Mano Marks
Chad Killingsworth
Write once, run anywhere
* Mobile is hot
* Desktop is still hote
* Save development time
Agenda
* Overview of Geo APIs
* Different options for mobile
* UI considerations
* Geolocation
* Real world app
Options for Google Maps on Mobile
* Maps API V3 in browser
* iPhone native MapKit
* Android native MapView
* Hybrid native with browser
* Static Maps API
[Need chart for comparison] V3 is the clear winner.
And now street view:
* HTML5 canvas 2D
* HTML 4
* WebGL
WebGL has the best performance.
Easy to add street view to the map: map.setOptions({ streetViewControl: true });
Browser based maps
* Full JavaScript browsers
* Access to some phone features
* HTML5
* Write once
* Rapid development
* No App Store/Marketplace process
* No App Store/Marketplace discoverability
Native APIs
MapKit on iPhone
MapView on Android
App Store/Marketplace discoverability
* App Store/Marketplace launch process
* Slight performance increase
* Harder development
* No support outside of platform
Hybrid native apps with embedded browser
WebView on Andorid
uiWebView in iPhone
Access to additional features of phone
Rapid development of map
Map is write once, but app is write per platform
Static Maps API
* Any browser
* Lightweight and fast
* No features of modern APIs
* Write once, run anywhere
** and really, anywhere
UI considerations
* Size of screen layout
** Make your <div>s flexible
** Vary your chrome by browser or screen size
* Touch events
* Native vs browser look and feel
** iUi
Geolocation
* HTML5
** Device provides location
** Mobile often gives GPS location
** Desktop browser gives IP or wifi (use this recommended site to get the best wifi services)
* IP-based
** IP lookup
** Coarse
** Google Ajax API ClientLocation (or other provider)
[Demo of HTML5 geolocation]
Campus Map demo
* Wide variety of audiences using maps
* Visitors and guests will visit the web site
* Frequent users prefer the convenience of an application
* Only enough resources to maintain one code base
* Shared datasets with version 2 map
* Early on- lack of features
* User interface with small, touch-based screen
Hybrid application
* Performance concerns (with proper optimizations, not a great concern)
* It felt like "cheating"
Optimizations
* Use KML layers for complicated data (for panning)
* Compress JavaScript (Closure-Compiler)
* Delay loading the maps API so as not to block page rendering (use the boot loader and then dynamically add script tag to page)
* Use Google page speed
View uncompressed source of University of Missouri campus map
Q:
A: Pinch-to-zoom only works on the iPhone, because that's the only browser that exposes those events to JavaScript.