Griffon: Getting Started I

es el Grails para el desarrollo de aplicaciones de Escritorio Java

Es un framework para el desarrollo de aplicaciones de Escritorio y RIA sobre Groovy y Swing.

Griffon automatiza muchas tareas de desarrollo y ofrece un sistema de plugins al estilo Grails o ROO.

Para comenzar con Griffon basta seguir estos simples pasos:

1. Descargo la última versión de Griffon, la versión actual es la 0.3.1, aunque os recomiendo la versión 0.9-SNAPSHOT. Yo con la 0.3.1 he tenido problemas con el comando run-app (documentados aquí)

2. Descomprimo el ZIP en una carpeta cualquiera.

3. Establezco la variable de entorno JAVA_HOME, GRIFFON_HOME y PATH al estilo de este bat:

4. Ejecuto desde una línea de comandos:

> setEnvironment_Griffon.bat

> griffon help

5. Para crear una aplicación me voy a un directorio y:

Ø griffon create-app

que creará una estructura de carpetas como esta:

6. Aunque Ya podría ejecutar la aplicación haciendo:

Ø griffon run-app àcorre la aplicación como App de Escritorio

Ø griffon run-applet àcorre la aplicación como Applet

Ø griffon run-webstart àcorre la aplicación como Aplicación Java Web Start

7. También puedo empaquetarla con:

Ø griffon package

que genera 4 carpetas con los formatos disponibles:

Si vamos al zipbin podremos ejecutarla con

En este primer post sobre Griffon sólo quería dar unos apuntes que den una idea de lo que ofrece, en este link podéis acceder al artículo completo

donde se explica:

– la infraestructura de plugins (el sistema de Plugins de Griffon es de lo más interesante, existen plugins para CouchDB, GSQL, Scala o para la generación de instaladores)

– como testar una aplicación:

– Soporte de IDEs, soporte Threading, soporte MVC,…

De Griffon me quedo con la implementación de su MVC para clientes Swing, por lo demás le puedo achacar los mismos defectos que le encuentro a Grails…Groovy es otro lenguaje!!!, más potente, más sencillo, más glamuroso pero es otro lenguaje…o esto os parece Java:

Además otro lado Griffon no tiene aún la madurez de Grails y aún está bastante verde…si seguís los pasos lo descubriréis por vosotros mismos (cómo asignar el proxy, cómo crear un plugin…)

Si queréis profundizar más en el desarrollo con Griffon se hace indispensable disponer de este libro:

Por mi parte aún me parece bastante de juguete, como para considerarlo en serio para un proyecto importante…de momento esperaré a lo ver cómo Spring ROO integra el desarrollo de clientes ricos…me imagino que retomarán el proyecto Spring RCP para desde ahí crear un Griffon pero todo Java.

Respuestas

  1. Luis Miguel, podrias ahondar mas respecto a los «defectos» de Grails y Griffon?

    Que problema presenta que el lenguaje principal de desarrollo en Grails y Griffon sea Groovy? Es cierto que las vistas deben ser programadas en Groovy y no en Java, dada la gran facilidad para desarrollo de DSLs (lenguajes de dominio specifico); Java simplemente se queda chiquito en este aspecto.
    El resto de components de la aplicacion bien pueden escribirse en Java si lo deseas (modelos, controladores, services, etc), claro esta que te perderas de muchas de las ventajas que Groovy presenta:
    -ser mas expresivo con menos lineas de codigo
    – metaprogramacion
    – closures o funciones anonimas
    El punto es que tanto grails como Griffon te dan opciones, ninguno te forza a usar un solo lenguaje para todo.

    Respecto a la madurez del proyecto Griffon. La primera liberacion se hizo en Septiembre 10 2008 (asi que vamos pro el segundo aniversario), sin embargo la base de codigo es Grails 1.1, lo que significa que es mucho mas maduro de lo que se percibe. La ultima version (0.9, a punto de salir) esta basada en Grails 1.3.2

    El libro (Griffon in Action) de una gran ayuda sin lugar a dudas, pero no es la unica fuente de information . En http://griffon.codehaus.org/Documentation encontraras datos como los screencasts realizados por Todd Costella, la guia oficial de Griffon (http://dist.codehaus.org/griffon/guide) y la refcard a la cual haces mention en tu post.

    Por ultimo, me gustaria saber que te motiva a calificar el proyecto como «juguete», dada que si bien la funcionalidad base otorgada es minimalista (Griffon soporta ejecucion de aplicaciones en 3 modos como mencionas, cosas que las soluciones de RCP normalmente no hacen), la misma puede ser extendida al solo instalar un plugin.

    Existen mas de 100 plugins en el repositorio central (http://griffon.codehaus.org/Plugins). Podras darte cuenta que las categorias son variadas, por ejemplo

    – programacion poliglota -> Scala, Clojure, Erlang, JavaFX
    – UI toolkits -> (Swing, default), SWT, Pivot, GTK, JavaFX
    – NoSql -> couchdb, berkeleydb, db4o, neo4j, neodatis, memcached, riak
    – networking -> hessian/burlap, rmi, rest, jabber, xmlrpc, mail, protobuf, avro, thirft
    – testing -> easyb, spock, fest, codenarc, clover, code-copverage, gmetrics, findbugs, jdepend

    Y la lista continua.

  2. Gracias por el comentario Andrés, con las prisas me dejé muchas cosas por el camino.

    Lo que comentaba sobre Groovy es una opinión, no un defecto de Groovy.
    Siempre hablo desde el punto de vista de responsable de proyectos, llevando a personas de diferentes niveles y capacidades.
    En ese sentido mi experiencia es que para la gente Java adaptarse a Groovy le cuesta, además el soporte de los IDEs aún no es muy bueno…cierto que puedes mezclar Groovy y Java pero entonces es aún peor.
    Sobre Griffon no hace falta más que descargarse la versión actual, la 0.3.1 e intentar hacer un run-app en Windows para ver de lo que hablo, creo que el producto aún no está maduro para abordar un proyecto grande con él, aunque es cierto que promete mucho.
    Por otro lado creo que a Java aún le queda mucho que aportar, y aproximaciones como Spring ROO demuestran que se puede hacer un Rails sobre Java.

    En cualquier caso es mi «opinión» 🙂

  3. […] un día después del post sobre Griffon se ha hecho oficial la release 0.9 de […]

Replica a Luis Miguel Gracia Luis Cancelar la respuesta