Griffon (framework)
Encyclopedia
Griffon is an open source Rich Client Platform
framework which uses the Groovy programming language (which is in turn based on the Java platform). Griffon is intended to be a high-productivity framework by rewarding use of the Model-View-Controller paradigm, providing a stand-alone development environment and hiding much of the configuration detail from the developer. A significant portion of the build environment is directly derived from the Grails
codebase and hence follows many of its conventions.
The first release is the fruit of the effort by the Groovy Swing team and an attempt to take the best of rapid application development, as indicated by its Grails
-like structure, the agility of the Groovy, and the availability of components for Swing.
griffon create-app
The generated project follows this structure:
The builder infrastructure enables seamless integration of different widget libraries such as Swing, JIDE, and SwingX.
Griffon’s built-in scripts include targets for desktop, webstart, and applets. The baseline requirement is Java 5 or higher.
In the first release, three sample applications are included :
Books currently in development include:
Twitter
News, links and announcements of new releases and features are regularly posted on Twitter (@theaviary).
Rich Client Platform
A rich client platform is software consisting of the following components:* A core , lifecycle manager* A standard bundling framework* A portable widget toolkit* File buffers, text handling, text editors...
framework which uses the Groovy programming language (which is in turn based on the Java platform). Griffon is intended to be a high-productivity framework by rewarding use of the Model-View-Controller paradigm, providing a stand-alone development environment and hiding much of the configuration detail from the developer. A significant portion of the build environment is directly derived from the Grails
Grails (Framework)
Grails is an open source web application framework which uses the Groovy programming language . It is intended to be a high-productivity framework by following the "coding by convention" paradigm, providing a stand-alone development environment and hiding much of the configuration detail from the...
codebase and hence follows many of its conventions.
The first release is the fruit of the effort by the Groovy Swing team and an attempt to take the best of rapid application development, as indicated by its Grails
Grails (Framework)
Grails is an open source web application framework which uses the Groovy programming language . It is intended to be a high-productivity framework by following the "coding by convention" paradigm, providing a stand-alone development environment and hiding much of the configuration detail from the...
-like structure, the agility of the Groovy, and the availability of components for Swing.
Overview
Griffon aims to reduce the typical confusion that occurs with traditional Swing development. Due to the MVC structure of Griffon, developers never have to go searching for files or be confused on how to start a new project. Everything begins with:griffon create-app
The generated project follows this structure:
%PROJECT_HOME%
+ griffon-app
+ conf ---> location of configuration artifacts like builder configuration
+ keys ---> keys for code signing
+ webstart ---> webstart and applet config
+ controllers ---> location of controller classes
+ i18n ---> location of message bundles for i18n
+ lifecycle ---> location of lifecycle scripts
+ models ---> location of model classes
+ resources ---> location of non code resources (images, etc)
+ views ---> location of view classes
+ lib
+ scripts ---> scripts
+ src
+ main ---> optional; location for Groovy and Java source files
(of types other than those in griffon-app/*)
The builder infrastructure enables seamless integration of different widget libraries such as Swing, JIDE, and SwingX.
Griffon’s built-in scripts include targets for desktop, webstart, and applets. The baseline requirement is Java 5 or higher.
In the first release, three sample applications are included :
- Greet, a Groovy Twitter client featured in the JavaOne 2009 Script Bowl,
- FontPicker, an application to view the available fonts on one's machine,
- SwingPad, a lightweight designer application for Griffon user interfaces.
Plugins
Griffon can be extended with the use of plugins. Plugins provide run-time access to testing libraries such as Easyb and FEST, and all widget libraries besides core Swing are provided as plugins. The plugin system allows for a wide range of additions, for example- Polyglot ProgrammingPolyglot (computing)In computing, a polyglot is a computer program or script written in a valid form of multiple programming languages, which performs the same operations or output independent of the programming language used to compile or interpret it....
with ClojureClojureClojure |closure]]") is a recent dialect of the Lisp programming language created by Rich Hickey. It is a general-purpose language supporting interactive development that encourages a functional programming style, and simplifies multithreaded programming....
, Scala, JavaFXJavaFXJavaFX is a software platform for creating and delivering rich Internet applications that can run across a wide variety of connected devices....
and Erlang. - Additional UI toolkits - SWTStandard Widget ToolkitThe Standard Widget Toolkit is a graphical widget toolkit for use with the Java platform. It was originally developed by IBM and is now maintained by the Eclipse Foundation in tandem with the Eclipse IDE...
, JavaFXJavaFXJavaFX is a software platform for creating and delivering rich Internet applications that can run across a wide variety of connected devices....
, PivotApache PivotApache Pivot is an open-source platform for building rich web applications in Java or any JVM-compatible language. It is released under the Apache License version 2.0.-Architecture:Its classes are divided in the following categories:...
, GTK - SQL and NoSQLNosqlIn computing, NoSQL is a broad class of database management systems that differ from the classic model of the relational database management system in some significant ways. These data stores may not require fixed table schemas, usually avoid join operations, and typically scale horizontally...
datastores like Berkleydb, CouchDB, Db4O, Neo4j, NeoDatis, Memcached and Riak. - 2D and 3D games using popular Java libraries like jME (JMonkeyEngine), LWJGL, Slick2D, JOGL and Processing.
Official manual
The Griffon Guide is the official manual of the Griffon framework. It describes all that a developer needs to know to get started, including a reference to all properties and method additions.Books
Features that would eventually become integral parts of Griffon (UI builders) were featured in these books:- Groovy In Action
- Beginning Groovy and Grails
Books currently in development include:
- Griffon In Action
Refcard
Dzone published a Getting started with Griffon Refcard as part of their Refcardz program.Screencasts
Todd Costella produced a series of screencasts dubbed Griffoncast that show how to get started with Griffon.See also
- Agile software developmentAgile software developmentAgile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams...
- List of Rapid Application Development tools
External links
- First release announcement (Blog)
- Griffon Home Page
- Article by Guillaume Laforge (Project Lead of the Groovy Language) : Griffon shows its claws: Grails-like rich Swing client framework released
- Articles in DZone : Getting Started with Swing MVC Development on Griffon, Griffon: Grails-like Framework for Swing, Porting to Griffon
- Articles by the Griffon team : Griffon and Greet: Starting to get Groovy Revisiting the hidden threading rule, Griffon takes flight, Awakening the Griffon
- Article by a technical writer in the NetBeansNetBeansNetBeans refers to both a platform framework for Java desktop applications, and an integrated development environment for developing with Java, JavaScript, PHP, Python, Groovy, C, C++, Scala, Clojure, and others...
Docs team at Sun MicrosystemsSun MicrosystemsSun Microsystems, Inc. was a company that sold :computers, computer components, :computer software, and :information technology services. Sun was founded on February 24, 1982...
: Notes on Converting NetBeans Grails Support to NetBeans Griffon Support, The 5 Best Things About Griffon , Griffon: Identifying the Dark Underbelly of Java