Different Share Sheets

Alvaro Serrano makes a great point about share sheets and extensions in apps updated for iOS 8:

With Reeder’s iOS 8 update, this means Reeder users now have two different ways to send an article to Instapaper: they can use the app’s built-in Instapaper integration, or they can use the Instapaper Extension via the Share Sheet. This looks redundant, but there’s a catch.

In order to use the Instapaper Extension, the Instapaper app must be installed on the device. But what happens if you don’t want to have Instapaper on that particular device? What if, for instance, you browse through your RSS feeds on your iPhone but only read articles on your iPad? In order to do that using Extensions, you’d need to have Instapaper installed on both devices. Using Reeder’s built-in Instapaper integration, however, you’d only need to have it installed on the iPad, which is where you’re actually going to use it.

He uses the latest Reeder as an example, but the same is also true for Unread, Dispatch, and other apps that used to have custom sharing options before iOS 8.

For developers, there are several trade-offs involved with keeping old sharing options and implementing Apple’s new action and share extensions. Do you want to handle user credentials for web services like Instapaper and Pocket, bundling a custom sharing menu that you have to manage? That would also give you more control over the entire sharing feature – for instance, users may be able to activate the service anywhere and not just from a share sheet. As an example, think of how Tweetbot could show read-later options before the iOS 8 update.

On the other hand, extensions free you, as a developer, from the burden of asking users to enter their credentials, designing a login flow, implementing error checking, or creating a UI for each supported option. You just need to support the system share sheet and pray that it’ll work. And, obviously, iOS 8 extensions will give you all the benefits of a unified system: they’re secure, they have an interface designed by their own developer, and they work consistently with other apps.

For now, I don’t think pre-iOS 8 share sheets with hard-coded options will be going away. But as the extension system matures and developers start releasing new apps for iOS 8, I believe that the need for custom sharing options will naturally decrease, letting native extensions take over and benefiting users and developers.