Links

DreamHost Web Hosting - http://www.dreamhost.com/

JabberView

JabberStudio

JabberTools

JabCast

 

Operating System Integration

One of the most important things to get users comfortable with your Jabber client is to make sure that it works in the same fashion as the desktop that they are already used to using.  Under Windows this means it should perform the same as Windows does.  This may seem obvious, but it is ignored all to often.

Right-clicking - right clicking on an object should almost always bring up a menu.  Right-clicking on a contact in your contact list, (or selecting a contact and pressing the menu key on a "Windows95" style keyboard) should bring up a menu of actions that you can perform for that user.

Right clicking on a group heading should bring up items that can apply to a whole group.  For example right clicking on the "co-workers" group should give you the option to send a message to everyone in that group.

Drag&Drop - Dragging a file from explorer to contact in the contact list should bring up the dialog to send that file to the user.  This is how Windows users expect it to work.  Dragging a contact to a chat window should convert it to a multi-chat and invite that user to join.  Dragging contacts between groups should move that user.  Control-dragging should do a copy.  Right-dragging should bring up a menu asking the user if they want to copy or move, in the same way as explorer does when you move files.

Shell Integration - Upon registering the application during the install phase, the Jabber client should also optionally add an entry on the right-click menu to make it easier to send files.  This means right-clicking on a file would give you the option to send that file to any of the Jabber users who are currently online.  (ICQ already does this).  It would also be nice to see a Jabber icon replace the MS Messenger icon on the Internet Explorer toolbar.

Multi-select - By holding down the control key you should be able to select multiple contacts at once.  Right clicking should then treat the multi-selections as a group to allow you to send group messages etc.

Hotkeys - One of the most bothersome things with instant messaging is having to reach for the mouse every time a message comes in.  What is needed is a standard system wide hotkey combination that brings up the next message waiting even if you press it while you are using another application.  I suggest <Windows>-<Space> for systems with Win95 style keyboards, and <Shift>-<Space> for those systems without Windows keys.  If there are no messages waiting, this key combination should bring the contact list to the foreground and give it focus.

Snap-To & Docking Windows - It can often be nice to have the main contact list window to snap to other windows if it is within so many pixels of them.  It can also be useful to have the contact list dock to the side of the screen when it is moved to the very edge of the desktop.  This has the advantage that the operating system will resize the usable area of the down, so that when other programs are maximised, they will not obscure your client.  These features should be able to be disabled by the user however, because they are not always to taste, and windows that dock can cause problems on machines with multi-monitor setups. 

Cut & Paste Hotkeys - It is always important to implement the standard windows short-cut keys into any Windows application.  Some of the most used keys are the copy and paste ones.  It is worth remembering that Windows has two sets of each defined.  On the left side, there is <Cntl>-X, <Cntl>-C, and <Cntl>-V for cut, copy and paste, but there is also <Shift>-<Del>, <Cntl>-<Insert>, <Shift>-<Insert> on the right hand side.  Both should be implemented.  (Normally this would be done automatically by the Windows API, but they are sometimes missed out of some of the ICQ windows and it can be very frustrating when you think you have copied something, but when you try to paste it you get the previous thing from the clipboard)

Always On Top - Most IM clients offer an option to make the contact list always appear on top of all other windows, even if it doesn't currently have the focus.  This has the obvious advantage that the user can always see his or her contacts, but it can get very annoying if it is obscuring an area that the user is trying to work with.  This option should be easily disabled, and possibly a widget included on the title-bar of the app to toggle it off, and send the window to the back.

Startup & Registry - All Jabber clients should include an option to autostart when the user boots up his or her PC.  There are several ways to do this in Windows, the most friendliest from the users point of view is to create a shortcut in the users "StartUp" folder, but most developers go for a registry entry.  If you are going to use a registry entry, make sure you add it into the Software/Microsoft/Windows/CurrentVersion/Run key under HKEY_CURRENT_USER, not HKEY_LOCAL_MACHINE.  This way the client will only start when the user actually logs on, and will help with the problem where you appear online because someone else is using your computer.  Ideally other users should be able to add the client into their startup sequence too, but it would start with their user ID and settings.

Taskbar - Your Jabber client should not show up at all on the Windows taskbar, even when the main contact list is restored.  When it is running, It has an icon in the the system tray, and that is it.  Space is at a premium on the task bar, and applications that run all the time in the background should not be taking up room unnecessarily.  Message dialogues are different - they are only open for a limited time and require user action, so they need to be tracked and the user needs to know if there are any open in the background.  They should show up on the taskbar (but not the system tray).

Server-side Client Settings - The Jabber spec allows for small amounts of personal information to be stored on the server.  For some settings for your client, it may be appropriate to store them on the actual server rather than in the registry on the local machine.  This way if the user uses the same client software on multiple machines, his or her settings will follow them around as they move machines.

AutoUpdate Feature - The Jabber spec also allows for the client to check for updates, and if there is a version of the code that is later than the one running, you can prompt your user to see if he or she wishes to upgrade.

This site last modified
2002-07-01