Skip to content

Instantly share code, notes, and snippets.

@jancborchardt
Last active December 19, 2015 14:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jancborchardt/5967457 to your computer and use it in GitHub Desktop.
Save jancborchardt/5967457 to your computer and use it in GitHub Desktop.
Basics of Unobtrusive Interface & Interaction Design

General Design Guidelines

Make decisions, minimize settings

People should not need to fiddle with settings. When there is a decision to take, most of the time it’s better to go with one (on grounds which one is better) than to offload this decision to users as a setting.

Save often

People should not be required to press a »Save« button to have their data saved. The app should always save everything that is typed. This can be achieved by a combination of several save mechanisms:

  • every 300ms after the person stopped typing something
  • when the app is exited or switched
  • as soon as the field in question loses focus

Specific Design Patterns

Show password toggle

Sign up forms have traditionally had an extra »confirm password« field – which is useless since the password is obfuscated both times, maximizing the potential for frustration. Modern mobile operating systems show the last typed letter for a short time so people can verify what they type. Even better is a means of verifying the full password, especially for long passwords. That’s what a »show password« toggle in the form of an eye icon on the right of an input field is used for. (Wifi connection dialogs have done this for a long time in the form of a »Show password« checkbox, and Windows does this as well natively.)

@jancborchardt
Copy link
Author

Notes to put in there:

  • We strive for simple software which allows you to do your work fast.
  • We keep the interface unobtrusive as to not interrupt your workflow.
  • We minimize configuration options and solve them through good defaults.
  • We don’t want people to have to fiddle with the technology, because that would be wasting their time.
  • We’re not building our apps to be the same as existing apps, with strange features, complicated controls and other confusing parts. If you want that, use these other apps.

More specifically:

  • Software should be intelligent enough to automatically sort and categorize. By time, by topic, by people. Very often, there is a more intelligent way to sort things than just alphabetically.
  • Language should be clear and human. Error messages should sound like a human wrote them, not a machine.
  • At the same time the interface should not be too personal. No use of »I« or »me« and even the good alternative »you« – as in »your files«, »shared with you« etc should be reduced, in these cases better just »Files« and »From others«.
  • Dates and times are more useful when relative. Absolute dates like »June 19, 2013 1:26:56 PM« are way too detailed, when a simple »3 days ago« or »6 minutes ago« is much more telling. Hovering should reveal the detailed date, as in the Files app.

@jancborchardt
Copy link
Author

  • scrolling down into the past with lazy loading
  • scrolling up into the future with pull to refresh / automatic loading of new items
  • automatically check web addresses for secure connection and prepend protocol if not given

@jancborchardt
Copy link
Author

Loading feedback spinners!

@jancborchardt
Copy link
Author

Animation to support interaction

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment