Extensibility in iOS 8: Explained
Extensibility, one of the new features coming to iOS 8 this fall, is one of the most significant advancements since the launch of the App Store in 2008. With Extensibility, apps can project widgets into Notification Center's today view, provide custom upload and update functionality, and custom actions in Share Sheets, hook filters into the Photos app, provide custom keyboards system-wide, and access your files anywhere via iCloud Drive or third-party document providers like Dropbox or Google Drive. And they can do all this while maintaining the high level of security built into iOS. So, what are they and how do they all work?
Like system-wide third party multitasking, Extensibility in iOS was a long time coming. It took years to get the various elements in place, like Apple's cross-communication protocol, XPC, and the daemon that runs it, leaving both SpringBoard and BackBoardd unencumbered, and preventing situations like a greedy container app getting jettisoned and taking the extension down with it.
Also like multitasking, it's a new approach that uses a lot of just-in-time smarts to get things done.
Instead of making third-party multitasking all powerful and persistent, Apple made specific API to solve specific problems, like streaming audio so you could listen to Spotify while you surfed Safari. Later they added background refresh so, instead of always running, apps could update at the best possible times, for power conservation and convenience both.
Now, instead of making Extensibility similarly all-powerful and persistent, Apple has made it just as specifically targeted. App sandboxes are maintained for security but human beings can punch through them for specific actions. iOS then pulls the interface and data from the container app, never mingling it with the host app. That greatly reduces any potential for malicious activity but still provides significant functionality.
Bidding on eBay from your Lock screen, posting to Pinterest from your Share Sheet, using a Bing action to translate a website in-place, applying a VSCO Cam filter inside the built-in Photos app, pulling up a Swype keyboard in Messages, opening files from iCloud Drive and saving them back to Dropbox, and more will all be made possible by Extensibility.
Instead of having to devise workarounds, we'll be able to get on with our workflows. And that'll prove invaluable
Widgets in iOS 8
With Today view extensions, any app can present a widget that displays information and offers a small amount of interaction right in Notification Center. That makes them only ever a swipe away. So, how do widgets work?
Share extensions in iOS 8
That's right, sharing isn't just for Apple's own services and partners any more. Now, any app can hook into the system-wide Share Sheets and present a way to upload comments, photos, videos, audio, links, and more from within any other app. So, how does it work?
Action extensions in iOS 8
Share Sheets in iOS have another name behind the scenes — activity view controllers. That's fitting because, in addition to providing sharing options, they also provide for other "activities", like action options. Traditionally, that's been system options such as copy, save, print, etc. However, just like custom sharing options have now been made available in iOS 8, so too have custom action options. So, how do action extensions work?
Inter-app photo and video editing in iOS 8
With Photo — and video — extensions, we get the ability to access filters and effects from any app right inside Apple's Photos and Camera apps. So, how does inter-app photo and video editing work?
Custom keyboards in iOS 8
Custom keyboard extensions allow developers to almost completely replace the default, system-wide iOS keyboard with ones of their own devising. Not only does that include favorites from other platforms, like Swype or SwiftKey, but it opens the door to ones that offer new languages, novel input methods, special options, and more. So, how do the new custom keyboard extensions work?
iCloud Drive and Document Picker in iOS 8
iCloud Drive and its associated Document Picker allow the app you're using to open files created in a different app, import them, move them, or export them right back out again, all without creating any unnecessary steps or complicated workflows. Everything is also automatically synced through iCloud, so changes made in one app won't only be reflected back in the original app that created the file, but on all your devices. So, how do iCloud Drive and Document Picker work?
Document provider extensions in iOS 8
Document provider extensions in iOS 8: Explained
Document provider extensions 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?
That Extensibility heralds in a new era of flexibility and functionality for iOS is impressive enough. That Apple has set them up to work the same in both OS X and iOS makes them even more so. It involved tremendous work on Apple's part — shortcuts for one system or the other couldn't be exploited — but ultimately consistency is a feature, and that discipline has resulted in a more unified, better framework for both developers and customers.
It's taken a long time for Extensibility to arrive on iOS, but there's every indication Apple has done it in the right way and put them in the right place.
Which Extensibility features are you most looking forward to?