It’s been quite interesting implemented a touch based user interface for Little Soldiers HD. There is definitely a lot to learn and not all of it is entirely intuitive at first. One of my goals for the interface in LS HD is to make sure it feels at home and natural on the iphone, this means leaving behind a lot of the paradigms that exist for mouse based interfaces. When I started working on the menu screens for LS I had only one datapoint. Something that I herd in an apple keynote somewhere, with touch you can directly manipulate objects so you don’t need to control them by clicking on little boxes. The example they used was the On / Off switch you see all over the iPhone settings screens. Instead of a checkbox that you tapped to toggle [ ] to [X] , they had this nice analog switch that you could manipulate directly by touching it. I loved the intuative nature of “sliding a switch” to toggle something on or off and I wanted all our interfaces to behave that way.
It turns out, everything is not easy as it seems, and it does take some work to get things to respond as naturally as they do in the iPhone UI kit.
The largest unwritten law that I’ve discovered is that while “direct manipulation via touch” is nice, it’s not sufficient.
Rule #1 : Your UI object should always be manipulatable by a singe tap of the finger.
Direct manipulation of controls is great, but is difficult for most new users to discover. I have 3 examples here that are made better by having single tap manipulation.
The first place I ran into this rule was the in game menu.

Initially I had this great scheme where someone would drag the touch over the menu button, and then the menu would pop up, the user would drag up over the option they wanted and then when they released the touch over that option it would perform the action. It made great intuitive sense to me, Begin a touch over the menu button, the menu stays visible for the duration of the touch, ending the touch hides the menu or makes a selection from the menu. It totally failed the wife test.
Out for dinner at a steakhouse for date night, I had her try the game. I watched in horror as she tapped away at the menu button, the menu flickering on for the brief interval her finger was on the screen. “Whats wrong with the menu she asked?”. ”Touch and hold” I said, depressed knowing a good user experience is one that’s discoverable. The touch and hold code still exsists, but that night I went back and changed the behavior code so that tapping the menu button makes the menu pop up, and then tapping a menu options makes a selection while tapping outside the menu hides it.
The nice thing is that both behaviors, touch-and-hold, and tap can coexist. This makes the interface work the way the user wants it to work, which is an attribute of good UI design.
The next place I saw it was on the On/Off toggle.

I spent a day an a half getting it to be the smoothest, nicest feeling touch slider ever. When I had Alex test it, the first thing he did was start tapping it. Apparently the iPhone toggle that this one is based on supports that feature. Fortunately like with the in game menu, both behaviors can coexist and result in better usability for anyone using it.
The interesting thing about making elements in the interface “tap” accessible was suddenly the ones that weren’t were really annoying. The last example was the folder popup that shows in “title” form until the user dragged it up to reveal the play button and level achievements (not yet implemented). Being forced to drag this folder up with a swipe started to feel like a real chore so it was a no brainier to make it hide or show itself if it was tapped.
