Tuesday, February 9, 2010

Tales of the Sync Demon: Getting Android, PCs and Macs to Give It Up

If you're like me, your life is an amalgam of mobile devices, laptops, operating systems, and "clouds" (or whatever the effing buzz word is today). You've also got a job - maybe two - and a personal life - or, maybe not. (Sorry man...but you know who you are.) You aren't on your phone 100% of the time, and you aren't on your Mac or PC 100% of the time - yet you want your information on all devices.

My world consists of androids, iphones, macs, PCs and ubuntu boxes - so this conversation is confined to those worlds. It's the flip-side to the closed ecosystem argument: dictatorships make the trains run on time, but openness requires diplomacy. However, since Apple, Microsoft and Google hate each other with the passion of 1000 white hot burning suns, diplomacy isn't the easiest thing to come by...

So, after an evening of experimentation at the expense of my sanity, here's the deal for reliable sync'ing between google apps, exchange, android, and exchange clients for BOTH the PC and the Mac. (I've left the iPhone and Windows Mobile out of this conversation since once your PC or Mac is sync'ed as described below, the iPhone and WinMo devices will just work properly. I left Blackberry's out of this conversation because, well, what the hell are you doing with a blackberry?)

So, boiling it down to just android, macs and PCs, here's what you want:

  • ...to be able to use the native applications on the Android phone to interact with exchange for work, and google apps for personal work, and have all information available to all client applications - yet remain separated.
  • ...everything to happen in the background and over the air (OTA)
  • ...all three platforms (Android, PC and Mac) to sync within a reasonable time.

And, here's the problems with just setting things up using OEM supplied applications:
  • ...exchange sync for Android only works reliably for email, not for contacts. There is no calendar exchange sync for the Nexus yet (although there is for the Droid, since Motorola modded the exchange sync app)
  • ...other Android sync solutions (such as Touchdown) replace the email, calendar and contact apps on the handset, which blows enormous chunks
  • ...Google Apps to Exchange server direct sync'ers require additional software on the server side, and since most people have IT organizations who will laugh at you if you suggest modifying their exchange servers, you probably don't have that as an option.
Here's the solution methodology I decided to employ (yes, I said "solution methodology"):

The idea here is to have Google Apps, NOT exchange, be the propagation root for calendar and contact information, while email is harvested directly from the exchange server. This way, the Android phone is NOT the source of the sync - which is desirable. However, since we do not control our own exchange servers, the calendar and contact sync is reliant on the PC and Mac client applications. This means that the syncs can only happen when either the PC, Mac or both are on and connected to the internet. However, in practice, you'll see this isn't such a big deal.

If you are using, say, a PC with Outlook when a meeting request comes through and you respond, the PC will sync with Google calendar immediately and it will appear on your phone. If your PC is off, and you are just using your phone and a meeting request comes through, it will arrive as email on your phone's email client. You will accept the meeting and it will be placed immediately into your phone's calendar client, and therefore into your Google calendar. It will not sync to your PC (and back to exchange) until your turn your PC on, but who cares? The only downside here is that no one else will be able to see you have a meeting at the time you accepted until your PC is turned back on. (The same scenario I just described works for the Mac as well.)

What you need on each platform:

On the PC:
  • microsoft exchange (available for $1B from http://www.microsoft.com/)
  • gsyncit ($15 at http://www.daveswebsite.com/software/gsync/) *
On the Mac:

  • iCal, Address Book, Mail.app (I could not find apps that worked for Entourage or the far superior Thunderbird)
  • SpanningSync * ($25 at http://spanningsync.com/)
On the Android:

  • Exchange for Android (for reliable exchange mail) - It is important for offline calendar sync'ing that you use Exchange for Android and not IMAP for your email if you want to have the email-calendar interaction
* both gsyncit and spanningsync allow for sync'ing to specific google calendars and contact groups, allowing you to keep work and play separate.

To set everything up:
On the Android:
  • install Exchange for Android. This comes with Android 2.0 and above, and is available at Android Market for free for Android 1.5 and 1.6
  • set up Exchange for Android to point to your exchange server

On Google Apps:

  • Optional: Separate your calendar and your contacts into separate work and home groups

On the PC:
  • Install Outlook
  • Install gsyncit
  • Optional: have different outlook calendars and contact groups pointing to the correct corresponding calendars and contact groups on google apps
On the Mac:
  • activate iCal, Address Book, and Mail.app
  • install SpanningSync
  • optional: have different outlook calendars and contact groups pointing to the correct corresponding calendars and contact groups on Google apps
...and that, as they say, is that.

Now your phone, google apps online, your PC and your Mac will all be in sync within a delta measured in minutes. (If one or the other of your laptops is off, the delta is measured in the time it takes you to turn on your laptop(s).) If you also use an iPhone or WinMo phone, just set them up normally, and everything should work just fine.

Also, please be careful: a change in one object (say a contact) will quickly propagate through everything you do. You can seriously whack out your information.... Outlook is the easiest to back up, of course, since you just copy the OST or PST file around. However, until you are comfortable that everything is working well, you should engage the sync's one at a time until you are convinced they will do what you need them to do.

Anyway - that oughta do it. When Google fixes their exchange sync application for android, we'll all be able to turn off the 3rd party sync'ers (Actually, I'll leave gsynchit running, since one of its unintended consequences is to back up my personal contact info and calendars.)

This has been a public service announcement from your friendly IT department.

1 comment:

RocketDroid PC said...

The Rocket Droid Pc is a HDMI Android TV Dongle on Steroids! Plug it into your TV and experience the Android UI & Gaming like never before.
rocket droid pc