Now that the dust has settled from the latest application of the Reality Distortion Field and we are all salivating at the chance to get our hands on the iPad, it’s time to think about how all of these devices will work in our day to day lives.
I’m a fully paid up member of the Apple devices fanboy club. I carry an iPhone and a 5th generation iPod with me wherever I go (even the largest capacity iPhone is nowhere near enough to store even a third of my music collection), I have a MacBook Air for holidays and overseas trips, a 17″ MacBook Pro for work and a huge
cheese grater Mac Pro at home for media storage and its raw computing horsepower.
I love all of these devices for different reasons, but one thing I don’t love is the difficulty of keeping them all up to date with the latest versions of my data.
I use a bewildering array of technologies to keep all of these devices in sync, including the awesome Dropbox, the not so awesome MobileMe (formerly .Mac), CalDAV and good old iTunes syncing for my music and podcasts. But all of these technologies only allow me to sync data to and from apps that Apple already knows about, like calendars, photos and music. What about other kinds of data, like todo items, game high-scores and unlock states, and so forth?
The story here is not so great. Until fairly recently I used the excellent Things on the desktop and on my iPhone to manage todo lists. Both applications are beautifully designed, winning the developers an Apple Design Award. That the syncing experience is poor is not the fault of the developers; they did the best job they could given the locked-down state of the iPhone OS.
To sync Things on the iPhone, you need to be on the same wifi network as the machine with the desktop version. The desktop software must be running, and you must launch Things on the iPhone to initiate the sync. The first time you sync, you must pair the iPhone version of Things with the desktop machine, and it can only be paired with one device. The desktop software does not offer syncing to other desktop machines except with hacks that are likely to go wrong. It was this syncing nightmare that made me revert to good old fashioned paper and pen for task management.
I have other apps on my phone that I want to sync (for example the excellent 1Password). 1Password has a similar sync system to Things, although I would argue that Things does it better between the phone and the desktop. In 1Password’s favour, it has a special file format that allows syncing to work between desktop machines using Dropbox. Even though the process is very similar, it’s still different enough to confuse me, and this is part of the problem: non-technical users find this kind of thing very difficult to use in the first place, but throw multiple versions of the same process at them and they despair.
This syncing problem is only going to get worse when armies of iPhone users buy iPads and expect this kind of thing to Just Work™. They’re going to be pissed off when their favourite game doesn’t have the difficult levels unlocked on their iPad when it does on their phone, or that their favourite tube stations in Tube Deluxe are not the same on both devices.
Apple is targeting a new kind of user with this device – that seems clear – and they are the kinds of users who find PCs and even Macs to be difficult to use. They don’t get pleasure out of figuring things out or messing about with configurations like, say, Linux users do; that sort of thing fills them with horror and a frustrating sense of powerlessness. I think alpha-geeks just don’t understand how the wealth of options that they find so empowering achieves exactly the opposite with less skilled users. In order to win these ‘normal’ users over, Apple and third party developers need to think in a new way. Apple has done this with the hardware and the built-in apps, but they haven’t yet given third-party developers the tools they need to provide a seamless experience for the user.
I can’t help thinking that Apple needs to do better here, and quickly.
The good news is that they already have the components of a solution in place. MobileMe already has a good syncing API that desktop apps like Transmit support out of the box. As a result, my FTP sites list and credentials are shared automatically over all of my Macs without me needing to do a thing.
But on the iPhone there is no synchronisation API. Marcus Zarra has created the open source ZSync project that makes syncing between iPhone apps and their companion apps on the desktop easier. It’s a step in the right direction, but it can’t solve the fundamental problem, which is that the user needs to get involved in the syncing themselves, and that the experience is fundamentally different for each app.
It’s not Marcus’s fault that ZSync doesn’t solve the problem. As with the developers of Things, he can’t do better because only Apple can provide the infrastructure to do so given that the iPhone and the iPad are both locked-down environments where only Apple can install system-level services like this.
Here are the changes we need from Apple in order to provide a first-rate syncing experience for all iPhone and iPad users:
- The first change I’d like to see would be automatic over-the-air syncing from the iPhone or iPad to iTunes when you’re on the same wifi network as the computer you normally sync your phone with. I don’t want to have to plug my phone into my computer to initiate a sync. The phone and the tablet know which computer they sync with, and iTunes knows which devices are synced with it.
- Second, iPhone developers should be able to write small plugins that act as sync agents when an iPhone sync is initiated. They would run inside of iTunes and be vetted as part of the App Store approval process. They would be responsible for taking the raw data from the phone and doing something useful with it. If the user doesn’t have the desktop version of the iPhone app installed, the iTunes plugin would just do nothing.
- Some of the built-in Apple apps, like Contacts, support over-the-air sync even on the 3G network, and I believe that should also be an option for third-party apps. In other words, if an app wants to, it could implement MobileMe syncing on the desktop and on the phone as an alternative to the iTunes syncing mechanism.
- The iTunes sync mechanism could use the same APIs as the MobileMe syncing option, meaning that developers would not need to implement two sets of code. This would provide a genuine selling point for MobileMe that it currently lacks and start to justify its rather steep price tag. This would mean that whether you choose MobileMe or iTunes syncing, the user would only need to set up syncing once for the device and never worry about it ever again.
- It should be possible to configure a default sync frequency, with a sensible default like once per day. That way I can choose my own tradeoff between data accuracy and battery life. The frequency could even be tuned by using a heuristic like detecting how many changes there are queued up for an application. That way, the phone could work out that it doesn’t need to sync very often while I’m asleep, but more regularly while I’m at work.
Apple already provides the ability to provide an excellent syncing experience on the desktop with Mac OS X Sync Services. Although developers complain about how complicated it is to get syncing over MobileMe right, it’s still not a problem that is beyond us to solve, as Things and 1Password among others show. But third-party app developers don’t have the ability to provide the solution unless Apple provides the infrastructure.
Only if Apple solves these problems will the iPhone OS devices truly become the reinvention of mobile computing that John Gruber predicts and that I hope for.