One of the major features of iOS 8 is support for app extensions. Apple designed extensions to allow app-to-app communication -- long lacking in iOS -- while maintaining the secure sandbox that has long been one of the foundations of security in the mobile OS.
What, exactly, do extensions do? Apple defined a handful of ways that apps might need to communicate with one another or with parts of the OS and from there created extension categories. Here's a rundown of each extension type.
[ InfoWorld's Deep Dive explains liquid computing: The next wave of the mobile experience. | The 3 ways the Internet of things will unfold. | Keep up on key mobile developments and insights with the Mobilize newsletter. ]
One of the most anticipated additions to iOS 8 is support for third-party keyboards, which represent a specialized type of extension. There are a number of keyboards available that range from variations on a traditional keyboard to swipe-entry style keyboards to full graphical keyboards where you "type" images rather than letters. Keyboards download from the App Store like apps. Making them available system-wide involves going to General > Keyboard > Keyboards in the iOS 8 Settings app, selecting a keyboard, and toggling a Full Access switch. It's worth noting that for security purposes, Apple doesn't allow third-party keyboards to be used for passcode input or with secure text input fields.
Today widgets in Notification Center
App developers can now add custom content to the Today screen in the iOS Notification Center. This can include reminders or tasks, news or online content, the ability to interact with an app, or a quick shortcut to launch an app. These extensions become available when an app is installed, and you can switch them on or off (and reorder them) using the Edit button at the bottom of the Today screen.
The usefulness of Today widgets can vary significantly depending on how extensive a developer has made them and whether the apps that you use frequently offer them. In short, they might provide value or they make tasks more efficient -- you'll have to try them to find out.
Keep in mind: Under the default iOS settings, the Notification Center can be accessed while a device is locked. If an app contains sensitive or personal information, you may want to consider disabling the associated widget. At the very least, you should test it to see if this is the case before deciding to leave it enabled.
The photo editing extensions probably have the most tailored or limited capability. They are designed solely for image and video editing apps to make filters and special effects available to Apple's built-in image tools: the Photos and Cameras apps. That's a great feature if you edit a lot of visual content on your iPhone or iPad; it means you have a wide range of tools at your disposal without having to work through multiple apps to get the effects that you want. Because all extensions are part of independent apps, however, it also means you have access to other features in the apps beyond filters and effects.
Storage providers and document pickers
One of the biggest frustrations about previous versions of iOS was that if you needed to use multiple apps to work on a file or piece of content, you had to go through multiple export and import operations to move the file from one app to another, often with a copy of it being saved by each app in the chain. Editing photos was a great example of this, but editing documents also fit the bill.
With storage provider extensions and the new iOS 8 document picker, this changes dramatically. An app that has a storage provider extension can make its sandboxed data store of content, documents, or files available to apps via an iOS 8 document picker, typically presented as an open or import dialog. This represents the first time Apple has come close to delivering anything approaching a traditional file system in iOS.
While document pickers allow an app to browse and open files, the share extension makes it easy to send content -- files, URLs, images, text, and so on -- to other apps using the standard iOS share sheet. Share sheets aren't new to iOS 8, but previously only the items chosen by the developer were listed as places to send content. In iOS 8, any app with a sharing extension becomes an option in every other app's share sheet provided the app can accept the content.
That doesn't mean every app with a sharing extension is automatically listed in every other app's share sheet. Users enable target apps as options on a per-app basis by tapping the Share button and then scrolling to the More icon in the list of sharing destinations, which brings up a dialog to enable/disable available apps as well as to reorder them.
In enterprise environments, it's important to note that completely open sharing between apps using sharing extensions and document pickers can represent both an opportunity -- users can work more efficiently, create personalized multi-app workflows, and share content more easily -- and a challenge, as these technologies enable a much freer flow of sensitive business data.
Apple hasn't ignored this issue. The iOS 8 EMM (enterprise mobility management) framework allows apps to be designated as managed or unmanaged. Managed apps are those installed by an EMM solution or from an enterprise app store, while unmanaged apps are those installed by users from Apple's public App Store. This framework, introduced in iOS 7, allows administrators to block the sharing of data between managed and unmanaged apps, and that block is imposed on iOS 8 extensions.
The only sign of this block (or even that apps are managed or unmanaged) to users is that only managed apps with extensions will be visible for sharing. Also, custom keyboards won't be available in managed apps, unless the keyboards themselves were installed as managed apps.
Similar to sharing extensions, custom actions allow specific tasks to be performed on content within an app. Some examples are loading credentials from a password manager, translating text from one language to another, and adding a watermark to images.
Custom actions inject functionality from the app that contains the extension -- Bing Translator, for example, in translating text -- but only for a defined task within the app where the user is viewing or working with content. In some cases, custom actions may only be available in specific apps or specific types of apps. They are also enabled and accessed from the share sheet like sharing location -- by scrolling past the list of built-in or previously enabled actions and tapping on the More button.
Extensions represent Apple's acknowledgement that to be truly effective tools, iOS devices need streamlined and efficient ways for third-party apps to interact with one another in a variety of ways. With extensions, iOS 8 becomes the first iOS release where it is practical to build multi-app workflows like those commonly used on the desktop. In that respect, they are potentially the most important addition to iOS to date.