Modern File Management
Before iOS 11 and the Files app, file management had long been considered an area where the iPad could not measure up to the traditional computing environment of a Mac. Even though it’s still far from an ideal state of feature parity with macOS, file management on iPad is in much better shape today than it was seven years ago.
From the iPad’s debut in 2010 until the launch of iCloud Drive with iOS 8 in 2014, the most controversial aspect of file management on iPad was the system’s reliance on so-called “app silos”: rather than storing their documents in a centralized location such as the Mac’s Finder, each iPad app had to hold the user’s documents and data in its own container, which was entirely shut off from the containers of other installed apps. That design decision, a byproduct of iOS’ sandboxed nature, meant that users had to rely on features such as the Open In… menu to exchange documents between multiple apps; as a result, it was easy to end up with multiple duplicates of the same file scattered throughout the system, leading to confusion and wasting precious local storage.
Given Apple’s reluctance to provide a better solution, hundreds of apps implemented third-party alternatives to mitigate the problems inherent to file management and inter-app communication on iOS. The most popular approach turned out to be embedding the Dropbox SDK in third-party apps, allowing them to access, modify, and sync a common set of files stored in the user’s Dropbox account.
By virtue of being a web-based service that communicated natively with any app that integrated with the SDK, Dropbox could be treated as the “one truth” living in the cloud, relieving users of the need to keep track of multiple copies of documents and their version history. One common example is the proliferation of Dropbox-enabled text editors in the 2010-2014 era such as Justin Williams’ Elements, Writing Kit, and later, Ole Zorn’s Editorial. The Dropbox SDK required additional steps on users’ side (such as authentication on a per-app basis), but once set up, it offered a seamless, invisible file management experience that most closely mimicked what was possible with the macOS Finder, like opening the same file with multiple apps.
Apple began tackling iOS’ file management woes with the introduction of iCloud Drive in iOS 8 and continued that work in the centralization of the Files app in iOS 11. At first, iCloud Drive was not a standalone app on iOS, but a common layer that could be accessed from apps to browse the containers of documents from other apps. That system didn’t completely fix the underlying problem of opening the same file in multiple places, but at the very least it started exposing the filesystem structure of the iCloud Drive backend as a native file browser on iOS. This strategy evolved with the promotion of iCloud Drive to a full standalone app, culminating with its relaunch as Files in iOS 11. And with the new app, Apple also introduced their two-pronged vision of iOS file management that is still with us today as of iOS 12: given the user’s consent, apps can access the entire iCloud Drive filesystem and open specific files in-place from their original location, without creating new copies in their own containers; and, third-party apps can offer their own file provider extensions to let users store, sync, and manage documents from Files without having to use the iCloud Drive service.
Effectively, what we have today on iOS is a hybrid system that piggybacks on iOS’ app silo approach but that also provides APIs for apps to open files from other apps in-place. By default, iOS apps still have their own individual containers and they cannot programmatically access any other file or folder outside of it; however, it is possible for an app to poke a hole in the sandbox (again, given the user’s permission) to open and modify a file from another app or create a persistent bookmark to another app’s file or folder. Apps can use local storage or iCloud Drive to store and/or sync documents; they can also expose their filesystem as a file provider extension; and, by using Files and its related technologies, they can gain access to files located outside their own container. All of this is managed by the Files app, Files API, and various incarnations of Files “pickers” embedded throughout the OS.
In looking back at my past seven years of working on the iPad, I can’t deny that Apple’s improvements to file management have started coming together quite nicely for me in one integrated workflow that is leaps and bounds ahead of what we had in 2012.
My progressive embrace of iCloud Drive, file providers, and apps that use the open-in-place feature is evidence of this: over the past couple of years, I’ve increasingly optimized the way I work on the iPad (and, by extension, the iPhone) by seeking apps that use iCloud Drive and Files instead of proprietary SDKs, and which adopt modern Files technologies such as open-in-place and file coordination. Even though progress on this front has been slow, and while I firmly believe that Apple has plenty of work left to do (as I’ll elaborate later), it is possible to manage files in iOS 12 without the old frustrations of the Open In menu, duplicated copies, and isolated app silos. And nowhere is this more apparent than in my effort to find apps that use the Files document browser and open-in-place to communicate with one another about a common working set of documents.
The document browser, introduced in iOS 11, is a Files view that third-party apps can embed and use as their main root screens. Rather than offering its own custom file manager, an app that implements the document browser can present users with an interface that is taken directly from the Files app and lets them browse all their documents (both from iCloud Drive and other file providers), open and modify compatible ones, and save changes back to Files.
As I described it in my review of iOS 11:
iOS 11 document-based apps can embed a document browser – a full-featured Files view with the same design and interactions of the main app. The document browser extends Files’ functionality to every app that deals with documents, giving developers a consistent UI for browsing iCloud files and remote locations without having to create their own custom integrations. The document browser is a more powerful document picker that deeply integrates Files with third-party apps.
iOS 11’s document browser can only be used as an app’s root view; per Apple’s guidelines, it can’t be invoked from other controls or views. This will cause third-party apps that adopt the document browser to look similar at launch. The issue is exacerbated by the inability for apps to either restrict the browser to a starting location where their documents are stored or present a collection of documents they recently created.
When an app launches with the document browser on iOS 11, you’ll see recent files that can be opened by the app; if the developer has set up the app correctly, only a subset of the system’s recent files (supported document types) will appear as options. For instance, 1Writer’s document browser shows .md and .txt files in the browser’s Recents tab because it can only edit those types of plain text documents.
If you’re coming from macOS, the iOS document browser is reminiscent of the Finder’s File ⇾ Open dialog: just like Mac apps can show you a mini Finder UI to browse and pick compatible documents, so too the iOS document browser lets you navigate any directory from any location of Files. If you see an iPad app that uses Files as its main screen when you open it, that means it’s using the document browser.
The document browser got off to a slow start due to initial bugs in the first iOS 11 release, and it’s not well-suited for all kinds of document-based apps because of its design and restrictions, but adoption of the technology has picked up somewhat among developers of the third-party apps I like to use on my iPad.
Rather than providing another high-level overview of the document browser (for that you should refer to my iOS 11 review), I’m going to highlight a few examples of apps that rely on it and how I’ve built my workflows around them.
PDF Viewer was one of the first high-profile apps to switch to the document browser years ago, and it’s a great demonstration of this feature’s underpinnings. PDF Viewer uses iCloud Drive to store and sync documents by default, so it pre-installs its own ‘PDF Viewer’ documents directory in iCloud Drive. When you open PDF Viewer on iOS 12, you’re in the document browser’s Files view starting from the app’s folder in iCloud Drive. However, because the document browser is Files, you can navigate to any other location, including folders from other apps and third-party file providers, and open PDF or image files located there.
All of the features from the Files app are at your disposal thanks to the document browser: you can switch from list to grid view; you can create folders, move files around with drag and drop, and search; you can filter by tag, rename items, and view items you’ve recently worked with in the Recents page. All that you can do from Files can be done from the document browser in PDF Viewer; this grants the app native file management abilities that wouldn’t have been available if it came with its own proprietary file manager. It’s like having two apps in one, with Files being the main screen – and that’s exactly the point.
This is true for all apps that use the document browser, but PDF Viewer is a particularly good example because it leverages all of the extra customizations that Apple offers to third-party developers. First of all, the document browser’s appearance can be customized with three different themes (dark, light, and white), which is something that not even Files can do on iOS 12. Second, and perhaps more importantly, PDF Viewer can inject additional controls into the Files interface to access functionalities that are specific to the app. There is a settings icon in the title bar to open PDF Viewer’s preferences on top of the document browser; similarly, there’s a plus button to open a custom ‘New Document’ window directly on top of the folder you’re viewing; you can even select multiple PDF documents with the standard Files selection feature and merge them using another custom button embedded in the title bar. PDF Viewer also provides extensions to Export and Print documents from the copy and paste menu that you access by long-tapping a document.
These app-specific enhancements represent Apple’s ideal vision for modern iOS file management in a nutshell: Files is the one central location where documents are located and can be managed, but apps can slightly customize the experience to their needs.
In practice, I’ve found this system to work well for me: I’m trying to use iCloud Drive as my main cloud storage service these days, and with PDF Viewer’s document browser I can access all my existing documents – including those saved from other apps – without dealing with custom file pickers or duplicate copies. Everything behaves as I’d expect from Files because the document browser is Files, and I can use features I’ve come to expect from iOS, such as moving or importing documents with drag and drop or tagging them. For example, I can drag an attachment from Spark into my ‘Inbox’ folder in iCloud Drive and later open it with PDF Viewer, or download an invoice with Safari on the Mac, tag it from the Finder, and find it under that tag’s screen in PDF Viewer’s Files view. The document browser extends the iCloud Drive service and the file manager I’m already using to third-party apps, making managing files faster and more familiar as a result.
Following the release of iOS 11, Apple switched to the document browser in its suite of iWork apps for iOS. As a heavy Numbers user (I rely on the app for bookkeeping, personal data visualizations, and documents shared with the MacStories team), I appreciate how the document browser makes it easy to open spreadsheets from any location of the Files app. Besides documents I keep in Numbers’ own iCloud Drive folder, in fact, I can use the document browser to open CSV/XLS files downloaded from my bank’s website using iCab’s download manager (which is available as a file provider extension in Files) or to import spreadsheets from Yoink or Spark through drag and drop.
Apple’s implementation of the document browser in iWork could use some work though: the company has done the bare minimum to bring Files into the iWork apps, omitting any additional custom controls or enhancements to the standard document browser appearance. From this point of view, it’s fascinating to see how third-party developers are doing a better job than Apple at leveraging the document browser’s extensibility and customization. However, the core benefits of the document browser are still a good fit for iWork despite Apple’s bland implementation of it, and I’ve found myself almost having fun1 organizing all my spreadsheets and tagging them across platforms.
If anything, I’d point out that Apple’s iWork apps suffer from an issue that is common to other document browser-enabled apps too: the Recents tab aggregates all documents that can be opened from an app, including, in the case of Pages, plain text (.txt) documents that I prefer editing with Markdown text editors. Because Pages’ document browser doesn’t implement filters to show you a specific subset of files, you may end up with a long grid of documents polluting the Recents page that aren’t really items you recently edited.
The Recents tab’s mix of recently modified documents and all other compatible document types can grow confusing over time, and I’d like Apple to offer a way for apps that implement the document browser to filter recently modified files or display a list of user-created “favorite” files.2
Moving back to third-party developers, one of the most technically impressive implementations of the document browser in addition to PDF Viewer is the one found in MindNode.
For those keeping track of my favorite apps and workflows, after years spent using iThoughts I switched to MindNode for a variety of reasons: MindNode has a clean, elegant UI that revolves around panels, which can be fully resized and rearranged on the iPad Pro’s large screen; MindNode comes with a fantastic selection of iPad keyboard shortcuts and stickers to visually enrich nodes; and in its most recent major update, it added full support for external displays (up to 4K) with a special mode that can lock the viewport on a connected monitor, which I’m thoroughly enjoying on my iPad Pro connected to an LG UltraFine 4K display. But beyond all these features, my favorite aspect of MindNode is how deeply tied it is to the document browser, making Files an integral component of mind-mapping.
Like PDF Viewer, MindNode can open documents created in any folder of iCloud Drive or document providers, and it can create new files in either its own iCloud Drive container or elsewhere. You cannot switch its document browser to a dark theme, but the app’s settings are also available from a gear icon embedded in the title bar.
MindNode’s document browser stands out from other iCloud-enabled apps for its support of versions and an outlining mode separate from the main mind map editor. Versions, which have long been available in the Mac’s Finder to view and restore previous versions of a document, are based on a native API that Apple itself doesn’t expose in its own apps, and which other iCloud apps have struggled to implement over the years. MindNode uses this iCloud functionality to great effect: after long-pressing a mind map (which can be located anywhere in Files), you’ll see a ‘Versions’ button in the copy and paste contextual menu that opens a modal window with all previously saved versions of a document, going all the way back to the moment it was created. At any point, you can select an older version and decide to restore it, which will create a new file in the document browser based on that version.
Version history is a fantastic addition to the document browser, and one that makes MindNode a reliable tool for professionals who deal with large mind maps for their most important projects. MindNode has offered this feature for years (even before the document browser was introduced with iOS 11), and I’m surprised Apple hasn’t made substantial enhancements to the API to encourage developer adoption. In fact, I’d argue that version history should be a key functionality of future iterations of the Files app and become available as a system control for all documents, regardless of whether app developers decide to support it or not.
In addition to version history, MindNode also extends the document browser with an outlining feature that lets you create a new mind map by quickly jotting down your thoughts. This tool can be opened by tapping a lightning bolt icon in the title bar, and I’ve found it an effective solution for saving ideas in a structured format without having to face the blank page of the full map editor.
I wonder if Apple could steal this approach and allow for the creation of basic plain text documents directly from Files with just a few keystrokes, without having to install a separate app if all you want to do is save random thoughts or the contents of the clipboard in a new .txt document.
In my experience over the past couple of years, PDF Viewer and MindNode have proved themselves to be the most flexible and feature-rich implementations of the document browser. I also would like to highlight Pixelmator Photo, the new version of the popular image editor that we reviewed on MacStories earlier this year. Unlike other image editing apps for iOS, Pixelmator Photo uses the document browser to let you manage a library of photos you want to edit and share.
I like this decision because I use Pixelmator Photo as a specialized tool to edit images I don’t want to keep in my iCloud Photo Library forever. It makes more sense to store a collection of images in Files and iCloud Drive as “documents”; as John noted in his review, this approach also allows Pixelmator Photo to import pictures from any other file provider on iOS, including Dropbox and Google Drive, and it gives the app access to Files tags, which can then be used in the Mac’s Finder to filter the same files and continue editing them in Pixelmator Pro for Mac. However, Pixelmator Photo’s usage of the document browser proved somewhat controversial at launch as it highlights some of the core problems of file providers and the document browser on iOS.
There are two key issues with Pixelmator Photo in terms of file management. First, the app does not support open-in-place, which means that every photo you want to edit has to be imported (i.e. copied) into Pixelmator Photo’s iCloud Drive folder, creating a duplicate. This isn’t an issue for me because I do want to selectively import pictures from Photos and copy them to Pixelmator, but I can see how it may slow down and confuse users who already manage a library of pictures in iCloud Drive and external file providers. This could be remedied by adopting the open-in-place APIs I’m going to cover in a moment.
The bigger problem Pixelmator Photo faces, and which cannot be fixed by its developers, is the fact that the iOS Photos library is not a file provider extension in the Files app. Pixelmator Photo can import items from the Photos library, but it’s a custom photo picker that, you guessed it, creates duplicated copies of selected photos in the Files app. Therefore, if you’re the kind of user who wants to use Pixelmator Photo as an editing front-end for images stored in iCloud Photo Library, you won’t be able to save edits back to the original photo stored in the Photos app (like Darkroom does). It’s hard to tell how Pixelmator Photo could have its cake and eat it too (use the document browser to access all files and integrate directly with Photos too) unless Apple made Photos a provider for the Files app with support for open-in-place. Indeed I hope this is in the cards for iOS 13 and future enhancements to Photos and Files.
Two years into the document browser, I believe this feature can be an ideal solution for document-based apps that are content with the file management features from Apple’s Files app. The document browser works well for MindNode, PDF Viewer, iThoughts, simple text editors like Pretext, and other apps that do not necessitate more advanced file management or search features.
The document browser does not scale to apps that need to manage a custom library of documents and that require more complex functionalities such as smart folders, bookmarks, full-text search, or other kinds of library filters. Which is where open-in-place and file bookmarks come in.