Move over Latitude (client), enter Latify

I had a recent issue involving Latitude and my home automation “somebody-is-coming-home” logic.  What hurt the most is that, around the same time, I had made some significant changes to my Latitude polling code which would increase the polling frequency if it was determined that a Latitude user was in “rapid motion”.  I’ll refrain from posting details re: the exact definition of that term, but suffice it to say that the intent was to collect more information when a user is moving around so that we could determine their enroute in a more expedient manner.

So while I got that code working, I was subsequently stymied by an apparent inability to receive updates from the Latitude API at anything faster than 1 update per 10 minutes.  Given that my code needs at least 3 data points before it can make an “enroute” determination, the apparent limitation meant that the code wouldn’t know you were enroute until at least 30 minutes had passed in your current transit session.

Bummer.

So as evidenced in the link above, I took to the Latitude Google Group and after some time it was decided that the issue wasn’t with my code or the Latitude API, but rather the Latitude client on my phone.  Apparently some client update along the way had changed the upload behaviour, such the client was now batching updates.  In other words, the phone would hold on to a set of updates and upload them in one shot.  Which is great for battery saving, but not so great for real-time location reporting.

I heard about this Latify character amid other general rumblings about Latitude being battery hog.  I never did pay much attention to the third-party contender as I hadn’t noticed any particularly heinous battery drain myself with the official client.  But given this most recent development, I had no choice but to look elsewhere.

I’m either hugely  glad that I did or vaguely glad that I did.

In concert with Tasker, the premium version of Latify has been put to use on my handset to switch between rapid GPS-based updates (when driving) to less frequent cell/wifi-based updates otherwise.  I’ve created a Tasker profile that attempts to determine when the phone is moving (by determing if the connected cell tower has changed) and will switch Latify from a 1hr update period to a 5min update period if motion is occurring.

In general it seems to work well, and on some days I notice incredible battery prosperity.  If this is indeed due to Latify and my usage patterns, then I am indeed hugely glad for the Latify/Tasker combination.  If battery usage is not part of the equation, then I’m vaguely glad – yes, I’ve got more control over my Latitude updates and I seem able to track my movements at 5-min intervals if, say, the wifey is driving me around; but I’m also curiously dismayed by some of Tasker’s quirks and the hack-ish way I’m having to deduce cell-tower based movement.