Inside iOS App Extensions: Apple opens up social Share Sheets to third parties

At WWDC, Apple unveiled a new App Extension architecture for both iOS 8 and OS X Yosemite. Here's how the new feature enables new and existing web services to extend iOS and OS X to support social sharing of documents, websites, photos and other media.

Apple introduced a wide variety of new avenues for third party development under iOS 8 and OS X Yosemite that are all tied together by the common thread of App Extensions. Previous articles examined Photo Editing Extensions for Apple's new Cloud Kit-savvy Photos app, Today Extensions or widgets that appear in Notification Center, as well as system wide Custom Keyboards for mobile devices.

This article examines how the same underlying technology is being put to work to enable third parties to tap into the social integration features Apple first introduced for Twitter back in iOS 5, after a tumultuous and extended confrontation with Facebook and a silently cold war of sorts with Google.

By developing their own Sharing Extensions for iOS and OS X, third party social networks (such as deviantART or Pinterest), video and photo sharing sites (such as Instagram, Vine or Google's YouTube and Picassa), and other sharing or blogging services (such as StumbleUpon, Delicious, Digg or Tumbler) can offer users their own tools for sharing media, links, documents or other content without waiting for Apple.

This is only possible now because of the social sharing groundwork Apple had to develop (dating back to 2009) to support such sharing, as well as the security work required to enable Apple's new App Extensions architecture without exposing the system to the performance, privacy and security issues common to previous "plug-in" designs (like the notorious Flash Player plugin for web browsers, which has long plagued Mac users' battery life, security and overall system performance).

This engineering work has taken over five years to finish, in part because of the rivalry, contention and competition existing between Apple and two of the principle social network and sharing services: Google and Facebook.

The social disease rampaging Silicon Valley

The San Francisco Bay Area plays host to a series of companies all jockeying for the attention, affections, time and money of the world's consumers. Even the best of these companies have serious weaknesses.

Apple launched the personal computer market 38 years ago, and has proven itself to be unmatched at developing and delivering desirable client hardware and software development platforms.

Apple's tight partnership with Google were ripped to shreds when Google launched Android in 2008 and announced Chrome OS in 2009.Google was founded in 1998 (the year Apple released the first iMac, and the year after the Twentieth Anniversary Macintosh), and has distinguished itself as providing excellent search and highly profitable web advertising services.

Facebook and Twitter have each developed enthusiastic followings for their social networks, which have been around in some form since 2004 and 2006, respectively.

Conversely, Apple has painfully struggled at both search and social; Google has lost billions trying to build hardware and give away platforms; and Facebook's effort to deliver its own phone experience based on Android flopped so spectacularly that Twitter hasn't yet attempted to follow suit.

Each of these giants remains so uniquely good at their core competencies that they've often been forced to work together, or pay a high price for refusing to do so--as many of them actually have in their high stakes efforts to muscle into each other's territory or, alternatively, block others from muscling into theirs.

Apple's tight partnership with Google were ripped to shreds when Google launched Android in 2008 and announced Chrome OS in 2009, for example, and starting in 2010 Facebook similarly played social hardball with Apple to the detriment of both companies. In contrast, cooperation between Apple and Twitter has dramatically boosted Twitter's following on the world's most commercially desirable platforms while helping Apple to remain socially connected and make up for its own stumbles in various social networking experiments.

Apple's Ping of death

Around early 2009, Apple began talks with Facebook to integrate its social network into iTunes, enabling Apple to leverage Facebook's social graph to foster discussions and create friend circles that the media giant hoped would stoke social media discovery and, subsequently, media sales.

Facebook, which by that point was already well known for fiercely protecting access to its "social graph" data on millions of its users, demanded such "onerous terms" from Apple that the deal fell through shortly before the release of iTunes 10 in September 2010, leaving nothing but vestigial links to Facebook in the new release after the social network blocked users' ability to log into iTunes using their Facebook account.

Steve Jobs never detailed what Facebook's "onerous terms" involved, but given Apple's robust financials and Facebook's tight grip on its social content, it's likely that the social network wanted to grab both excessive control over private iTunes user data and overestimated the financial cut it could claim from any resulting iTunes sales.

Apple ended up releasing iTunes 10 with its own social networking of sorts, dubbed Ping, which Jobs described at its debut as "sort of like Facebook and Twitter meet iTunes," while adding that "Ping is not Facebook" and that "it is not Twitter," but rather "all about music."

Despite targeting iTunes' audience of 160 million active users in 23 countries and attracting the support of a series of popular artists (including Lady Gaga, who appeared during the announcement of iTunes 10 to promote Ping), the new social feature languished--largely because Apple failed to anticipate what users expected from a social network.

The open, unfiltered design of Ping immediately facilitated annoying spam laced with links to scams promising free iPhones and other dubious gifts for users who filled out surveys. The spam plague was a particular embarrassment to Apple, given the malware-free reputation it had promoted for its Macs. At the same time, Apple worked diligently to censor users' Ping profile photos and sanitize comments of anything that might offend, creating the worst possible combination of lax openness and tight regulation.

Apple's Ping looked like every other social network, offering a surface appearance that initially generated raves from many techmediapundits, the same way that cheap knockoff phones and tablets earn similar applause today.

However, Apple's lack of experience in social networking, lack of attention to detail in the design of Ping, and its lack any real long term interest in actually running a social network (apart from simply benefitting from one) resulted in Ping offering a disappointing experience that failed to attract and retain users.

Facebook's hardball prompts Apple to socialize with Twitter in iOS 5

Apple's lack of any real interest in running Ping itself (after Facebook pulled its support from iTunes) resulted in Ping essentially being left on ice until it was officially terminated two years later in September 2012.

Instead of working to develop Ping as a competitor to Facebook, Apple spent 2011 developing an architecture for iOS 5 to support third party social networks. The obvious front runners were Facebook and Twitter.In parallel with Ping, Apple also launched Game Center as a separate social network for supporting multiplayer games in iOS 4.1. While maligned by Apple's critics and competitors on a scale similar to Ping, Siri, Maps and iPhone 5c, Game Center has progressively grown in popularity, reaching 130 million monthly active users this summer due to its focus on delivering useful gaming functionality, rather than being a dead connection to Facebook as Ping ended up being.

Instead of working to develop Ping as a competitor to Facebook, Apple spent 2011 developing an architecture for iOS 5 to support third party social networks. The obvious front runners were Facebook and Twitter. However, Facebook's contention over Ping, followed by its high profile refusal to support a native iPad app, resulted in Apple releasing iOS 5 with basic sharing support limited to Twitter.

Despite Facebook's jumping to be one of the first iPhone apps (initially delivering a web app in 2007 before Apple had even opened up the iPhone App Store, and then quickly becoming the most popular native app on iOS), Facebook appeared to drag its heels in producing a native Facebook app for iPad.

Throughout 2011--the year after Apple debuted the first iPad--Facebook offered tacit support for third party Facebook apps bundled with the BlackBerry PlayBook and HP's acquired Palm webOS tablet. Likely influenced by the common perception at the time that one of these rivals (or perhaps Android 3.0 Honeycomb tablets or Microsoft's Windows 8 Metro tablets) would overtake Apple's iPad or at least offer it some competition, Facebook focused on generic HTML5 development that it could easily port across a variety of different tablet platforms.

Additionally, despite the discovery of a complete (albeit HTML5-based) Facebook iPad app within the iPhone app as early as July 2011, Facebook held back the release of its tablet-optimized iPad app until October.

Shortly before that, Apple had launched iOS 5 with Twitter integration (depicted below) and without any system-integrated support for Facebook, indicating that Facebook was holding up its iPad app as leverage to force concessions from Apple, but lost its bluff.

Throughout 2012, Facebook stepped up its efforts to poach Apple engineers in an effort to both develop a native Cocoa Touch Facebook app for iOS, and at the same time to create a new iPhone competitor, working in concert with HTC to build a "Facebook phone."

In August 2012, Facebook finally delivered its first native Cocoa Touch iOS Facebook app for iPhone and iPad. Facebook's chief executive Mark Zuckerberg publicly admitted shortly afterward that, "the biggest mistake we made as a company was betting too much on HTML5 instead of native [platforms]."

Zuckerberg added, "We burnt two years."

Facebook's two "burnt" years began at its stonewalling of iTunes 10 at the release of Ping, and continued across the first two generations of iPad as the company bet against cooperating with Apple while hoping that BlackBerry, Palm, HP, Microsoft and Android licensees would do anything but fail as iPad competitors.

In June 2012, Apple revealed iOS 6 with a new Social framework that expanded iOS 5's support for Twitter to both Facebook and Chinese social network Sina Weibo, providing single sign on to facilitate easy content sharing, integration with Siri, Notification Center and user data sync with Calendar and Contacts, as well as the ability for users to "Like" iOS App Store titles via Facebook.

While Facebook integration made it into iOS 6, the company's contention with Apple appeared to delay similar integration features from being released at the launch of OS X Mountain Lion in July 2012. The new Sharing Service developed for OS X Mountain Lion presented a system wide Share Sheet interface for sharing content across a variety of social networks (in addition to Apple's ad hoc Mac-to-Mac AirDrop feature).

Apple included Share Sheet support in OS X Mountain Lion for Twitter and Sina Weibo as well as Vimeo, Flickr and China's YouTube-like video sharing sites Youku and Tudou (but not Google's YouTube or Picasa). Incidentally, Apple also brought its own Game Center to OS X in that release (although without any social sharing integration).

Apple delivered OS X Facebook integration (above) as an update to Mountain Lion later in 2012, with similar single sign on, Contacts and Share Sheet support.

Facebook flops at Home

Zuckerberg subsequently realized an even bigger bigger mistake than focusing HTML5: all the work the social network initiated to develop a custom Android "Home" experience (rapidly prototyped using Apple's Quartz Composer software), which was intended to focus phone use around Facebook.

Facebook's Home software was made available to a select group of common Android phones (above), and was the key selling point of the HTC First (below), the flagship Facebook phone.

That device flopped at launch after just one month of sales in April 2013, despite being discounted to only 99 cents on contract. Facebook Home also failed to gain significant traction among existing Android users.

By the end of 2013, it was publicly outed that iOS was leading mobile advertising revenue for Facebook, with Apple's platform generating 1,790 percent higher returns for the company than Android, due to the fact that the premium customers Apple was attracting with iPhones and iPads were a far more desirable demographic to advertisers.

That helps to explain why Facebook has now appeared to shift its focus toward online advertising and expanding into new categories, rather than doubling down on its bets against Apple.

Social features in Photos, iPhoto & iCloud

Ping and Game Center weren't Apple's only attempts to develop social networks. iOS Photos, iPhoto and iCloud also got limited social features related to Photo Stream, a photo sharing concept Apple has been experimenting with from various angles for several years.

Apple's first modern stab at photo sharing came in iPhoto '06, via a feature called Photocasting. Similar to a audio podcast, it allowed users to share an album with friends via RSS. Sharing the RSS feed would allow others to view the shared album on the web, and 'follow' the feed via RSS to see new photos as they were added. Users could also set up a shared gallery in their iPhoto that would automatically follow and download photos from the shared feed via RSS.

RSS Photocasting was replaced by MobileMe Gallery, a more conventional web service that allowed users to upload photos and videos from iPhoto into a cloud-based web repository, where password protected access could be shared with friends via a web URL. iOS devices got the MobileMe Gallery app in 2010, which worked until MobileMe was replaced with iCloud, beginning in 2011.

For iCloud, Apple developed Photo Stream as a new feature for automatically sharing photos as they were taken on an iPhone, starting in 2011's iOS 4.3.

In late 2011, as Apple transitioned from MobileMe to iCloud, Apple phased out its "Gallery" app and web sharing site and replaced it with iCloud's Photo Stream website.

In iOS 5, the Photos app added iCloud Sharing, a feature that turned the humble Photos app from a glorified camera roll into a tool that supported photo sharing. Once enabled, the app would automatically share the last 1,000 captured photos to a user's iCloud for a month, allowing the user to wirelessly archive them to a desktop machine via iCloud during that hosting window.

In iOS 6, Photos added the ability to remove unwanted photos from Photo Stream as well as the ability to share selected albums of photos as "Shared Photo Streams," which could be optionally shared with specific users or with the general public via an iCloud URL, similar to the old MobileMe Gallery. Apple's Photo Streams still lacked group sharing features however.

That was addressed in iOS 7, where users who share an album can enable other invited users ("subscribers") to add their own photos (and now videos) into the shared stream. Subscribers can also "like" or comment on shared photos (above), similar to Facebook. Photo Streams can also be optionally shared to iCloud's public website.

Aperture and iPhoto on the Mac can also both share albums to Photo Stream and view shared Photo Stream albums via iCloud. iPhoto presents social "likes" and comments and allows desktop users to participate in conversations linked to a Photo Stream's shared images and videos (above). Web viewers can't yet post comments or likes and don't see the comment stream (below).

While Mac users can add photos to their own Photo Stream (or to a shared Photo Stream that allows subscribers to post) via iPhoto, there's currently no support for sharing any selected image to iCloud system-wide as there is in iOS 7. The Share Sheets in OS X are currently limited sending photos to Email, Messages, Facebook, Twitter and Flickr, and videos to Email, Messages, Vimeo and Facebook. iCloud didn't ever make the cut as a photo or video sharing target.

Apple's weak social "networking" features in iOS Photos and iCloud are partly atoned for by iCloud's superior sharing quality. While Facebook is far more sophisticated in terms of social photo and video sharing, the quality of the photos and videos shared is very limited. Apple's iCloud Photo Stream sharing offers far higher video quality, and also supports new iOS 7 features like Slomo video.

For iOS 8, Apple is enhancing Photo Stream's functionality under the new name "iCloud Photo Library," which will store every photo a user captures without any volume threshold or expiration date. However, just as with an email account, users will have to pay extra for cloud storage that exceeds the initial free iCloud allotment of 5GB.

Mac users are also promised a revamped Photos app to replace Aperture and iPhoto, harmonizing the features and interface of Apple's iOS and Mac photo apps. This will likely also advance Apple's social sharing and commenting features in iCloud, but the company hasn't yet detailed what it plans to change.

It appears that Apple is working to provide basic social sharing features while focusing on delivering high quality photo and video sharing in iCloud, rather than trying to duplicate the features of Twitter and Facebook. At the same time, Apple is also working to bolster its platform support for third party social networks, allowing essentially any web service to offer iOS and Mac users a direct connection to its social sharing features via the new Sharing Extensions.

Additionally, the previously considered Photo Editing Extensions serve to keep users in Photos, enabling them to apply third party photo filters and editing effects that they can then share via Photo Streams in iCloud, or via any of the built in Sharing Extensions or any new ones delivered by third parties.

Apple opens up the deets on Share Sheets

In last year's release of OS X Mavericks, Apple added social integration with Linked In, along with a new type of integration: Shared Links in Safari 7.0. This feature pulls webpage URLs from social network feeds you follow and presents them in a social bookmark list (below).

Having developed generic support for social and sharing features that are relevant to a variety of online services, Apple is now opening up support for third parties to add Sharing support for their own services. That includes Google's YouTube and Picasa, which have been ignored by Apple in favor of similar services such as Vimeo and Flickr. It also opens things up for new services and small independent sites serving regional or special interest audiences.

In addition to allowing anyone to bundle custom Sharing Extensions into their Mac or iOS apps, Apple is also enabling Twitter, Facebook, Linked In and other sites to customize their Share Sheet presentation "to create a unique sharing experience," rather than using Apple's stock Sharing Sheet user interface.

How Share Extensions work

As Apple explains in its Share Extension documentation, "the best Share extensions make it easy for users to share content with websites. If you want to create an extension that lets users perform a different task with their content or that gives users updates on information they care about, the Share extension point is not the right choice."

Under iOS, a custom Share Extension, once activated by the user, appears below AirDrop targets and above sharing services like Facebook and Twitter after users tap a Share button. In OS X, a similar presentation appears for Share buttons as well as each active Share service being exposed in Notification Center or when the user control clicks on content and selects Share.

On either platform, the system presents only Share Extensions appropriate to the type of the selected item, based on supported content types reported by each Extension. For example, in Apple's screen shot from the iOS 8 preview (below), selected photos present Share services that can handle pictures, including Messages, Mail, Pinterest (new in iOS 8), Flickr, Facebook and so on.

Once selected by the user, a Share Extension can present Apple's stock sharing UI or create a custom interface for composing a message, previewing the shared content, validating the content to be uploaded, and selecting optional features such as adding metadata tags, assigning an album to use or specifying a privacy setting for the shared item.

Apple hasn't yet opened every social integration feature to App Extensions. Social Shared Links in Safari are still limited to Twitter and LinkedIn, and Calendar and Content social integration is still hardwired to Apple's subset of supported social services (although third party accounts can of course still connect to Calendar and Contacts via open CalDAV and CardDAV protocols).

Apple also provides additional, more generic functionally via App Extensions that can be useful to both social networks and a variety of other applications, as the next segment will detail.

1) Hopefully with iOS8 we don't get to see the FB & Twitter icons when I don't have these apps installed/account info entered. It currently does show these icons whilst I don't use either app.

2) I wonder what will happen to iPhoto.ipa

3) I really hope they hit it off with the all-new Photos application. There are so many things they should consider, like these 3 4

a. the order of photos arrangement (which currently gets ignored when creating an album in Aperture and sharing over iCloud)
b. get me an overview webpage with all my shared albums, like MM Gallery had. Right now I'm sharing photos through iCloud, but people lose track of all previously shared albums
c. simply see other peoples albums by searching by email address, like so (sorry DED; I simply had to use your Gallery):

d. import .gpx file and show photos on an Apple Map that don't have any location info in its metadata

This is almost certainly the wrong place to ask this question but I'm going to do so anyhow.

Whatever happened to the ability to view my photos on a map? I think the tab used to be called "Places ". I used that feature pretty regularly and can't imagine why they would have removed it unless maybe it was infringing on someone else's patent?

I've been to England 3 times over 5 years and it was awesome to be able to just zoom into Europe on a map and then into The UK, and then into London to be able to see ALL of my London pictures grouped together instead of trying to find and scroll to 3 separate areas in my camera roll to see them all!

This post is about finding out what happened to a specific feature I used to use and love. I'm NOT looking for advice or suggestions on how I can accomplish something similar with features that exist today or how I can better manage my camera roll and enjoy faster, smaller backups. (I'm well aware of the ability to create and sync "albums" and even use filters and queries on my computer to easily populate those albums with content from whatever part of the world I like.). I enjoyed the Places capabilities for looking things up on an adhoc basis. I only used London as an example,

Whatever happened to the ability to view my photos on a map? I think the tab used to be called "Places ". I used that feature pretty regularly and can't imagine why they would have removed it unless maybe it was infringing on someone else's patent?

This is almost certainly the wrong place to ask this question but I'm going to do so anyhow.

Whatever happened to the ability to view my photos on a map? I think the tab used to be called "Places ". I used that feature pretty regularly and can't imagine why they would have removed it unless maybe it was infringing on someone else's patent?

I've been to England 3 times over 5 years and it was awesome to be able to just zoom into Europe on a map and then into The UK, and then into London to be able to see ALL of my London pictures grouped together instead of trying to find and scroll to 3 separate areas in my camera roll to see them all!

This post is about finding out what happened to a specific feature I used to use and love. I'm NOT looking for advice or suggestions on how I can accomplish something similar with features that exist today or how I can better manage my camera roll and enjoy faster, smaller backups. (I'm well aware of the ability to create and sync "albums" and even use filters and queries on my computer to easily populate those albums with content from whatever part of the world I like.). I enjoyed the Places capabilities for looking things up on an adhoc basis. I only used London as an example,

The feature is there but it's not very easily discoverable and the UI is not nearly as elegant as on the desktop.

Also, this only works from the Photos view, which only displays images in your Camera Roll. Any Albums and Events you've sync'd from your Mac do not appear in the Photos view, so you can't see them on a map and you can't browse them via the Collections UI.

Seriously hope Apple fixes this in iOS 8, rather than just building on a flawed implementation.

1) Hopefully with iOS8 we don't get to see the FB & Twitter icons when I don't have these apps installed/account info entered. It currently does show these icons whilst I don't use either app.

In Yosemite DPs you can easily enable/disable any Extensions, including those bundled with the system. So if you really don't like seeing Facebook you can turn it off as a Sharing menu option, for example. You can also enable/disable 'social' items in Navigation Center.

2) I wonder what will happen to iPhoto.ipa

Appears its functionality will be rolled into Photos. Right now there's just too much feature overlap. With one app, users won't need to fire up iPhoto just to do something like view the GPS metadata or perform edits that are slightly more ambitious than the basic tools now in the current Photos.

3) I really hope they hit it off with the all-new Photos application. There are so many things they should consider, like these 3 4

a. the order of photos arrangement (which currently gets ignored when creating an album in Aperture and sharing over iCloud)

Yes, Apple has noted that iCloud Photo Library will indeed manage image order across your devices.

b. get me an overview webpage with all my shared albums, like MM Gallery had. Right now I'm sharing photos through iCloud, but people lose track of all previously shared albums

Yes it should simplify all the various albums/shares into a single set of shared streams.

c. simply see other peoples albums by searching by email address, like so (sorry DED; I simplyhadto use your Gallery):

Currently Photo Streams are set up using a UUID you must purposely share (and can be password protected). But having a default listing of "here's my publicly shared stuff" might be an option.

d. import .gpx file and show photos on an Apple Map that don't have any location info in its metadata

​Apple did do a 180 in making Places/Faces a major feature around 2010, then burying the functionality in the iOS 7 Photos app in favor of Collections by date/location and manually created albums. Waiting to see how that will be addressed. There is a new effort to expose date/location/keyword searching.

All I want to know is: App Extensions....Will we FINALLY be able to have AdBlock for Mobile Safari.

No.

App Extensions are created for specific roles (photo editing, NC widgets, keyboards, share sheets, etc). Each of these is accommodated by iOS/OS X frameworks (exposing an "extension point" which you can think of like a cell receptor site that only responds to matching enzymes).

So developers can't create their own AEs to do random things inside any app. Also AEs are intended to do a simple task and then go away. They're not full blown apps or runtime environments, so they can't, for example, emulate a GameBoy, run Java, render Flash content. You could technically do those things in an app, but Apple doesn't allow it, and certainly doesn't allow apps to inject those sorts of things into other apps like the browser. Which would be a bad idea for lots of reasons.

There's also currently no support for a browser extension point to do something like AdBlock. On OS X, that's handled by Safari Extensions (or the extension plugin API for another browser). But Safari Extensions are not related to App Extensions in anything but name. So no, AEs won't bring adblock to Mobile Safari. Apple may choose to bring its Safari Extension architecture to iOS, but that could expose a lot of vulnerabilities and introduce performance/stability problems too, just as it already can on the desktop.