Home > Articles > Programming > General Programming/Other Languages

Providing Live Touch Feedback in iOS App Demos Using TOUCHkit

  • Print
  • + Share This
There is always compromise involved when recording a demo for an iOS app — either you record what's on the device screen (without showing the user interaction) or you show a person using an actual device (and have to deal with screen glare plus the user's hand blocking the screen). Erica Sadun has developed a tool that provides the best of both approaches without the drawbacks, and she describes the tool, called TOUCHkit, in this article.
From the author of

Have you ever needed to record a demo for an iOS app? There's always compromise involved. Either you use an overhead camera and deal with reflections and the user's hand blocking the screen, or you use a tool like Reflection (available for Mac and soon Windows). Either way you only get to see what's directly on the iOS device screen. Reflection-style recordings lack any indication of the user's touch and visual focus.  To deal with this, I developed TOUCHkit. TOUCHkit provides a live touch feedback layer for demonstration use.

Demos play a key role in app development. From marketing to how-to support, they show how your application works by mirroring real-world interactions. With TOUCHkit, you can see both the screen that you're recording as well as the touches that create the interactions you're trying to present.

Here's a demonstration of TOUCHkit in action.

You can also download a copy of this brief sample video.

TOUCHkit in a Nutshell

TOUCHkit provides a way to compile your app for both normal and demonstration deployment — you don't change your core application to use it. It's designed to work as a single toggle, providing builds for each use. You add touch feedback by switching on the TOUCHkit feature, without otherwise affecting your normal application code.

To enable TOUCHkit, you set a single flag, compile and use that build for demonstration. For App Store deployment, you disable the flag. The application reverts to its normal behavior, and there are no App Store unsafe calls to worry about.

#define USES_TOUCHkit    1

TOUCHkit assumes that you're using a standard application with a single primary window. When compiled in, the kit replaces that window with a custom class that captures and duplicates all touches, allowing your application to show the user's touch bubble feedback.

There is one key code-level change you must make, but it's a very small one: in your application delegate class, you define a WINDOW_CLASS to use when building your iOS screen.

#if USES_TOUCHkit
#import "TOUCHkitView.h"
#import "TOUCHOverlayWindow.h"
#define WINDOW_CLASS TOUCHOverlayWindow
#else
#define WINDOW_CLASS UIWindow
#endif

Then instead of declaring a UIWindow, you use whichever class has been set by the toggle.

WINDOW_CLASS *window;
window = [[WINDOW_CLASS alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
  • + Share This
  • 🔖 Save To Your Account