This is my simple guide to designing a UI.

Keep it simple.
Make sure your design is uniform across applications, and especially within your own app. Hopefully even across different platforms.
Make your UI pleasant on the eye.

Make sure the user can actually use your application. Don't overdo the glitz. Make sure fonts you use are readable, as are the buttons and lables you apply them to. Make sure it won't take 3 minutes for your menu to pop up because of your drawing code. Don't use crazy wacky psycadellic colors, because it will be hard to reproduce them across platforms, and often leads to an ugly UI. More importantly, it leads to something difficult to replicate; which makes it harder when you're writing another app (or another part of your app). Make sure the user can get to where they want to get in your app quickly and efficiently; they'll put up with it the first time, if only for the eye candy, but after that they'll get tired of it. Don't overdo the eye candy. Put it in an easter egg or something.

I see so many applications that would be SO much better if only the writers had followed this style, so I decided to node it.

My twopenneth:

  1. Keep the user informed in a timely manner
  2. If your app does something that is mirrored in the real world, make sure your app does it the same way.
  3. Support Undo and Redo - Nobody's perfect
  4. Don't surprise the user
  5. Prevent errors or cope with them
  6. Remember key facts for the user
  7. Make your app as efficient as possible, reduce frequently used actions to the minimum steps possible
  8. Make your app japanese in style - minimalist and elegant
  9. Error codes suck - RAM and disk space is cheap; provide a verbose and simple error message.
  10. Provide documentation, document the install, starting the app for the first time, common tasks and a complete UI reference.
  11. Don't code for coders. Get your relatives and non-techy friends to evaluate your app: work with them informally to improve both the app and the UI. An hour spent with a non-techy user will improve your app immensely.

This list was originally read at: but has been tailored by my own experience. I recommend reading Jakob Nielsen's entire site - it's worth it if you want your UI to not suck.

The all-important Principal of Least Astonishment:

Do Whatever Astonishes the User Least.

Elsewise, I would recommend:

Make it easy to use the entire app without touching a mouse.

Provide clear labels that explain what is going on.

Screens are big these days; You don't have to cram everything together. Provide some space. Don't use a drop-down menu when you can use radio buttons. Make fonts big. Make widgets and icons big.

Don't do anything that resembles the Start menu.

Log in or register to write something here or to contact authors.