Brandon | Time Machine: What a GUI should haveJacob had a section for tutorials/articles on his site, this one managed to get picked up by the wayback machine.
What a good GUI should have
What a good GUI should have
Written by Jacob Palm (The Walrus)
The article below is copied directly from an article I wrote for QB Express issue #10.
What your GUI should contain of accessories is fully up to you. But there is some accessories the user would expect to find in a GUI. Below I've made a list of some accessories every GUI should have.
Nice controls with reasonable colors
The most important thing in a GUI is (in my opinion) the design of the interface. Let's say for example that somebody wrote a simpleamazing GUI, which could do just about anything, but used bright green text on yellow windows, and had buttons with random shapes. Nobody would want to use a GUI like that (Okay, maybe that was a somewhat extreme example, but I think you got the point).
A program launcher
A desktop, program manager, filemanager or something like that, which launches programs (both internal and external). I know you may think this sounds stupid. I mean, all GUI's have a program launcher, right? Well, no. I've actually seen a lot of GUI's which didn't have the ability to run standard DOS programs. Users don't like when they have to quit the GUI to run a program, and then start the GUI again. Many users would ditch a GUI without a glimpse if it couldn't run standard DOS programs.
A filemanager
If the GUI doesn't use a filemanager as the program launcher, then a filemanager should be included. Users like it when they don't have to quit the GUI to perform file operations. Many people also find it easier to perform file operations using the mouse.
Mouse support
Mouse support is not really necessary, but it's a big plus if a GUI has it. It should however be able to function without mouse (if the user's mouse is broken or not connected correctly or something like that)
A file viewer/editor
Let's just face it. MS-DOS Edit is a good text editor, but it doesn't belong in a GUI, since it runs in pure text mode. It's okay if your GUI uses MS-DOS Edit to edit files, but it'll look better if you make a graphical text editor. This has proven to be a hard task, though, and therefore many GUI's just use MS-DOS Edit (including mine, for now)
Entertainment
The user has been working in your GUI for hours, and needs a brake. What would be better than some kind of entertainment included with the GUI? It doesn't have to be a big 3D shooter, just a small game like Tic Tac Toe or reversi. The game should have some AI, so that the user can play against the computer if he/she doesn't have anybody to play with.
Settings and customization
Users like it when they can change the colors of the GUI, add a background image, modify icons and change settings. Some just use the standard settings, but most users like to personalize the GUI. Customizable icons is definitely a plus, users don't like having to type the path and filename of a program each time they want to run it.
Documentation and a proper error handler
Many GUI's just exit without a warning if an error occurs, while others give an error code. Unless the user is a QBasic programmer, he/she won't know what the error code means. Therefore, I recommend that you make a proper error handler, which will tell the user what went wrong, and how the problem can be solved. It's always a good idea to include some documentation with your GUI for the user to look in if he/she can't figure out how to do something.
Of course there's more than what I've listed here. This is just a list of some of the most common things users expect to find in a GUI. You could of course release a SDK (Software Development Kit) for your GUI, allowing users to write their own accessories which fit in to the GUI nicely. Some users actually send their creations to the author of the GUI, which in some cases include it in the GUI, making it even better.
Jacob Palm
The Walrus
hvalrossen@jacobpalm.dk
Creation date : 09/06/2005 @ 9:37 PM
Last update : 01/11/2006 @ 8:31 PM
| 2013-03-01 | 4:43 PM |