Today was a pretty great day, I must say.
I got a chance to work with the brand new Griffon framework and must say – the combination of clear MVC architecture, Grails style convention over configuration and already powerful plugin selection make it pretty sexy.
The early support for cobertura code coverage and fest GUI testing are both appealing to any developer that appreciates the need for testing your application. I’m still undecided on the Grails-like adoption of storing project information in a “.griffon” folder in the user directory and completely outside of the actual project directory structure. With luck, future versions will allow for incorporating maven to handle dependency management and get me past my FUD on that one, something that the latest Grails supports. I haven’t yet tried that new feature out in Grails out so I’m not entirely sure how well it works, but the docs say that there is a provided archetype and that all of the familiar Grails targets are mirrored in the maven goals.
Being able to add additional Groovy style builders as plugins is about as transparent as it gets – install the plugin and you can immediately incorporate that builder anywhere in the application. The only builder component set that I have had a chance to work with previously is SwingX, but anyone who’s had the opportunity to use a JXTable in place of the vanilla JTable can immediately see the advantage! And the JDirectoryChooser from l2fprod is a powerful alternative to the Swing built-in JFileChooser.
The crown jewel so far however seems to be the wizard plugin. This addresses what is a very common scenario in any process related application:
- collect User input in a series of steps
- validate the input at each step
- allow the User to go back and review or change any inputs
- apply all of the input to an underlying business process
- provide feedback as to the result
The wizard framework worked pretty much as advertised right out of the box and, although the project seems to have stalled (couldn’t seem to find any updates since mid-2008) , when integrated so well with Griffon it seems a very good candidate for building lightweight applications – installers in particular jump to mind.
Any way you look at it – for a project as newly arrived as Griffon, it’s already promising to be a very powerful enabler. Thanks to Andres Almiray and everyone else involved in the project. I look forward to using Griffon more in the future.