Syncing the iPhone is a mess. Apple really dropped the ball by not providing a generalized sync framework to support third party apps.
Every time I want to take my iPhone out on the road with me, I need to go through and sync up every application individually: Here’s the song and dance for a full sync:
Open up 1Password on my Mac and on my iPhone, choose Sync from the iPhone, and wait for it to complete. (Sometimes I need to click through some password errors, too.
Open TextGuru on my iPhone and the TextGuru server application on my Mac and copy over any text files I’d like to share between the devices.
Open up Stanza on both my Mac and my phone and then open each book I want to carry with me and send it to the phone; one-by-one.
Load any files I want to take with me into FileMagnet uploader, open the app on my iPhone, and send them over. (Or, if I’m using Briefcase, turn on remote login on my Mac and browse it – I’ll cover file viewers/transfer apps in a later post.)
Open up SpeakEasy Connect to grab any recordings I want on my Mac from my phone.
Sync OmniFocus to .me (and then when I open it on the iPhone, it syncs up, so that’s something at least!)
Open up ByLine to pick up my Google Reader RSS feeds.
Likewise with Instapaper.
Did I mention I don’t use Safari as my main browser? So that’s a trip to BookDog to sync up my bookmarks from OmniWeb to Safari so that I’ll have ‘em on the phone.
Finally I’m ready to sync with iTunes, but to be sure I get the most out of this sync, I’ll check for new podcasts and application updates.
Dangit! I’m out of space for all my new files on my iPhone. Time to trim playlists, swap out movies, etc. I sure wish I could autofill the thing like I could on a shuffle!
And that’s if I happen to be on an available wifi network. Otherwise I also have to deal with Internet Sharing on my Mac!
Yeah, this is a worst-case scenario, of course. I don’t necessarily need to pick up new files or books, and I don’t always need to grab recordings. But if I intend to spend some time on an airplane or otherwise need to keep everything updated, this whole rigamarole can take as much as half an hour of fidding.
But because this is so time consuming, it’s not uncommon for my iPhone to be out of date, so I don’t have my latest passwords from 1Password, or I don’t have the movie I just rented from iTunes or eBook I’ve downloaded. (since I have to transfer it to the one device it lives on – grr!) Likewise, my Mac’s out of date from files I have on my phone. What a drag!
Some of these applications use Mobile Me or some other online service as an intermediary, so that I can sync asynchronously from my Mac or iPhone to a central server. Or ByLine syncs directly with Google Reader, so it acts like a normal RSS reader that way. But if I intend to be outside of wifi range, I have to remember to sync.
Compare this to my Palm handheld (recently retired in favor of my iPhone). I put it in the cradle and pressed the “sync” button. Any e-books or files waiting for transfer would transfer, passwords would be updated, content on the device would push back to my Mac. One click, and I was done. Palm provided a standard framework that developers could use to sync their applications’ data with my Mac and its programs.
Apple has done the same thing in the past, through iSync and Mobile Me/.Mac. However, they failed to extend this to the iPhone. Instead, every developer needs to build their own synchronization solution, with no standards whatsoever. Additionally, since there’s no background processing, there’s no method to keep the desktop and the phone in sync without forcing a manual process of opening every syncing program and doing your business, one program at a time.
Obviously there’s an underlying sync framework in iTunes, which can handle multiple content types (music, photos, email, contacts and calendars) from multiple data sources (Outlook on the PC; iPhoto, Mail, Address Book and iCal on the Mac; Google and Yahoo hosted services; and, of course, video and music through iTunes). And that’s all in addition to the built-in Mobile Me and IMAP services!
Apple dropped the ball on syncing with the iPhone. They need to build a synchronization API for developers, and they need to build it quickly before more programming time goes down the drain building half-assed custom sync solutions.