Nate Weiner

This is an old archived post from my former blog The Idea Shower. It's where I cataloged my product explorations and releases, one of which ultimately became Pocket.

This post was published back in 2010. It may not function as originally intended or may be missing images.

ShareKit

July 06, 2010
screens

Overview

ShareKit is an open source framework that can be dropped into any iPhone or iPad app to instantly add full sharing capabilities.

How It Works

Integration is super easy.

A developer can take a url, image, piece of text, or file and just say "hey ShareKit, share this".  ShareKit will present the user with a list of services that support the content they are sharing, handle logging them into the service, prompt for any additional information such as a caption, and display an activity indicator while uploading.

ShareKit makes it easy to access individual services as well.  A developer can simply write something like:

[SHKTwitter shareURL:@"http://getsharekit.com"];

ShareKit will shorten the URL, present a dialog to let a user write a message, and even hold onto to the message to send later if the user is offline.

Features

The initial version of ShareKit already has support for Delicious, Email, Facebook, Google Reader, Pinboard, Read It Later, and Twitter.  It supports four types of content: links, images, text, and files.

ShareKit even works offline.  Users can share items without an internet connection.  ShareKit will hold onto the items until a connection is available.

The UI is also completely customizable. It is very easy to make ShareKit match the look of your existing application.

Developer Benefit

For developers, adding sharing features to an app is a source of dread.  It takes a LOT of work for each service that you add.  You have to learn each service's API, probably learn OAuth, design and build UI to handle all the interactions of logging in and collecting information, and write code to make requests and handle all possible errors.  You have to do this for every service and every service has a unique API.  It makes it very difficult to add all of the services your users request.

In the iOS SDK we have access to MFMailComposeViewController.  This is an Apple provided view that lets apps present an email dialog to the user.  You feed it some starting values like a subject line and body content and it pops over your existing application, lets the user do their thing and goes away when they are done.

This is what I wanted in my apps.  I wanted the same controller but for Twitter, Delicious, Evernote, and everything else.   That's what ShareKit is.

User Benefit

As it exists today, the user experience for sharing is incredibly inconsistent across all apps.  Because of the work that goes into adding each service, the services supported in an app are entirely dependent on what the developer has time to implement.  Ideally a user should be able to use any app they want and be able to share with all of the services they use.  By making sharing features a trivial development step, I'm hoping that we can see movement in a direction where we don't have to pick our apps based on what services they support.

Additional Services and Further Development

ShareKit is completely open source and anyone can contribute patches or additional sharing services.  Modules for Evernote, Flickr, and Dropbox are already underway.  When new services are added, they can simply be dropped into any existing ShareKit project.

If you are a developer and would like to help contribute to ShareKit, a good place to start is the list of issues and feature requests.