I’m excited to announce my latest project, the WatsonKit framework and Sherlock for iOS and Web! This project is a four-parter: a flexible framework for (1) iOS and (2) Node.JS, (3) three beautiful, Material Design inspired apps for iPhone, iPad, and Apple Watch, and (4) a gorgeous web interface.


1. WatsonKit Internal Framework

The internal framework, dubbed “WatsonKit”, handles the speech-to-text-to-action-to-data-to-model to view process (using MVC principles) and is currently hooked up to use the IBM Watson, Wit.AI, and WolframAlpha APIs. WatsonKit’s key feature is its flexibility to add new services and functionality quickly and easily.

One of the major difficulties in creating integrations with the these services is a lack of native iOS frameworks. So I decided to write my own.

The framework works as follows:

The power and flexibility of WatsonKit allows for unprecedented use-cases. For example, a user can type or say “Tell me more about China”, as if chatting with a friend, and get a response back quickly and accurately – a major step up from the way searching is done today.


2. Sherlock for iOS

The next step after creating WatsonKit was to create “Sherlock”, a partner that could demo WatsonKit’s abilities beautifully and simply. The iOS applications’ designs were inspired by the best from iOS and Material Design:

Watson - iPhone

The app features a series of cards to easily display search history. These cards include a Saffron Concept Card, a Bay of Many Blue Audio Card, a Dogwood Rose Picture Identification Card, and a Cerulean Translation Card. Detail views for each of these cards display as if unfolding each card. Every animation was carefully chosen to best suit the goal of the application and further communicate its purpose to a potential user:


3. Sherlock for Web

Next, Sherlock needed to be expanded to be used anywhere, on any device with at least a browser. Using the same design principles as for Sherlock for iOS, Sherlock for Web was born:



WatsonKit and Sherlock for iOS and Web can be extended further as an in-app or server-side framework allowing apps to quickly and easily integrate natural language search into their applications. Queries such as “Apps I got this month” or “People I met this week” allow a user to interface with Sherlock as they would a friend. The possibilities with a flexible framework are nearly endless!