One of the most key-yet most overlooked-elements of this week’s announcement of Google Gears on Mobile Devices technology is its GPS capability and it hints at a forthcoming location API.
Though Google’s announcement on March 3 was music to the ears of many because it enables users to continue using mobile applications even when disconnected from the network, that capability, while quite innovative, only scratches the surface of what the new Google Gears capability has to offer.
Indeed, in a blog post and associated video, Charles Wiles, product manager for the Google Mobile Team, said a huge part of the appeal for Google for mobile is that it “allows you to write an application that continues to work even when the phone is disconnected from the network.”
However, added Wiles, when most people are offline they don’t have access to their contacts, their messages or their GPS location. Enter Google Gears for mobile. In addition to the offline browsing capability, Google developers said the Gears API can provide location information and secure file system access.
The Google Gears on Mobile Devices release is a full Gears release, Wiles said. It is exactly the same as the desktop version. “It’s a fully functional port of Google Gears V0.2 that can be used to develop offline capability into your mobile Web applications. You can also create slick and responsive applications by hiding latency issues through controlled caching of data and storage of information between sessions.”
Google Geolocation?
Meanwhile, Google is working on a Location API, which provides the “geolocation” of a device running a Gears-enabled Web browser. According to the Google Code Web page describing the Location API, the Geolocation API allows Web applications to retrieve the user’s current position.
And, according to the Google page, “The API should provide the following features: One-shot position requests (e.g. for recommendations sites-“where am I right now?”); Repeated position updates (e.g. for continuously updating one’s location on a map); Ability to get the last-known position cheaply before doing an expensive new request; Compatibility with future use as a singleton in the standard Document Object Model (e.g. window.geolocation); and Support for alternative location service providers.”
Google is looking at ways to protect privacy
Moreover, the Geolocation API is an abstraction for various location APIs that currently exist on mobile platforms, like GPS-based or network/cellid-based APIs, the Google Location API page said. And geolocation implementations could be straightforward mappings to native APIs such as the Nokia S60 Location Acquisition API) or have a more complex design that combines several location providers and returns the location from the most accurate provider at any given time, the Google documentation said.
The Location API must also be able to support users’ privacy and Google is looking at various ways to do that. The company is also looking at an alternative API such that, instead of the Geolocation API described above, Gears could expose only the underlying location signals, according to the Google documentation.
Moreover, the company is working on a location provider protocol, because many devices do not have native access to GPS or other location data. Additionally, according to the Google Code page, “GPS can take a long time to get an accurate location fix, drains battery, and does not work indoors. Because of these problems, the location API also has the ability to send various signals that the devices have access to (nearby cell sites, wifi nodes, etc) to a third-party location service provider, who can resolve the signals into a location estimate.”
The protocol between the device and the location service provider is HTTP POST. The request and response are both formatted as JSON (JavaScript Object Notation).
Although Google has not said that the Location API will in fact appear in Gears, sources close to the company indicated that it very likely will.
Developers excited about Location API
Despite the Location API not specifically mentioning mobile, sources said it surely will be on both the desktop and mobile platform, as the versions are the same so far.
Said one developer of the possibilities the Location API could create: “Having location on a mobile device to Web developers is friggin’ awesome.”
Meanwhile, in addition to a location API, Google is looking at delivering other native APIs such as a camera and contacts API, sources said.
The main thing, however, is that the Google for Mobile API shows developers a taste of a mobile Web with APIs that talk to the phone with the ease of development of the Web.
Meanwhile, in his blog on March 3, Wiles said: “What if developers could deploy applications directly to mobile browsers rather than develop native applications? That would simplify the development process, as developers could use the same coding skills to create mobile applications. Even better, if these mobile web applications could work offline, users would be able to use them when they are disconnected from the network.”
Wiles said the first version is now available for Internet Explorer Mobile on Windows Mobile 5 and 6. “We’re also working to bring Google Gears for mobile to Android and other mobile platforms with capable web browsers.”
Yet, in the video attached to his blog, Wiles said, Google chose Windows Mobile as the first device to support because “Windows Mobile has the most open and easy browser out there.”
In addition, Google is intent on supporting the development of iPhone applications supporting the Gears on Mobile Devices API, Wiles said. “We had this belief that mobile browsers would become as capable as desktop browsers, and the iPhone is the first browser to do that.”
Overall, said Wiles: “We want developers to just write standard AJAX (Asynchronous JavaScript and X M L) apps in the browser just like they do on the desktop and have them work on mobile phones.”