Building desktop clients for Mac OS X with Swing
I'm currently reading (and reviewing for JavaRanch) Mac OS X for Java Geeks by Will Iverson and I'm surprised at how good the integration between the core Java platform and Mac OS X really is. Okay, I knew that Apple ships JDK 1.3 and 1.4 along with OSX, but I never realised that you could build a Java application and package it up to look like a regular native app wihout running your code through some native compiler. Instead, Apple provides a way for you to use the same application packaging mechanism as native applications use - you just bundle up all of your classes and resources into a directory and write an XML file to specify the characteristics of that application, much like a deployment descriptor. Once built, you then have a seemingly normal Mac OS X application. In fact, with a little more work on your part, you can even have integration with the Finder and Dock without leaving the Java environment.
With pluggable "look and feel"s available for Mac OS X and now Windows XP, are we now truly going to start seeing the return of the Java desktop client en-masse? If you had asked me a couple of years ago which Swing L&F I preferred, the answer would have been Metal because it looked consistent on all platforms. Although I do like Metal, I think end-users really deserve to be given an application that integrates seamlessly with their native environment. The hard part, of course, is making your desktop applications look and behave the same on your target platforms. I recently blogged about a framework that I developed in the past and perhaps it really is time to dig this out and take it further. Does anybody know of any existing open source frameworks that help you build cross platform Swing applications?