iOS 8 Extensions
Extensions are one of the prominent new feature in iOS 8. They allow apps to communicate and share data with each other in ways that haven't been possible in previous iOS versions, while at the same time maintaining the app sandboxing functionality that is a core component of iOS security. In short, App Extensions allow third-party apps to plug into other apps, including Apple’s own. What exactly does 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.
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.
Storage providers and document pickers
One of the biggest limitations about previous versions of iOS was that if you need 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 is the first time Apple has come close to delivering anything which approaches a traditional file system in iOS.
Custom Keyboards for iOS replaces the default Apple software keyboard. Apple does place some limitations on what these keyboards can do, though. As for user privacy, custom keyboards won't be able to type into secure text input fields and will run with network access set-to-off by default; in this way, unless a user consents to sharing keyboard data with a third-party network, custom keyboards won't be able to transmit keystrokes to any service.
Share extensions, triggered from the system share sheet, will allow users to post content to websites or upload media to sharing services without Apple having to manually add social integrations to iOS as they did with Twitter, Facebook, Flickr, Vimeo, and others over the past three years. The functionality they offer is similar to Document Providers, but the process is one-way: The app can export data through a sharing extension, but not load from it. 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.
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.
The Action extension sits close to the share extension, in both OS X and iOS, they are accessed from the same button. The Action extension is used to view or transform content within the context of another app. One of the best examples of this, is a translation app that has an Action extension that can translate content in Safari to another language. Another intelligent application of this is for a password manager like1Password to write an Action extension to be run on Safari pages to fill passwords. 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. Activity extensions provide incredible new functionality to iOS 8 and to iOS 8 apps. It's important to remember that this is Extensibility 1.0, and just like multitasking has, Extensibility will no doubt evolve over time. Activity extensions imply that iPhone and iPad owners will get to spend less time navigating between apps and more time getting things done within the apps they're already using. And that's a huge win.