Saturday, February 14, 2009

Project Contacts: Integration across iPhone, Google and whatever

I was just about ready to turn my iPhone into cyber-mulch when, unexpectedly, Google saved it. Calendar nerdvana has come to my iPhone, albeit at some cost to my iPhone battery. Again, I have hope. (Yes, Andrew, I am obsessed.)

I need hope. My PIM/PDA world is still a post-Palm mess. At the moment Google is my source of Calendar Truth, my iPhone is a sync client, and iCal is not involved. I’d like to have a copy of Calendar data that I “own”, so I’ll eventually re-integrate iCal. I’m no fan of Apple’s calendaring monstrosity, so there’s not a great rush. Sometime this year though.

In any event, it’s time for a refresh of my Palm Migration Status page:


Things have changed quite a bit over the past few months. It’s been a lot harder than I ever expected, and there’s still a way to go. (I hope the Palm Pre is a smash success, if only for vicarious revenge upon Apple for MobileMess.)

Today my old Palm Classic PIM data is scattered across my iPhone, Google, OS X desktop, ToodleDo, Evernote and Jott. That has to get simpler! I’ve made a “strategic” family and personal commitment to Google, so if/when they integrate their inadequate Tasks with Google Calendar (here’s how to do it) I’ll drop ToodleDo from the mix.

I could drop Jott fairly easily as well, and Evernote is improving nicely, so for now my focus is Contacts. This isn’t as critical as Calendar integration, but I’d sure like to get all my work and home Contacts on my phone.

Unfortunately, Contacts are hard, much harder than Appointments, Notes, Tasks, etc. (Ok, so Appointments have their own special non-technical problems too.)

There are a lot of variables in the mix, from endpoints to transition tools. Gmail Contacts, Google Apps domain shared contacts, Google Contacts API and extended Contact Kind, OS X Address Book [1] OS X Address Book Google Sync [2], OS X Address Book Exchange Sync [3], iPhone, Microsoft Exchange Server, ActiveSync, SpanningSync, FileMaker Pro, Bento, MobileMe, gSyncIt, iTunes Google sync, iTunes Address Book Sync, Google iPhone Sync, vCal, hCard, GData, OpenSocial, Windows Live, Facebook and Outlook among others. (Yes, several others.)

Bad enough, but “Contact” information is a big part of vendor lock-in strategy. Yes, Data Lock, big time. We’re talking Google, Microsoft and FaceBook fighting over ownership of contact relationship networks, and everyone fighting with banks, Amazon and the phone companies for identity ownership.

Complexity, corporate combat, rapidly shifting implementations, vendors focused until recently on Calendaring …

Yes, this one is the big Kahuna. Big enough that, for this project, I’ve created a new Gordon’s Tech Label of “Contacts” to help me as I work through all the options.

In the meantime, there’s one big bit of good news. Contacts don’t change as much as Calendaring events. I can get by with manual export/import for quite some time.

In the meanwhile, I’ll be experimenting carefully. Follow the Contacts thread forward to learn what I learn …

[1] OS X iCal is miserable, but OS X "Address Book" isn't all bad. If Bento weren't so crummy I'd put the OS X "Address Book" plus Bento at the core of my strategy.

[2] Update: Since my original posting, I discovered through this thread that OS X 10.5 Address Book has its own options to synchronize with Exchange, Google, and Yahoo -- in addition to the Phone to Google synchronization built into iTunes/OS X (available for 10.4 and 10.5). The mind boggles. So one could synchronize the OS X Address Book with Google Contacts directly, or through Google's Active Sync service ...

Update 5/19/09: Major progress - I have work and home integrated and options for Google too. The cost is I may have to subscribe to MobileMe.


Florentino said...

Any new developments?

JGF said...

If you click the "contacts" Label (tag) in the label list you'll see the later posts ...

iPhone 3.0 helps. I'm now waiting for Spanning Sync 3.0 to be released and proven, it uses the new Google contacts API.