Traditionally, one would sync a mobile/smart phone’s address book with a proprietary software (e.g. Palm Desktop), or via some conduit with Microsoft Outlook. In the recent years syncing with Outlook seems more popular as it’s more widely supported and it was my preferred way to transfer contacts from a phone from manufacturer A to another phone from manufacturer B. e.g. I once transferred from my Nokia N82 to a Samsung i600, then from the i600 to my iPhone 3G.
Recently I changed jobs and no longer have access to MS Outlook (it was on my work notebook), so I started searching for alternatives. Here are the options I have (in the Windows world)
- via iTunes – sync with Google
- via iTunes – sync with Windows Vista Contacts (or Windows Address Book on Windows XP)
- over-the-air – sync with Google using Activesync protocol
I have been a fan of Google, and been using Gmail for years. Little did I know, I have been shifting towards cloud computing without planning for it. This seems to be the all new popular shift the industry is heading towards. A lot of what we know now will eventually be hosted in the Internet cloud.
I decided that syncing with my Google account will likely be the best option. One advantage will be that I’ll never have to really worry about backing up my Gmail account. It’s something I trust Google to take care of. I also expect to see more support on syncing the contacts and calendar with more devices. So, this should protect future change of devices. In the worse case, I can export contacts as CSV files to be imported to other PIM tools.
Going off track a little, I tested out syncing with my Vista Contacts. Just to see what it does. The good side is that it can sync contact photos, which Google does not support. But the bad side is that when you delete contacts from the iPhone, they remain in Vista Contacts.
The real test started first with syncing via iTunes. Let me start off with what I started the test with
- on the iPhone – I have my full set of contatcs with phone numbers, some email addresses, etc.
- in my Google Contacts – I have some email addresses Gmail auto saved into the contacts.
I put in the config in Tunes to sync contacts with Google. Then I let it rip. The initial sync took about 10mins (I have about 1200 contacts in the phone).
When it was done, I looked through Google contacts and everything was uploaded nicely. I had some contacts with numerous phone numbers and all showed up well. Even some has custom phone types, e.g. I have a contact with a “home kitchen” as a phone type. Google accepted it as well. I was pleased.
Syncing with iTunes over a few days proved the updates and sync are working nicely.
Then, I decided to try out syncing over-the-air. It would be nice not having to remember to plug the phone to sync every other day. Any updates to the contacts will sync within minutes with “push”.
On the iPhone, I went to settings -> mail, contacts, calendars -> add account -> Microsoft Exchange. Went through the account creation wizard, and picked to only sync Contacts, keeping mail and calendar off. (side note, the server you want to connect to is m.google.com)
It prompted that all contacts in the phone will be wiped out (this was pre OS3.0). I know that my contacts are already well sync with Google already so I could confidently hit yes.
My contacts on the phone became blank, and then the over-the-air sync started. I could see contacts starting to be populated. If you scroll right to the bottom of the contacts, you could see the total count of contacts in the phone. In under 10 mins, I could see all my contacts downloaded.
Verification : the number of contacts were right, all contacts were downloaded. Then I picked up some names and check… looked fine. Until I hit some special contacts with a lot of numbers and email addresses… not everything was downloaded. Some numbers and email addresses were missing. Double checking in the Gmail interface, they were still on Google. So the sync was not perfect. After searching around, I found that it was a limitation of the activesync protocol.
You can read the actual post here. But here’s the essence of the issue. It’s not an iPhone nor Google issue. It’s a limitation of the activesync protocol.
Activesync only allows the following per contact
- up to 3 email addresses
- 2 Home numbers
- 1 Home Fax
- 1 Mobile
- 1 Pager
- 3 Work (which one will be labeled as ‘Company Main’)
- 1 Work fax
So, if you have contacts with 2 Mobile (type) numbers, only one will show up after the sync. You won’t lose the other number, but it will stay at the original source. If you have custom phone types, they won’t show up either. So, this did not work for me.
One more shortcoming when using activesync is that the phone types becomes limited. The list that I used to be able to choose in the iPhone becomes limited to that listed above. It would make sense to conclude that it’s due to the limitations of activesync.
Other than the above though, the sync worked pretty well. The push updates went well and I was pleased with that as well. But since I have needs beyond just a few numbers and email addresses, I prefer to sync via iTunes.
On the 11th July, I picked up my new iPhone 3GS from my service provider, Singtel. Out of the box, I put in my SIM card, quickly configured activesync, and BAM! my contacts came in over the air. Even before I paid for it my contacts are ready for use. That was one proud geek moment :D. But when I got home, did a restore from my 3G backup, I reverted back to sync via iTunes instead.
So, in conclusion, syncing of your iPhone contacts with Google has 2 methods. You just need to pick the option most suitable for you. If all your contacts have very minimal numbers and email address, and you have a mobile data plan, go with over-the-air. Otherwise, sync via iTunes should be preferred. At when during moments where you’ve lost your contacts somehow, or you’ve picked up a new iPhone, you can turn on activesync until you can get back to your computer to sync.