[JDEV] Jabber Client Design Tutorial
michael at aurora.gen.nz
Thu Sep 27 04:58:36 CDT 2001
On Wednesday, September 26, 2001, at 12:51 AM, Michael Brown wrote:
Really really bad idea. In an IM (or most things GUI related) anything
flashing should be reserved for something that requires the users attention.
In this case an event (usually a message).
That is exactly the situation described in the original message: what to show if there's an incoming message from a user in a collapsed group. Obviously you don't just want something flashing for no reason.
Sorry - my fault - for some reason I read your reply to mean flashing to be the third state. Yes - flashing could work, but nicer to be able to see at a glance who the message was from rather than only knowing it was from someone in that group...
Since Jabber can only have "trees" one level deep, this is hardly an issue
(this is still true isn't it?)
The trees are part of the client's UI design, not part of Jabber. For some reason all the Jabber clients seem to have them; personally I'm not so fond of them. The only thing related to a tree in the protocol is that roster entries have a "group" attribute. This is optional, and all does is establish some kind of arbitrary grouping for roster entries. You can show this as a tree, you can show it as a page-flipping model where you show one group at a time, you can put each group in a separate window, you can simply use a linear list and annotate each member with a group name. Whatever. Also note that you could use a convention of naming groups something like "Group/Subgroup" so a multi-level tree would be easy to support.
Hmm. Trees are an obvious choice because if you represent they as folders or flip pages etc, you are very likely to only be able to see one at a time, so you loose the presence info for all the other groups. "Group/Subgroup" would be great, but I think it should be part of the spec so client authors can (optionally) support them in the same way. If "/" is going to be a reserved char, then client authors should be made aware of that. Obviously recursive groups are very useful for corporate situations.
I still don't like the way you loss a group if you remove the last member from your roster. It's like having a folder on your desktop that deletes itself when you drag the last file out of it...
While we're on the topic of UI design it might be interesting to have a discussion of what the best way is to organize / categorize buddies. As indicated above I really don't think a tree is the only or even best way to do this; it's just what AOL decided to do in 1996 and everyone's copied it. For example, my client has a pop-up menu that lets you choose which group (or all) to show, and you can also tear off individual groups as separate windows.
I have thought about it quite a bit, and I honestly can't come up with a better idea than a treeview with minimal indentation (Yes, like Mirabilis decided to in ICQ. How long has AIM supported groups?) Most of the improvement has happened regarding how the tree is sorted (alphabetical v's online contacts at top etc).
Groups can be a bit confusing to a new user who may only have one or two contacts at the start, I think this is why ICQ defaults to having groups turned off.
[Does the term "buddies" irritate anyone else as much as it does me? We have AOL to thank for that. Brings up mental images of large american truckers giving each other the thumbs up for me. Maybe in Australia we can call it a "Mates list"]
I used ICQ for a while and saw it as fairly interchangeable with AIM. I'd (sincerely) love to hear about what you think its particular strengths and exclusive features are. I'm not talking about tangential things like stock tickers, just real IM/presence functionality. We can do this offline if you think it's more appropriate...
[I'll do it here until we drift even more off-topic or someone shouts at us.] [ICQ has Stock tickers??]
Some of these may have been copied to MSN or AIM since I last used them....
Message History - ICQ has it. Always has.
Offline Messages - you can send a message to someone offline (!).
Discrete message style - (rather than split chat, although this was introduced in 99b from memory)
Plugins - games, voice modules etc etc
Invisible mode - this is used heavily by many users
User directory - (white pages, random chat partners etc etc)
ICQ ActiveLists - I haven't used these
ICQ Channels - I haven't used these
SMS Gateway - (Very cool for those on GSM services that support it)
ICQ Surf - not very well implemented when I last tried it, but would be *great* if done well.
Smaller Interface - big plus for me
IRC-style chatgroups - (IrCQ) never used these
Huge Userbase - I personally don't know anyone who uses any of the other services - inc Jabber :(
Web pager - online presence etc etc
etc etc...the list goes on. There is also heaps of other features that I don't use. Birthday reminders are quite cute. There is also Greeting cards, web search, voice chat, ICQphone, games, ICQEmail - even stock tickers I'm told! - It can alsoact as a webserver to host a personal webpage on your PC (although this has been removed and is now offered as an optional plugin - for security reasons I think).
I'm sure I have missed heaps. As you can see, this can all get a little overwhelming for new users (hence ICQ's Simple Mode). In my opinion it only becomes useable once you have switched most of the featuers off - although maybe that is just my fear of the unknown...
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the JDev