Last Week on my Mac: Consistency and iCloud

One of the overriding principles in designing the human interface to all types of technology including computers is consistency. Much of what we do with machines is built on design metaphors, and good design requires that the interface remains consistent at all times and in all circumstances.

Even small changes become irksome and error-inducing. When users are confronted with a series of alerts or dialogs, switching the meaning of the default button on them can be catastrophic. One dialog in which the default is to Cancel, among a dozen which default to performing the action, leads to many users hating that exception with a vengeance.

There are a lot of features in the desktop illusion that is the Finder which we come to rely on. When we see a document, for example, we know that we can open it, given an appropriate app and the right permissions. What you see is what you can use. When we drag an item to a different folder on the same volume, we know that it will move there rather than be copied; if we drag it to a different volume, though, we know that it will be copied instead of moved.

For all its apparent simplicity and directness of interaction, the Finder has many and quite complex behaviours, which are consistent across different Macs, different versions of macOS, and from day to day, no matter where we happen to be in the world.

When Apple decided to incorporate cloud services into macOS, it made a series of design decisions about how to incorporate them into the human interface, and how to present them to developers.

Key among those decisions was that iCloud should not be seen as another form of storage, like some hard disk of infinite capacity in the sky, but should appear as an integral part of the startup volume. This has led to the ultimate expression of dependence on iCloud by putting your Documents and Desktop folders into it, and letting macOS manage how files are stored between iCloud’s remote servers and your Mac’s startup volume.

The interface solution for this integral design is superficially attractive, but conflicts with some of the Finder’s most fundamental behaviours. Files and folders can no longer be trusted. You might see them on your Desktop or in a Finder window, but if macOS has decided to evict them from your local storage, they’re not really there at all unless and until they have been downloaded from iCloud.

Within an app, the situation is no better. An evicted document is accessed through the user’s Home folder, but may not be there at all. In many circumstances, larger documents evicted to iCloud storage could take several minutes or longer to download. Yet the only mark which distinguishes them is a thin mid-grey arrow on a miniature accessory icon. The app developer can do little or nothing to warn the user that opening that document might take a long time.

The end result might prove close to ideal on an iOS device like an iPad, which is invariably connected to fast Wi-Fi, or to a laptop Mac with a smaller SSD and similarly well-connected. Once the capacity of your local storage exceeds that of your iCloud storage, and download delays become significant, performance of Documents and Desktop folders becomes sub-optimal.

The fallback is to go for a vanilla iCloud Drive with Optimize Mac Storage turned on. Despite Apple’s use of the word drive, as in discrete storage unit, you still face the same conflicting behaviours in the Finder, but as it is you who is now moving files around between local and remote storage, they may become even more frustrating. You might use iCloud Drive primarily as an off-site backup for important files, or to share them between different Macs and iOS devices. Either way, you are most likely to expect iCloud Drive to work as any other drive would.

So it’s irksome to have to Option-drag most files to iCloud Drive so that they are copied there and not moved. There’s always the risk of forgetting, in which case you really don’t want that file evicted so you have to download it before use. Then there’s the issue of when and how macOS decides to evict files from local storage. I have an iMac running Sierra which never evicts files, and a MacBook Air and MacBook Pro running High Sierra, both of which seem to evict files when there’s loads of local free space.

The decision to download a file is a case study in quantum physics. When you select most files in an Open File dialog, QuickLook kicks in and downloads the whole of the remote file in order to build a thumbnail preview. If you dither a bit, you may find other files in that folder following suit. Trying to observe evicted files often turns out to be a race against time: the longer that you view them, the more are downloaded.

The final insult is to equip the user with almost no tools with which to manage their iCloud Drive. The one which is built into the Finder is the ability to download an evicted file, by clicking on the iCloud icon for that item. But that is a one-way trip: there is no matching control to force an item to be evicted to remote storage. Coupled with the dysfunctionality of Optimize Mac Storage, it’s a bit like getting into a lift which has only an Up button.

macOS needs a much improved interface to properly support iCloud integration. A few squiddly and readily-confused icons scattered around the Finder are far from ideal. Users need better controls, and information which could usefully go into the Finder’s Get Info dialog, for example. Ultimately, Apple needs to evolve a better and more consistent interface to iCloud which simplifies rather than makes more complex, and which works well when syncing can sometimes take minutes or more.