iOS 8 document provider extensions: Explained

Document provider extensions in iOS 8: Explained

Document provider extensions in iOS 8 are part of the new Extensibility system and allow the features from Document Picker and associated file handling to go beyond iCloud Drive to encompass enterprise storage and popular online services like DropBox, Box, OneDrive, Google Drive, and more. Because it ties into the same system and works the same way, as long as they implement the extension, Apple's making it just as easy to use anyone else's online storage as it is to use iCloud Drive. So, how does it work?

From "Open in..." to open

Traditionally there have been two ways in iOS to work on files contained in online storage providers: Download you're provider's app, find your file, and use "Open in..." to push a copy out to the app you want to use, or hope your provider's service was supported by the developer who made the app you want to use.

Apple discontinued their old iDisk app when they switched from MobileMe to iCloud a couple years ago, but almost all of the big online storage providers made apps available, including Dropbox, Box, Microsoft's OneDrive, Google's Drive, and more. Dropbox, who made an application programming interface (API) available to developers early on, enjoyed some of the widest support.

But it wasn't every app everyone wanted to use, and there was no clear, clean way to round-trip files and avoid amassing duplicates.

Until now.

How document provider extensions work

Document provider extensions hook into the same Document Picker interface that exposes Apple's iCloud Drive and largely work the same way as iCloud Drive. (See iCloud Drive and Document Picker for iOS 8: Explained.

When you install an iOS 8 app that supports document provider extensions, the associated service will be added to the Document Picker options list. So, for example, you open a text editing app and then tap to create a new file or open an existing one, the Document Picker interface would come up and, if you had OneDrive for iOS 8 installed, you'd see OneDrive as an option there right alongside iCloud Drive.

An enterprise could even disable iCloud Drive, if they didn't want employees using it on their work devices, and provide their own, corporate storage services right in the Document Picker instead.

Document provider extensions for developers

For developers, document providers are also very, very similar to iCloud Drive. For the app hosting the Document Picker, document provider extensions and iCloud Drive appear the same.

Document provider extensions become selectable options in the document picker. In addition to the standard document picker mode — the one that lets people create, open, move, etc. files — document picker extensions also have a file provider. There's no interface for it, it simply deals with providing the files, keeping things current, and saving bookmarks. For all of this, file coordination is a must to avoid read/write conflicts and potential data corruption and loss.

Because enterprise IT departments can turn off iCloud Drive support, Apple has created additional ways for developers to create bookmarks to preserve state for document provider extensions. The file provider returns and resolves an identifier.

Once a file is changed, iOS will mark it as such for sync purposes.

All together, it looks like Apple has made it easy to integrate with Document Picker, and hopefully online storage providers create their extensions and developers implement the picker, so all of us can benefit.

Security and Privacy for document picker extensions

Like with iCloud Drive, by default, no app can access the container of another app. Getting around that requires an explicit action like opening Document Picker and tapping an external document to indicate you want to access it outside its container. Document Picker runs "out-of-process" for that reason — so it can see all apps in all public containers.

When you're in an app and call up the Document Picker, then choose a document provider extension, it's Document Picker and not the host app that calls up the provider extensions interface (view controller). Likewise, it's the Document Picker system that performs actions like open on the files and moves them to the host app so you can work on them. All access is controlled by an isolation layer.

Bottom Line

It looks like Apple has given document provider extensions as much access and functionality as their own iCloud Drive, and that's remarkable when you consider the long history of iOS. And like iCloud Drive, document provider extensions make for a quantum leap forward when it comes to file handling on iPhone and iPad. In fact, since there's no iCloud Drive app, but document providers already have apps, they arguably can serve some workflows even better by providing a centralized repository where all files can be browsed, accessed, and organized.

Hopefully in the future we'll see document picker functionality pushed out even further in iOS, for example into Mail or Calendar for attachment handling. That's the best thing about Extensibility — as much as it gives us now, with both Apple and developers involved, there's sure to be even more to come.

Are you exited for document provider extensions in iOS 8? Which online services do you really want to see integrated and with which apps?

More of iOS 8: Explained

Rene Ritchie

Editor-in-Chief of iMore, co-host of Iterate, Debug, Review, Vector, and MacBreak Weekly podcasts. Cook, grappler, photon wrangler. Follow him on Twitter and Google+.

More Posts

 

9
loading...
0
loading...
47
loading...
0
loading...

← Previously

How to access and add credit to an iTunes Pass with Passbook

Next up →

Kobe Bryant went to Apple and talked about product design and basketball with Jony Ive

Reader comments

Document provider extensions in iOS 8: Explained

12 Comments

Silly question, but I'm too lazy to check - do these extensions require cloud provider access at the time? If I want to open a spreadsheet in Product X instead of in Numbers, and I am offline, am I out of luck?

It would depend on the implementation. The document provider is just an extension of the app on your phone, so it should have access to whatever the app makes available. So take dropbox for instance: if they cached your files on your phone locally, then their document provider should be able to access and offer up those local files without access to the cloud provider. However, if dropbox doesn't cache these files, then you'd need cloud access to get at them.

It all depends on how each individual document provider handles things.

That's an odd, complicating choice rather than handling things locally, and, in my coverage area, means I'll use it about as much as Siri when I'm outside WiFi. (Which is to say, not at all :( )

Sent from the iMore App

What do you find odd exactly? Providers have the choice to either do things locally, through the cloud, or both. None of the options are a one-size fits all solution. Users like yourself may want everything stored locally on the device, while other users may have 200GB of files in their cloud storage which can't possibly be stored on device. You choose the provider that offers the options you want, that's the wonderful thing about choice, and why it's so great that Apple has completely opened this functionality up to 3rd parties.

What can open a file is a separate concern from where it is stored, and it is odd to force a dependency.

Sent from the iMore App

How would you like it to work? I think it can access anything the app can access, so if the file is cached or stored locally there, it can get it.

(I mean, that's the downside to online storage — you need to be online or cache a lot.)

What can open a file is a separate concern from where it is stored - perhaps I am reading this wrong, but it seems like an irrelevant dependency is being forced here.

Sent from the iMore App

Put another way - say you have Excel and Numbers, and you want to work on your xslx file in Numbers. Should you really have to involve a (remote) third party to move from one app on your device to another?

Sent from the iMore App

I think you're misinterpreting how this works. Here are 2 scenarios:
Scenario A: You save your excel file, that you've worked on and saved in excel for iOS. You've saved this file using the default Skydrive option. The file is now in sync between your device and skydrive. The skydrive document handler can serve up your excel file, which it has a local copy of already on the device. Numbers would reference this local copy, which is also in sync with the cloud, thus any changes you make would be reflected everywhere.

Scenario B: You have an excel file that you're working on in numbers and you save it to the default icloud location. Icloud syncs this file with the cloud, again having both a remote and local copy that are now always kept in sync. You open the excel file in Excel, make edits and save it. The file still exists in Numbers, with the changes you've made, as well as icloud. The file is also now referenced in Excel so you can reopen it at any time.

If implemented properly, the user should never know all of this is happening. The only time you should ever have to worry about pulling something down from the cloud is when it's not stored on your device already, ie. a document that you create on your Mac and want to edit on your ipad.

Since there is no iOS finder type app, how will I open and view a PDF file that I have in iCloud Drive? I'm still confused how this will work. Currently I use dropbox and view these files in the dropbox app but would like to switch from dropbox to iCloud drive.

You would open your PDF app (iBooks by default, but many options in the app store), and then choose the file from there. You're basically sorting files by type, although apps will no doubt come along that allow you to view virtually every file type imaginable, from all available sources. With the new document provider extensions, it should actually be quite simple for someone to make a fully functional files.app that is very similar to Finder is OSX.