Our team is building a tool that requires a specific gesture on touch-based devices.
How can we teach the user this gesture?
Firstly, try to make that gesture as simple as possible (probably requiring only one finger) and as differentiated as possible from the usual ones (used for other purposes elsewhere) such as the two-finger zoom. "Differentiated" here does not imply that the gesture needs to be absolutely different but it should ideally be a less common one so that user can associate it with the functioning of "your app".
Secondly, make a small video of showing that gesture as clearly as possible. And then, involve him into using that gesture at the least 2-3 times successfully (if it is really core to the functioning of your tool) intentionally, explicitly telling him that it's a training and is a one time activity.
Thirdly, try to ascertain whether during the actual functioning of app, user is missing the gesture, and if he is, then you can always guide him subtly to the introductory gesture video you had.
I would suggest here that if the gesture requires you to teach users how to use it, then it may not be the best gesture. Usability trumps innovation in most cases. If it needs a tutorial, my advice is to replace it.
That said, my Samsung Galaxy Note has this weird zoom feature where you press two fingers on the screen and then tilt it forward or backward to zoom. There was a picture explaining it with a caption and an "Okay"+ "Show message again y/n" type of messages underneath. It was clear and to the point. I saw it twice, then turned it off. That seems to be the norm.
Look at "Hay Day" on ios. They keep repeating the action until the user does it.
They track everything you do back to a central server, then tweak the gameplay / UI to ensure everyone is having fun.
The've made millions so they must be doing something right.
I would not invent new complex gestures (like specific shapes) But it's definitely a good idea to show the user how to use existing gestures in the context of the app,
When a specific gesture-enabled action is available, I would show a quick animation that mimics the gesture.
For the first time, I would display an overlay detailing what the gesture does. For the next couple of time I would just show the animation without interrupting the flow, just to remind the user that the gesture is available.
Simple way to teach a gesture is , as they do in Temple run tutorial.
But intuitiveness is very important, user should feel/guess that gesture may work here and should be able to explore.
My point is not to relay on tutorial too much , to make the user use gestures.