In the previous chapter, Cloud Storage, I discussed syncing files and folders between local devices and the Cloud. Here, I want to look at smaller chunks of data—small enough that they can often sync almost instantaneously. I’m thinking of things like email, contacts, calendars, tasks, bookmarks, notes, and passwords. You almost certainly want to keep that sort of data in sync across all your computers and mobile devices, and the ubiquitous Cloud offers numerous excellent ways to do so.
Just a few years ago, syncing personal information like contacts and calendars between a mobile device and a computer often required connecting the two with a cable—how barbarian! Then Wi-Fi sync came along, which cut the cable but still sometimes forced you to sync a single pair of devices at a time—and even then, only when they were both present on the same network. The biggest problem with that old-fashioned, manual syncing (with or without the cable) was that conflicts were common, because during the time between syncs, it was all too easy to change the same piece of data on more than one device.
Nowadays, most of us use a cloud-based service to hold all this information, and because our devices are connected to the Internet almost all the time, changes sync to the Cloud immediately and then bounce back down to our other devices.
Of course, nothing about the services I’m discussing here intrinsically requires the Cloud. That is, you could very well have (and many people do, even today) a single, conventional server that handles email, contact and calendar syncing, and other such services—some small ISPs and shared hosting providers still operate this way.
However, the trend is increasingly to use true cloud infrastructure for syncing this sort of data—witness Google (Gmail, Google Calendar, Google Contacts, etc.), Apple’s iCloud, Microsoft Office 365, and Yahoo, to list a few prominent examples. Of course, when you’re providing a service to hundreds of millions of people, the kind of elasticity and scalability that cloud computing offers is essential. From the user’s point of view, cloud-based syncing tends to be more reliable—and potentially faster—than syncing with a single server.
If you’re looking for service providers, it may not always be apparent what sort of infrastructure they use—but in many cases, you won’t notice a difference one way or another.
One key feature that differentiates modern cloud syncing from the click-a-button-to-sync norm of yesteryear is push synchronization, which means that changing data in one place causes an immediate update of that data on your other devices, rather than forcing you to wait for a manual or periodic sync to occur. Because push updates happen immediately, the probability of a conflict occurring goes way down—there usually isn’t time for data to change in two places between syncs.
I should clarify that push synchronization rarely goes directly from one device to another. What normally happens is that you change (add, delete, edit) data such as a contact phone number on one device, and as soon as you’re finished, your device pushes that change to the Cloud, which holds the master copy of the data. And then, as soon as the change registers there, the cloud service pushes it back down to your other devices. In this way, a push update may consist of two or more separate push operations, but all of them may occur within the span of a few seconds.
What I’ve described so far is the way push synchronization works for contacts, calendars, tasks, bookmarks, and the like. But email is a bit messier.
With push email, as soon as an incoming message arrives on your mail server, the server sends it (or, in some implementations, a command telling the client to fetch the messages) to the email clients running on each of your devices—as opposed to your email client fetching new messages manually or on a schedule. Similarly, when you delete, file, or otherwise modify a message, that change is pushed up to the server and then (often, but not always) pushed down to your other devices. So far so good.
But there are several different technologies for push email (for example, iCloud uses one method, Yahoo uses another, and Exchange ActiveSync uses a third). Not every client or device supports each method. For example, in desktop email clients such as Apple Mail, the nearest equivalent to push delivery is called IMAP IDLE. As the name suggests, it works only with IMAP accounts—and even then, only if the IMAP server in question happens to support that feature (iCloud and Gmail do; with other providers, it’s hit and miss). But IMAP IDLE isn’t supported on iOS devices. On the other hand, although Exchange servers can push email to the Mail app on an iOS device or to Outlook on a Mac, Apple Mail on macOS doesn’t support push email from Exchange servers.
So, email is somewhat of an outlier when it comes to push delivery and syncing—sometimes it’s just like other kinds of push updates, sometimes not. But because email messages normally don’t change after their receipt (although they may change locations), it’s still possible to keep multiple clients in sync, with little risk of conflicts, using manual or scheduled updates.
Perhaps the most confusing thing about syncing personal data to the Cloud is how to coordinate multiple services. For example, let’s say I use iCloud for my Home calendar and Google Calendar for my Work calendar. That’s no problem; each of my devices can connect independently to each calendar server, and no conflicts should arise. The Calendar app on my Mac connects to my iCloud account, my Google account, and my Exchange account—and shows all the calendars from each one; the Calendar app on my iPad does the same thing. The calendars remain tied to their respective services, even though they’re all mixed together on my screen.
But what a lot of people seem to want to do is sync calendars from multiple cloud services with each other. For example, you may want to see your iCloud calendars while in the Google Calendar Web app, or vice versa. In general, this sort of arrangement is asking for trouble, because each cloud service wants to “own” the master copy of your data. It is possible to share a calendar publicly with Service A and subscribe with Service B (for example, you can now share an iCloud calendar with Google Calendar). But I recommend against this because the calendar from Service A will be read-only on Service B, the shared calendar won’t be completely private, and you could end up with duplicate calendars and events on your devices.
If it’s extremely important that you see exactly the same events in multiple cloud-based calendar or contact Web apps, you can use a third-party service that functions as a central repository, syncing independently with each service; then you sync each device with that service instead of with all the others. Examples include Memotoo and NuevaSync (which also offers an option to deliver push email from Gmail to mobile devices that would otherwise not support it).
I’ve already mentioned some quirks of syncing certain types of data, but I wanted to provide a bit more detail about what to look for in each category:
Lots of companies offer calendar and contact syncing via the Cloud, and far more offer email via IMAP or Exchange. Here’s a quick rundown of a few well-known providers, with the services they offer:
For advice on what to look for when evaluating these or other providers, read on.
When you want to sync personal data via the Cloud, every provider is going to make claims about being the best, most compatible, and most reliable. Dig a little deeper before believing any of it. Here are some things you should look for:
If you’re wondering which service(s) to use for cloud syncing, my advice is pretty simple: