Playnice: The Unofficial Latitude for the iPhone

Last week GooglelaunchedLatitude for the iPhone as a web app. They were held back from releasing a native app by Apple’s overbearing application approval process. However, this doesn’t matter that much as all location apps are currently hamstrung by Apple’s lack of background location updates. Luckily for iPhone customers there are developers out there trying to solve this problem.

Nat Friedman has releasedplaynice on Github, a piece of code that will let any MobileMe & iPhone customer update their Google Latitude account. The PHP script is designed to be run as a chron job for scheduled updates. To use it you must activate the Latitude gadget on iGoogle and turn on the Find My iPhone feature on your MobileMe subscription. Playnice uses Tyler Hall’s Sosumi code from Github (Radar post) and there is no reason that similar code couldn’t be written to update Loopt, Whrrl, Brightkite or any other location service hamstrung by the iPhone’s lack of a location service. Since Latitude has only released a Read-only API (Radar post) the writing of your location to Latitude was done via screenscraping. [Disclosure: I was given a one-year subscription to MobileMe by Apple]

I find it silly that Google was asked not to release a native app. When you use Latitude for the iPhone in the browser it does detect your location and can display your friends’ locations. It is almost the same as a native application.

On the other hand I have to marvel that they were able to release it in a browser and I view as a technical triumph. Getting the user’s location from the browser was not possible 6 months ago. The fact that it is now possible to access location every modern mobile browser (Fennec, Opera, Safari, Android), desktop browser (Safari, Chrome, Firefox, IE8) plus Windows 7 and Snow Leopard is huge. Location and maps no longer demand a native app to be useable so perhaps Apple’s application approval team is just ahead of the times and is purposefully trying to drive app developers to the browser.