Apple announced many exciting new features for iOS and OS X last week at its annual World Wide Developers Conference, but the feature that will do the most to change how we use iOS is called Extensions. As the name suggests, extensions allow apps to extend their functionality to other apps. But Apple being Apple, these extensions still face many restrictions in order to maintain long battery life and to keep apps secure. To understand Extensions, Ars Technica dug deep into the developer docs and the WWDC session videos and has provided the most detailed look into how Extensions will work.
There will be six different types of extensions that app developers can make:
- Today extensions, or widgets that sit in the notification center. These will be able to show limited information, such as sports scores, and basic functionality, such as raising an eBay bid.
- Share extensions give will let you share information from one app, such as links or photos, to an online service. This was previously available, but only for online services specifically chosen by Apple, such as Twitter or Facebook. Now it will be open to any online service, such as Tumblr or Pinterest.
- Photo Editing extensions let you edit photos in the main Photos app without exiting the app. You’ll be able to use photo editing features from apps such as VSCO Cam to edit the photos in your main camera roll. When you edit a photo, the Photos app will keep both the original and the edited versions.
- Storage Provider extensions let apps with a document picker select documents from multiple services, such as Dropbox, iCloud, or Microsoft’s OneDrive.
- Custom keyboard extensions let you switch from the default keyboard. Instead, you can use third-party keyboards, such as the popular Fleksy or Swype keyboards.
- Action extensions are the most interesting of the the Extensions and have the most potential to change how we use iOS. They allow apps to “manipulate or view content” in another app. For example, in Safari you could tap a Bing Translate extension that would translate the current website.
Many of these extensions provide functionality that has been standard in Android or Windows Phone and that people never expected in the walled garden that is iOS. But Apple finally has brought these features to iOS, but not without placing restrictions on how these extensions work.
For example, the third-party keyboards can only have network access if the user explicitly allows it to. Apple also requires extensions to have a “containing app.” This means that an extension must be part of a larger app with additional functionality, although Ars Technica notes that this functionality can be quite limited. Already, the third-party keyboard Fleksy has an app that does little more than a scratchpad that demoes the keyboard.
Apple also figured out a way to maintain each app’s “sandbox” to help keep apps secure. With extensions, two different apps still don’t have a way to directly talk to each other. Instead, the extension is a separate piece of software that gets run independently when used in another app. When the app is done running the extension or if the extension uses too much memory, the extension is killed.
Ars Technica asked iOS developer Eduardo Fonseca to explain how Apple is able to maintain each apps sandbox.
“Every extension is a separate bundle inside the main app bundle, containing a separate executable inside,” he said. “The funny thing is that an extension is not an app. It gets called via Apple’s System Frameworks, using a well defined interface that spawns a process and executes the extension—all the code is executed in a separate execution context, meaning nothing gets executed inside the third-party ‘App Space.’ So no risk for any apps that will support extensions (such as Safari), nor any problems about running your Extension inside other Apps. They are like oil and water—they don’t mix.”
For an even more detailed look at how extensions work, definitely check out the full article at Ars Technica, which is linked in the source below.