An In-Depth Look at App Extensions in iOS 8 and Yosemite
Extensibility, one of the iOS 8/Yosemite features for developers announced by Apple during the Worldwide Developers Conference, promises to bring a range of new functionality to the app ecosystem.
The feature is designed to allow third-party apps to share services with other apps, create widgets for the Notification Center, and develop custom system-wide keyboards, letting apps and services work together and interface with iOS and OS X as they never have before.
Federico Viticci of MacStories has taken an in-depth look at Apple's Extensibility initiative, explaining the various types of app extensions available to developers and how those extensions will work on both iOS and OS X. There are seven general ways that extensions can be used, as detailed by Viticci:
- Today (iOS and OS X): widgets for the Today view of Notification Center
- Share (iOS and OS X): post content to web services or share content with others
- Actions (iOS and OS X): app extensions to view or manipulate inside another app
- Photo Editing (iOS): edit a photo or video in Apple's Photos app with extensions from a third-party apps
- Finder Sync (OS X): remote file storage in the Finder with support for Finder content annotation
- Storage Provider (iOS): an interface between files inside an app and other apps on a user's device
- Custom Keyboard (iOS): system-wide alternative keyboards
One of the most intriguing aspects of Extensibility, app widgets in the Today view of the Notification Center, was demoed on stage during the keynote. A SportsCenter widget displayed sports scores and an eBay widget offered a way to keep an eye on auctions. Philips later demoed how a Hue widget might allow users to control lights directly from the Notification Center. Apple is said to be encouraging developers to keep widgets simple, with iOS 8 preventing system-intensive widgets with complex features.
Action-based app extensions will also bring major changes to iOS, allowing apps to extend their functionality to other apps. On stage, this was shown off in Safari on Yosemite, using the Bing app to translate Japanese text, and through a Pinterest tool that allowed it to capture an image from Safari to save to the Pinterest app.
Custom keyboards, one of the major surprises at WWDC, also fall under the extensions category. Apple has, in the past, been reluctant to allow third-party keyboards due to security concerns but there are a number of precautions in place. Custom keyboards are unable to type in secure text input fields, like those used for passwords, and by default, the keyboards will not have access to keystrokes.
According to Viticci, the developers he's spoken have reacted with excitement about all of the possibilities offered by Extensibility, and believe that "a new class of apps will be possible thanks to extensions."
Today, it's difficult to quantify the impact that extensions will have on the iOS app ecosystem, but I think it's safe to say that, considering developers' reactions to Apple's announcement, we're going to see plenty of cool new stuff this Fall.
iOS users interested in more information on Apple's Extensibility initiative, how app extensions work, and how they might be used by developers should check out Viticci's full extensions piece on MacStories.
Top Rated Comments
Poor dwd3885, won't be able to write keylogger malware keyboard for iOS. Boo hoo :(
That's guaranteed security for your card information. As we've seen on Android, there are many keyboards that harvest far more information (like contacts) for the privilege of using a different keyboard for free.
I'm sure Apple will open it up in the future, but only once they have a rock solid way of ensuring there are no flaws in implementation.
I suspect that if iOS 8 is jailbroken, a flaw in extensions will be the main exploit.
Why not provide screenshots or videos of all the functions mentioned above? This is basically reappropriating language from Apple's website. Nothing in depth here.
darn! I've been doing that on android for years and now I won't be able to!