Have you ever chambered a round in a rifle? The best part is the satisfying 'shick-chunk' as you push the bolt forwards, then lock it down. Ok, maybe you haven't: but have you ever driven a car with a good, notchy manual gearbox? Or how about hitting a baseball? There's something very satisfying about these. That's what i'd like to talk about now.
What's so much fun about these actions? I think, in a nutshell, they're very tactile experiences. As you force the round into the chamber, you're in complete control of that bit of copper and lead. You feel the vibration in your hand as the firing pin clicks into position. You feel the resistance as you lock the bolt down. When changing gear in a nice car, you feel the friction point as the clutch travels, you feel the gearbox snick into gear through the gearknob, and you feel it in your butt as you plant the accelerator once it's in gear. Or when you swing for the ball, you feel it hit the sweet spot of the bat, you hear the satisfying crack, the almost-painful vibrations in the bat as the ball takes flight.
And on the other hand, if you're loading a rifle and the bullet jams, or it pings off into the grass as it somehow doesn't go in the barrel right, or if you miss a gear shift and crunch your gearbox, or if you swing for the ball but it just hits the edge of the bat - it's just so frustrating, isn't it? Even writing this paragraph is putting my teeth on edge.
Personally, I think it's all about control and feedback. You feel in control of the rifle, of your car, of that bat. You're getting feedback that says 'you got it right'. I think that's the essence of why activities like these are so good for stress relief: after a week feeling frustrated and powerless at work, you get to be in complete control of that gearbox. I really think that axis of powerlessness vs control is a powerful force when it comes to what makes us human, and tactile activities that make us feel in control are huge stress relievers, especially activites using our hands.
Which brings me to apps. How satisfying is it when there's a good-sized button in an iPhone app that you can easily touch, and you get instant feedback that you touched it by the button turning a darker colour (iOS7 notwithstanding)? Conversely, how frustrating is it when a button is too small, and it takes 3 tries to tap it successfully? And how frustrating are web apps, where (because it's all a scrollable area), button taps are delayed by half a second, so the button only goes dark grey sometime after you tap it? It just isn't a tactile experience, and to me it feels cheap and nasty.
Or the other day, when i saw a co-worker using Powerpoint on windows 8: it has the same swipe to change pages as you'd expect, but you get no feedback on your swipe until you lift your finger. They obviously thought it'd be easier to wait for the finger gesture to finish instead of showing the pages scrolling with your finger. And if you swipe left, it won't go back a page either. It's just not tactile, not satisfying to use, and really frustrating.
So, when you make your apps, please make them responsive, tactile, and make the user feel like they're in control. Don't put buttons in a UIScrollView if possible. If you can, set delaysContentTouches to NO for your UIScrollViews. Make tap areas at least 44pt. And if your designer has his heart set on a design with sub-44pt controls, see if you can make the tappable zone stretch beyond the actual visual size of thutton. Make sure your UIButton's highlighted state looks sufficiently different to the normal state (although with iOS7 coming, i'm not sure what that'll affect). In your UIGestureRecognizers, make sure you update the
UIGestureRecognizerStateChanged state and update the visuals to suit, not just waiting for the gesture completion. And so on and so forth… i hope you get the idea.
Thanks for reading :)
Thanks for reading! And if you want to get in touch, I'd love to hear from you: chris.hulbert at gmail.
(Comp Sci, Hons - UTS)
iOS Developer in Sydney.
I have worked at places such as Google, News Corp, Fox Sports, NineMSN, FetchTV, Woolworths, and Westpac, among others. If you're looking for a good iOS developer, drop me a line!