Sunday, April 23, 2006

Swing Rich Client Platform

Well, you've probably stumbled across this Blog via a Google search whilst looking for some information about the Swing Rich Client Platform?

At the moment it's too early to expect too many articles or samples, afterall they have only just released version 0.1.0.

You might be wondering whether this Blog is going to be of any use to you? It will be, I'm sure! Right now I'm exploring the Spring Rich Client platform with the intention to refactor some existing Swing GUI work and leverage my lessons learn with future Java Swing Applications.

What I'd like to do is Blog my progress, thoughts and my own tutorials. I'll only be motivated to do this if I get great feedback, so please drop me some comments with what you would like to see on this Blogg.

It's very early days on this Blog - one post and no real content, but that will change. I suggest you bookmark this Blog, or register yourself to be informed of changes - because I intend to publish regular posts which may be of use to you.

First, let me give you a list of URL's that will keep you going...

http://spring-rich-c.sourceforge.net/ - The home of the Spring RCP

http://sourceforge.net/project/showfiles.php?group_id=113660 - Where you can download the current version (0.1.0 April 3rd 2006).

http://pa.rsons.org/node/6 - Chris Parsons with a similar Blogging idea for Spring RCP

http://opensource.atlassian.com/confluence/spring/display/RCP/Home - an area for user documentation and discussion related to the Spring RCP.

This is not directly related to Spring RCP, but it has some good components that you can use to save some development time. http://swinglabs.org/docs/components/DataSet/index.jsp

I have been a Java Developer for the last six years, most of that time I've been involved with GUI work (Graphical User Interface). I've developed using ADA 83, ADA 95, C, C++, Delphi and Java. By far I prefer Java.

I was lucky enough to jump straight into Swing and found it a very powerful GUI library and recently I've had a look at SWT and really did not like what I saw. It seems that SWT needs to be complimented with JFaces before you can treat it as anything like Swing.

The original justification for SWT was to improve performance and to align the look and feel closer to the native operating system components. Nowdays, with the introduction of the Hotspot performance isn't an issue, most users really don't care if the GUI is 100% native. For example, does Office 2003 look like a native Windows app? Do you use iTunes in preference to Windows Media Player? I believe that as long as you use consistent mechanisms (menus, buttons, trees etc) the user will quickly adjust - if you make your GUI user-friendly, fun to use and ultimately 'sexy' - everyone want's a sexy GUI.

I currently prefer the Swing API, but that's somewhat a premature decision - I've only done enough SWT to get through the 'SWT - A developers Notebook' from O'Reilly.

In parallel I've jumped ship from Windows and installed Linux (Fedora 5), so hopefully I can point out some benefits, tips and suggestions for ensuring your Java application truely is cross-platform.

To really test the Spring RCP I'm going to need a 'real-world' sample application. I'm tempted to do a 'Social Event' GUI, that would have been very useful in my previous company. If you have any suggestions then I'll be happy to have a look at your ideas.

More soon (subject to comments /feedback) !!

Rob Wilson.