There are multiple options out there when it comes to building desktop applications for the JVM. Why should Griffon be an option for your next project? Read on to find out.

A denotes a personal favorite.

Features! Features! Features!

The Griffon framework provides the following features:

  • Well-defined application lifecycle.

  • MVC components plus lifecycle.

  • Common application structure.

  • Dependency injection via JSR-330.

  • Resource injection.

  • Internationalization support.

  • Lightweight event bus.

  • Centralized error handling.

  • Extensible via plugins.

  • Extremely configurable.

Programming Language

Griffon is built with Java and runs on the JVM, but that doesn’t mean Java is the only language you can use to build applications with Griffon. The following languages are officially supported by the Griffon 2.9.0 runtime

  • Java

  • Groovy

  • Kotlin

Additional JVM languages may be supported in the future.

UI Toolkit

Building visual applications would be impossible without an UI toolkit that provides a widget set, user experience and other bells and whistles. Luckily the JDK delivers not one but two options:

  • Swing

  • JavaFX

Both of them are fully supported by 2.9.0. But wait, there’s more! The aforementioned toolkits are not the only ones that you can find in the JVM, the following are supported too

Other toolkits may be supported in the future.

Memory Footprint

Griffon delivers lots of features and behavior almost for free, as the additional runtime has to be loaded. The good news is that the deployment size and memory consumption are really low

  • 3K deployment size with Java/Swing or Java/JavaFX.

  • +7M more if Groovy support is added.

Build Tools

Developers care about their toolchain a lot, that is why when confronted with a choice that’s does not match their expectations they may decide to walk away. Fortunately Griffon does not impose too much restrictions when it comes to the build environment required to build a Griffon project. Projects can be built with any of the following tools

These builds tools are well supported by all major Java IDEs. There’s no need for special IDE plugins either, just import the project as you would usually do.