[JDEV] Jabber Client Design Tutorial

Jay Curry 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 
your application.

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 
that appearance.

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 mailing list