Industry


Ads by TechWords

See your link here


David Intersimone's picture
David Intersimone

Once More into the Code

Building touch, multitouch and gesture applications

Touch applications have been around for decades. You see many of these early single touch applications in supermarkets, bank ATMs, restaurants and airport check-in kiosks. With the advent of the iPhone and Windows 7, multitouch applications are entering the mainstream of hand-held and desktop computing. There are also higher end multitouch and multiuser systems like the Microsoft Surface and Perceptive Pixel's Multi-Touch Wall and Workstation. Let's take a quick look at what developers should consider when adding touch to existing applications and they are building new applications.

Why touch? First, it's cool (you can see touch examples in recent movies including Quantum of Solace and Minority Report). Also, the hardware is here and more is being built both in handheld and desktop form factors. Touch is also perceived to be part of the next evolution of desktop computing. The iPhone is an example of one of the new form factors that are being created. For certain applications, touch provides a more intuitive UI.

What are some of the things to think about when you are designing applications for touch? First (and always) know the problem you trying to solve if you are considering a touch based application. Consider how the application could also support multi-user multi-touch. To consider the UI, think about how people interact with objects in the real world. Rest assured, touch is not going to replace the keyboard and mouse anytime soon (although you can add virtual keyboards).

What types of applications might be good for touch-based UIs? Touch is good for applications where the user is consuming content, navigating, reading and viewing. Touch is also good for quick input tasks: clicking a button, selecting from a simple keypad, manipulating an object (ie: rotating a photo) and selecting items from a list.

There are three areas of touch:  basic touch, multitouch and gestures.  In basic touch, the user's finger replaces the mouse button.  Basic touch applications should use big buttons and wizard-style applications. Examples include Kiosk, Post Office, ATM and Self Checkout. Multitouch applications involve extremely interactions with application elements.  iPhone and Microsoft Windows 7 applications have multitouch support built-in.  Gestures perform a finger movement causing an event to fire when the gesture is recognized.  Gesture movements can be intuitive, allow for customizability and are supported on nearly all touch systems.  Examples include dragging a slider to the right or left, panning a set of pictures and zooming in on a CAD drawing.

Building touch applications requires different design UI considerations than mouse and tablet/stylus applications. For touch applications you need to use big targets for visual controls -- people's fingers are not small or thin like a mouse or stylus. You should provide adequate whitespace between controls so that you don't get false hits. Finally, program your touch applications so that they are aware of the hardware that they will run on, including screen resolution, form factor and touch sensitivity.

What hardware is needed for touch application development? If you don't have a touch computer or device, you can actually use mouse and tablet systems to do your initial design and development. If you are building iPhone applications, the iPhone SDK comes with an iPhone simulator. For final testing you will definitely need an iPhone 3G or 3GS. For Windows Touch development you can use any computer with a touch screen like the Asus EeeTop PC, HP Touch Smart PC and most Tablet laptops. For multitouch development on Windows 7 you can use the HP Touchsmart tx2 notebook and Dell Latitude XT2 laptop. More touch based devices and desktop computers are appearing every day.

My advice to all developers is to start considering and developing touch applications now. Handheld devices are appearing every day to compete with the iPhone. New touch desktop computers are appearing, especially now that Windows 7 is available. What developer tools are available? You can use the aforementioned iPhone SDK, or if you are using C#, Delphi Prism or other .NET languages, you can also use Mono Touch from Novell. For Windows application development you can use the Windows 7 SDK (includes support for the new WM_TOUCH and WM_GESTURE Windows messages) with your Windows programming languages. From the company I work for, Embarcadero Technologies, the recently released RAD Studio 2010 has integrated component support for touch, multitouch and gestures.  [Note: a big thank you to Chris Bensen, Seppy Bloom, and Thom Gerdes of the Embarcadero R&D team for their help in the writing of this blog post.]

If you are building and deploying touch applications, post a comment on this blog. I'd love to hear your success stories.

Programming is Life!

Recent news for developers:

David Intersimone (David I) is the Vice President of Developer Relations and Chief Evangelist for Embarcadero Technologies. My company blog is at http://blogs.embarcadero.com/davidi

What People Are Saying

Building touch, multitouch and gesture applications

Touch is good for applications where the user is consuming content, navigating, reading and viewing.

Good to see you here!

I didn't know you had a blog on here, David.

Cool article! Keep up the good work.

Do not underestimate touch

The first thing you see when novice users (people that never touched - pun intended - a computer before) is to reach for the screen.

I have seen this behaviour over the decades that I have been involved in computing.

That screen has a magic attraction, so better to use it to the fullest!

--jeroen

solution in search of a problem

> Why touch? First, it's cool

Its cool is always a good reason for tech..

>Also, the hardware is here and more is being built

Use it because it exists. Ok.

>Touch is also perceived to be part of the >next evolution of desktop computing.

Its the next big thing.

Three reasons as vain and shallow as possible.

Is there a use for touch?
Yes.
But touch for the sake of touch like my sister's HP Touchsmart is ... shallow.
Or for Mac users.

I dont want my Sony Vaio having fingerprints and I dont want the kids to touch our desktops screen either with their grimy fingers but especially, I dont want to move my hand away from the mouse or keyboard.

The Touchsmart is 'cool' and its the 'in' thing but it also gives me shoulder pain after watching and flipping pictures after 5mins. I much prefer doing that with a click off the mouse or a touch of teh space bar.

I have a few great uses for the touch since I first saw teh asian dude at TED demonstrate his but those are very specific.
The things it is claimed it will do on a laptop seem to be nothing more than a case of being 'cool'.

"Ooh, look! I can expand this photo!!" is cool but like with most things, you will quicly wonder if thats it.

I understand though the urge of manufacturers. The prices of LCD screens has dropped so much that I bought a 24' LCD for under 200$.
Touch screen will allow manufacturers a reason to justify 400-600$ displays again just like in the good ol' days (for them).

I, on the other hand, will sit at my laptop and wonder what is it that I do on the computer which could be enhanced by touch.

So far, nothing has hit me which isnt 'just cool'.

Bad article

The reason ? Mixing the consumer and business user needs. Here's some points to think of :

iPhone is NOT (sorry for caps) desktop computing. This affirmation makes me think the author does not know what desktop and/or computing means.

CAD drawing is definitely not a place to come with touch and gestures. Minority Report looks awesome but has nothing to do with CAD drawing. Even the freshest beginner in this field will laugh at the idea. Has the author ever been into a CAD workshop ?

Spend a few hours with someone working with an enterprise application (not Windows Media Player, I mean a serious one) like SAP and see how touch and gestures might help. The idea of having accounting department employees waving their arms in front of their huge screens all day long is laughable. No, seriously, please go and see those regular office workers!

Yes, touch control is useful for simple, occasional tasks performed on small screens (iPhone, ABM, jet-fighter MFD etc) but what we call desktop computing, especially business desktop computing is a totally different beast.

When you go to the airport,

When you go to the airport, don't you see the checkin machines?
When you use your credit card in the bank. You only use the a keyboard casher?
In an hospital with a medical staff moving continuously, Don't you see touch anywhere?

Where are you looking for a business oportunities, in an 80's ERP like SAP???

Have a good night.

> Spend a few hours with

> Spend a few hours with someone working with an enterprise application like SAP and see how touch and gestures might help.

Poor argument. With the advent of touch, applications will *change* to respond to this. True, SAP programmers/administrators probably won't see a lot of "touch" in the foreseeable future, but the managers that look at those pretty SAP generated reports sure would like it.

> Yes, touch control is useful for simple, occasional tasks performed on small screens (iPhone, ABM, jet-fighter MFD etc) but what we call desktop computing, especially business desktop computing is a totally different beast.

It's a different beast now. But touch can provide the means to really enrich the user's experience and make things *easier* to use. Last I checked, if you can make things more intuitive, you make them easier to learn. Which is something managers at big companies like to hear.

So, to sum it up, I think your post is quite short sighted.

Very Nice Article

Thanks for the very nice piece of information. I was actually caught between whether to start developing the touch apps or not. The article seems to push me toward a final decision.

Whenever something related to touch is seen where people can express their views freely (as in a blog-post), I always see the mixed opinions; some people welcome it, some others call it unnecessary and expensive. Although this is almost always the case in public forums, both the views have valid points to support them. So a person looking for a decision is likely to get confused.

I'm still not completely sure if the technology will catch on and people will welcome it broadly. After all, typing on a virtual keyboard does not exactly provide the same experience as on a real board. It might be easier for the lots who are starting their journey with the virtual keyboards, but it doesn't match the level of comfort the experienced people already have with the real ones. Seems like a battle between new and old. Right now it's difficult to predict the winner.