We need better design tools

December 12, 2008

I stumbled upon an old blog entry today, authored by the visually adept Cabel Sasser, on the topic of Apple’s Next Generation Themes. This is an old entry, dating back to January of 2007, but it made me realize something:

The art of Java Look and Feel design is currently in the stone ages.

Tools for designing Java Look and Feels, or even designing simple widget skins are all but non-existent. Designing good looking widgets currently means one of two things:

  1. Draw your graphics in an image editing program (like Fireworks), thus shutting the door on resolution independence.
  2. Draw your graphics in Java 2D, an ever so painful process for complex art.

Cabel’s entry was posted in response to a patent filed by Apple describing resolution independent theme creation. Here’s a look at one of the not-so-great images submitted with the patent, which I’d be willing to bet was taken from the real implementation:
apple_themes_designer
Seeing this tool makes me feel clumsy and inefficient – like I’m trying to paint a portrait by dotting paint onto a canvas with a sewing needle. Java2D has exacting precession, but doesn’t let me see the bigger picture when I’m writing it. We need a design tool like this in Java, and then I remembered…

Such a tool is in it’s fledging state under the auspices of Jasper Potts. The tool, which was used to create the resolution independent Nimbus Look and Feel, is exactly what we need (not to mention that it’s gorgeous):

nimbus_designer

Jasper, we need this tool!

9 Responses to “We need better design tools”

  1. lqd Says:

    i predict the nimbus designer tool will magically turn into the javafx designer tool :)

  2. Ken Says:

    That would be very unfortunate!

  3. Jon Says:

    I had a chance to look at and try out designer tool last year. It was *very* nice and looked exactly as it did in the screenshot shown.

    Given that it already looked quite complete at the time, it makes me wonder why it’s been held back for so long. Somebody said legal issues, but I have a hunch that some of that work may end up being the basis for the designer tool.

  4. Jeremy Says:

    I saw a JavaFX demo recently in Austin: their current solution is to provide an Adobe plug-in, so graphic designers can make widgets or entire GUI’s in Photoshop (or maybe Illustrator? I forget) and export them as graphics that programmers can use. JavaFX can then access individual layers in those graphics (so an enabled/disabled state could be controlled by layers in the PSD file that are toggled visible/invisible, for example). Or individual layers can scale/translate/rotate.

    Josh Marinacci was the speaker, and he explicitly cautioned against trying to develop their own GUI-designing tools. I think he pointed out Microsoft’s Silverlight took that road, and it was just cumbersome because they’ll never catch up with cutting edge Adobe products. It’s hard to train graphic designers (who should be at the heart of GUI widgets) to use a new set of less-powerful tools.

    I’m not sure where I stand on these subjects and questions; I’m just throwing these out there as possible discussion points. :) Good article, Ken.

  5. Ken Says:

    Hi Jeremy,

    I think there is a need for both workflows to be satisfied; to restate, those are:

    1) the designer working in Photoshop on application mock-ups
    2) the developer working on skinning standard Java widgets

    I do all my mock-ups in Fireworks (similar to Photoshop), because it’s a fast way to visualize an idea. But sometimes, I want to draw something in a Fireworks-like tool and have it result in Java 2D code (I’d settle for an SVG file if it were natively supported by Java). Those are the times that I’m trying to change the look of a standard widget (like a button); those are the same times I’m without a good tool!

    Thanks for the info on the JavaFX designer/developer workflow, Jeremy.

    -Ken

  6. Semon Says:

    There is a look and feel visual editor in http://www.easynth.com, but it is not free…

    • Ken Says:

      I’m perfectly OK with things being for-pay, as long as they’re good! I’ll take a look at EasySynth.

      Thanks Semon.
      -Ken

  7. Steph Meslin-Weber Says:

    I was really looking forward to seeing Jasper’s tool as well… but looking at the Java7 sources there’s just a CLI generator, no sign of this wonderful GUI :-(

    Anyone heard any news from Jasper?


Leave a comment