[JDEV] Jabber Client Design Tutorial
rusty at curry.net
Tue Sep 25 11:33:34 CDT 2001
"Michael Brown" <michael at aurora.gen.nz> wrote:
>> Don't worry, I'm not going to flame - I agree with what you're
>> saying, but it's important to say why they (I suppose I should
>> use the word 'we') build clients that appear ugly to a lot of
>> people - I for one *hate* having to point and click and follow
>> cascading menus and have my screen cluttered by silly icons.
>> I much prefer to control an app with my main input device - my
>> keyboard - by a combination of keystrokes or whatever.
>I have never been able to work out why people seem think that GUI's and
>keyboard commands are mutually exclusive.
The closest thing that can be used as an explanation for why people think they are
mutually exclusive is that in a gui environment such as Windows, you would be hard
pressed to find two applications by the same manufacturer, that use the same keboard
shortcuts. Some will be the same, but not all. Save is usually Alt-f s, but that is not
allwaays the case.
My personal favorite example is "Find". Microsoft doesn't even get this one consistent. In
Word and Excel, if you want to find a string of text, or a number in a document, you
simply hit Ctrl-f. If you are in Outlook, (and I presume Outlook Express) Ctrl-f is 'Forward'.
If you want find in Outlook, you have to hit Ctrl-Shift-f.
In BeOS, just about eery app I have seen uses Alt-f for find, but the most intuitive
keystorke to exit that dialog, specifically Esc, does not exit the dialog, it presumes that
you are looking for some character mapped to that key on the keyboard.
Life has been a little easier in the Macintosh world where if you wanted to sell your
application and get Apple approved, or Apple recomended, you built your application to
the Apple guidelines for keyboard commands.
The main problem in my opinion is that there is no "standard" keyboard command set
specifying reserved keyboard commands. About the closest I have ever seen to an
effective solution was the BlueWave editor, where you could tell the editor what
standard application keyboard commands you wanted to use. If you prefered Wordstar
commands to EMACS, or EPM over BP7-IDE, you could specify the appropriate keyboard
command set to use. The easy way to accomplish this is to establish the commands that
you want the application to use, set up your own keyboard command mappings in a
loadable text file, and allow users to create their own. Then allow users to send you their
keyboard command files for inclusion in later releases of your software.
Of cours all of this is accademic if your users do not like the interface you present, they
should look for another interface that they do like. If you can present different
interfaces within your application, either via skins that do more than just provide colorful
backgrounds and buttons as an overlay to the existing interface, so much the better for
One thing to take into consideration when telling people that their criticism is less than
what you are looking for is to give some examples of why you find their criticism that
way. Saying, "you have to do more than say 'I don't like this." you need to tell me what
about it you don't like." is about as helpful as the orriginal criticism. As an example, an
appropriate response to your request for further feedback might be "I don't like this, the
colors you have selected make me nausous." yet all you know now is that the user was
not the least bit concerned about the fact that all your "3D-buttons" appear to be
lighted from above and to the left. The solution could be to use the user customized
appearence for Windows, or if you do letting the user know how to go about changing
If someone preferes a different interface format, it is often because they think of IM in a
different way than you do. From what I have seen of ICQ, The UI is based upon the
concept of a list of friends, that you can either send a message to or chat with. I realize
that there is much more behind it, but that seems like the simpelest explanation of what
you can do, and what you generally see. WinJabber looks more like a mail client where
you have a list of friends, a collection of messages that you have recieved, and a
window pane to view those messages. Again there are many more features that I will not
go into. I would suspect that the primary difference is that the designer of the
WinJabber client thinks of messages comming into the client as similar to e-mail
messages. They contain a To field, a From field, possibly a Subject field, and a message
body. Looks like an e-mail message of some sort to me as well. Note that this also means
that the designer could extend his application to handle e-mail with very little in the way
of changes to the UI.
Is this "The Right Way"? No. It is "A Right Way". Your concept is "A Right Way" as well.
My definition of "A Right Way" is that using that method you can get the job done. Some
people like jumping through hoops to do their job. Others look for the shortest path.
Others insist upon talking to people along the way. You can either make the client you
are developing flexable enough to accomadate the variety of people that may use your
client, or you can let users decide if they like your client and provide them with links to
other clients explaining what advantages those clients may posses. Or you can take the
Microsoft approach and force your ideas down your customer's throat and say 'This is
the best way to do things. Would you like to participate in a usability study?'
Which approach to UI you choose to take is your own buisness.
More information about the JDev