This post was inspired by reading this post here. Worth a quick glance for background knowledge.
Well, basically the premise is – are we over-doing it with App “Tutorial Screens” or basically, if a small app needs such instructions, isn’t this basically trying to smooth over a fundamental flaw in the UI Design? (Of course we can argue back and forth, you know, what would Mom and Dad do without such orientation materials, and so on?)
We also had these discussions while working on Toast. Where I’d like to add my 2 cents is to try to bridge the gap between programming and UX since many programmers don’t have a sense for aesthetic and usability, demonstrated by very Database-friendly form designs but not necessarily user-friendly ones, for example, and designers almost always (I mean, how could they?) have little knowledge about what’s possible technically (and at what cost?)
I’d like to ask you to think of the middle ground; True, power users shouldn’t need tutorials and are probably pretty quickly annoyed by them, especially when it involves being shown every little detail of the app, right when you first launch it and still have no idea what it’s about and what it’s value proposition is (aka the reason why you’d want to use it). You also don’t want to lose potential users by them being confused or disoriented with your app and its design. So? …
Analytics. No, not some crazy business analytics tool to make some number-watching business type in your company fancy himself as a UX Designer-by-numbers, no, I mean some sort of simple analytics code that can monitor what your user is doing with the app, what the user has done with the app, and have the code respond to that user’s behaviour and offer him a somewhat personalized experience.
On Toast, I came up with a bit of code (that never really saw the light of day), which I called UserBehaviourAnalysis. At it’s core it did a simple thing and could be easily extended to analyse all sorts of stuff (if you programmed it to). You basically can log events as they happen and have some simple logic that triggers events/notifications.
Booorrring. Or is it? OK, simple case; I accessed this View Controller. “Is this the first time you’ve viewed this (very important to the functionality) View Controller?” Display a tutorial screen for some key features.
Take it further. I pressed this button on this screen. “OK, good, I’ll remember that.”
Now. I accessed this screen for the 20th time and can see in the App’s usage statistics (which we keep track of with NSUserDefaults) that I still haven’t pressed that button (that opens up a whole bunch of other features and functionality for the user). A little logic later and a NSNotification, and you can have a seemingly smart ‘tutorial on demand’ system working in your app.
You dig? Maybe I’ll post an API soon that demonstrates how one might use such a thing if the above wasn’t enough food for thought. Let’s face it – programming is just a tool, your brain is the part that uses that tool to create awesome things!