Google web toolkitIntroducción
Google Web ToolkitEn esta presentación se va a realizar una introducción a Google Web Toolkit (en adelante GWT). GWT es una tecnología desarrollada por  Google para acelerar el desarrollo de Apliaciones Ricas de Internet (RIA)
Introducción a Gwt
IntroducciónGWT ManifestoMejorar Radicalmente la experiencia de los usuarios con la web permitiendo a los desarrolladores utilizar las herramientas Java existentes para construir aplicaciones Ajax  independientes del navegador.
IntroducciónProgramas en JavaDepuras en JavaTesteas en JavaGWT compila de Java a JavaScriptDespliegas en JavaScript
IntroducciónGoogle Web Toolkit (GWT) permite crear aplicaciones AJAX en el lenguaje de programación Java que son compiladas posteriormente por el compilador de GWT en código JavaScript optimizado para los principales navegadores. Todo el código de GWT está disponible bajo la licencia Apache 2.0
IntroducciónAl ejecutarse la aplicación en el navegador, la interacción del usuario con la aplicación es mas fluida, ya no tendremos el efecto de pagina en blanco.
IntroducciónSe obtiene un mayor rendimiento y  una mejor escalabilidad que con las aplicaciones web tradicionales.
Arquitectura GWT
Arquitectura GWTGWT Java-to-JavaScript Compiler: la función del componente es traducir el código desarrollado en Java al lenguaje JavaScript.Hosted Web Browser: este componente ejecuta la aplicación Java sin traducirla a JavaScript, en modo host usando la máquina virtual de Java.JRE Emulation Library: contiene las bibliotecas más importantes de las clases de Java: java.lang en donde se encuentran las clases fundamentales para poder programar en Java y un subconjunto de las clases del paquete java.util. Java.lang incluye, entre otras, la clase java.lang.object que es la clase fundamental de la que heredan o extienden todas las clases en Java. El resto de los paquetes no están soportados por GWT.GWT Web UI Class Library: contiene un conjunto de elementos de interfaz de usuario que permite la creación de objetos tales como textos, cajas de texto, imágenes y botones.
Arquitectura GWT
Depuración y compilación
Depuración Durante el desarrollo de una aplicación, se pueden ver inmediatamente los cambios realizados en el código mediante el navegador de modo alojado (hosted mode) de GWT. No es necesario volver a compilar el código en JavaScript. El codigo se ejecutará en la maquina virtual de Java como bytecode. Todo lo que pueda hacer el depurador de Java se aplicará también al código GWT.
Depuración A partir de GWT 2.0 se puede depurar desde el navegador
CompilaciónGWT compila el código Java en archivos JavaScript independientes que estarán disponibles a través de cualquier servidor web. Además, las aplicaciones GWT admiten automáticamente los navegadores IE, Firefox, Mozilla, Safari y Opera sin necesidad de detectar el navegador ni utilizar un formato especial en el código. Sólo se tiene que escribir el código una vez y GWT lo convertirá al formato JavaScript más adecuado para el navegador de cada usuario.
Compilación
Construyendo la interfaz
Construyendo la interfaz de UsuarioLas  clases de GWT para la interfaz de usuario son similares a Swing o SWT.Podemos dar estilo a los widgets utilizando CSS.
Construyendo la interfaz de UsuarioPuedes crear modulos reutilizables mediante la composición de otros modulos y colocarlos después fácilmente en paneles. Para reutilizar un modulo en otro poryecto sólo tienes que empaquetarlo en un archivo JAR.Si la biblioteca de clases de GWT no satisface tus necesidades, puedes mezclar JavaScript manualmente en el código fuente Java mediante la interfaz JSNI.
Construyendo la interfaz de UsuarioGWT utiliza Java, por lo que puedes utilizar todas tus herramientas favoritas de desarrollo (Eclipse,NetBeans, IntelliJ, JUnit) al crear tus aplicaciones AJAX. La comprobación de tipo estático en lenguaje Java permite que los desarrolladores detecten una clase de errores (errores ortográficos, tipos no coincidentes) en el momento de la creación del código, no durante la ejecución del programa, lo que aumenta la productividad y reduce los errores.. Por último, puedes aprovechar abstracciones y patrones de diseño orientados a objetos (OO) basados en Java.
Librería s de WidgetsGWTGWT IncubatorSmart GWTGWT-ExtIT Mill ToolkitGWT mosaic
Herramientas de DesarrolloGWT DesignerEclipse Google Plugin
Cypal Studio for GWT, IntelliJ IDEA, gwt4nb (NetBeans)Internacionalización y AccesibilidadPuedes crear fácilmente bibliotecas y aplicaciones internacionalizadas con las potentes técnicas de vinculación aplazada de GWT. ARIA es la especificación del W3C para hacer las aplicaciones RIA  accesibles a traves de propiedades estandar del DOM.
Integración con las APIs de GoogleIntegración sencilla con las apis de Googlehttp://code.google.com/p/gwt-google-apis/
Comunicación con el servidor
Comunicación con el servidorGWT puede soportar cualquier navegador para comunicarse con cualquier tipo de servidor, debido a la comunicación con JSON o XML, con el servidor, en las llamadas AJAX.GWT tiene una arquitectura predefinida para desarrollar la parte del servidor en JAVA, mediante servlets que pueden ser desplegados en cualquier contenedor de aplicaciones web que soporte servlets.
Comunicación con el servidorGWT admite un conjunto indefinido de protocolos de transferencia, como JSON y XML, pero el mecanismo de llamada a procedimiento remoto (RPC) de GWT permite el establecimiento de comunicaciones Java de una forma sencilla y eficaz. Al realizar una llamada a un método remoto desde el navegador, el mecanismo RPC de GWT serializará automáticamente los argumentos, ejecutará el método adecuado en el servidor y anulará la serialización del valor de retorno del código cliente.
Testeo
TesteoGWT incluye la clase base GWTTestCase que proporciona la integracion con Junit. GWT lanza una instancia del hosted mode para ejecutar los test.Mediante la herramienta junitCreator genera todo lo necesario para poder ejecutar los test.Tambien podemos utilizar herramientas como Selenium o WebDriver para realizar los test de la interfaz de usuario.
Despliegue
DespliegueLas aplicaciones de GWT se empaquetan en un war y se pueden desplegar en cualquier contenedor de Servlets estandar.Se puede utilizar ant o maven para automatizar el proceso de compilación y despliegue.
Aplicaciones de ejemplo
Google Wave
Google Health
Lombardi Blueprint
Referenciashttp://code.google.com/intl/es-ES/webtoolkit/http://code.google.com/intl/es-ES/webtoolkit/doc/1.6/DevGuide.htmlhttp://gwtgallery.appspot.com/http://code.google.com/intl/es-ES/events/io/sessions.html#gwthttp://groups.google.com/group/Google-Web-Toolkit
I2EEn I2E somos especialista en el desarrollo de aplicaciones Java EE utilizando GWT para la interfaz de usuario.http://www.i2e.com.esi2e@i2e.com.es

Google Web Toolkit

  • 1.
  • 2.
    Google Web ToolkitEnesta presentación se va a realizar una introducción a Google Web Toolkit (en adelante GWT). GWT es una tecnología desarrollada por Google para acelerar el desarrollo de Apliaciones Ricas de Internet (RIA)
  • 3.
  • 4.
    IntroducciónGWT ManifestoMejorar Radicalmentela experiencia de los usuarios con la web permitiendo a los desarrolladores utilizar las herramientas Java existentes para construir aplicaciones Ajax independientes del navegador.
  • 5.
    IntroducciónProgramas en JavaDepurasen JavaTesteas en JavaGWT compila de Java a JavaScriptDespliegas en JavaScript
  • 6.
    IntroducciónGoogle Web Toolkit(GWT) permite crear aplicaciones AJAX en el lenguaje de programación Java que son compiladas posteriormente por el compilador de GWT en código JavaScript optimizado para los principales navegadores. Todo el código de GWT está disponible bajo la licencia Apache 2.0
  • 7.
    IntroducciónAl ejecutarse laaplicación en el navegador, la interacción del usuario con la aplicación es mas fluida, ya no tendremos el efecto de pagina en blanco.
  • 8.
    IntroducciónSe obtiene unmayor rendimiento y una mejor escalabilidad que con las aplicaciones web tradicionales.
  • 9.
  • 10.
    Arquitectura GWTGWT Java-to-JavaScriptCompiler: la función del componente es traducir el código desarrollado en Java al lenguaje JavaScript.Hosted Web Browser: este componente ejecuta la aplicación Java sin traducirla a JavaScript, en modo host usando la máquina virtual de Java.JRE Emulation Library: contiene las bibliotecas más importantes de las clases de Java: java.lang en donde se encuentran las clases fundamentales para poder programar en Java y un subconjunto de las clases del paquete java.util. Java.lang incluye, entre otras, la clase java.lang.object que es la clase fundamental de la que heredan o extienden todas las clases en Java. El resto de los paquetes no están soportados por GWT.GWT Web UI Class Library: contiene un conjunto de elementos de interfaz de usuario que permite la creación de objetos tales como textos, cajas de texto, imágenes y botones.
  • 11.
  • 12.
  • 13.
    Depuración Durante eldesarrollo de una aplicación, se pueden ver inmediatamente los cambios realizados en el código mediante el navegador de modo alojado (hosted mode) de GWT. No es necesario volver a compilar el código en JavaScript. El codigo se ejecutará en la maquina virtual de Java como bytecode. Todo lo que pueda hacer el depurador de Java se aplicará también al código GWT.
  • 14.
    Depuración A partirde GWT 2.0 se puede depurar desde el navegador
  • 15.
    CompilaciónGWT compila elcódigo Java en archivos JavaScript independientes que estarán disponibles a través de cualquier servidor web. Además, las aplicaciones GWT admiten automáticamente los navegadores IE, Firefox, Mozilla, Safari y Opera sin necesidad de detectar el navegador ni utilizar un formato especial en el código. Sólo se tiene que escribir el código una vez y GWT lo convertirá al formato JavaScript más adecuado para el navegador de cada usuario.
  • 16.
  • 17.
  • 18.
    Construyendo la interfazde UsuarioLas clases de GWT para la interfaz de usuario son similares a Swing o SWT.Podemos dar estilo a los widgets utilizando CSS.
  • 19.
    Construyendo la interfazde UsuarioPuedes crear modulos reutilizables mediante la composición de otros modulos y colocarlos después fácilmente en paneles. Para reutilizar un modulo en otro poryecto sólo tienes que empaquetarlo en un archivo JAR.Si la biblioteca de clases de GWT no satisface tus necesidades, puedes mezclar JavaScript manualmente en el código fuente Java mediante la interfaz JSNI.
  • 20.
    Construyendo la interfazde UsuarioGWT utiliza Java, por lo que puedes utilizar todas tus herramientas favoritas de desarrollo (Eclipse,NetBeans, IntelliJ, JUnit) al crear tus aplicaciones AJAX. La comprobación de tipo estático en lenguaje Java permite que los desarrolladores detecten una clase de errores (errores ortográficos, tipos no coincidentes) en el momento de la creación del código, no durante la ejecución del programa, lo que aumenta la productividad y reduce los errores.. Por último, puedes aprovechar abstracciones y patrones de diseño orientados a objetos (OO) basados en Java.
  • 21.
    Librería s deWidgetsGWTGWT IncubatorSmart GWTGWT-ExtIT Mill ToolkitGWT mosaic
  • 22.
    Herramientas de DesarrolloGWTDesignerEclipse Google Plugin
  • 23.
    Cypal Studio forGWT, IntelliJ IDEA, gwt4nb (NetBeans)Internacionalización y AccesibilidadPuedes crear fácilmente bibliotecas y aplicaciones internacionalizadas con las potentes técnicas de vinculación aplazada de GWT. ARIA es la especificación del W3C para hacer las aplicaciones RIA accesibles a traves de propiedades estandar del DOM.
  • 24.
    Integración con lasAPIs de GoogleIntegración sencilla con las apis de Googlehttp://code.google.com/p/gwt-google-apis/
  • 25.
  • 26.
    Comunicación con elservidorGWT puede soportar cualquier navegador para comunicarse con cualquier tipo de servidor, debido a la comunicación con JSON o XML, con el servidor, en las llamadas AJAX.GWT tiene una arquitectura predefinida para desarrollar la parte del servidor en JAVA, mediante servlets que pueden ser desplegados en cualquier contenedor de aplicaciones web que soporte servlets.
  • 27.
    Comunicación con elservidorGWT admite un conjunto indefinido de protocolos de transferencia, como JSON y XML, pero el mecanismo de llamada a procedimiento remoto (RPC) de GWT permite el establecimiento de comunicaciones Java de una forma sencilla y eficaz. Al realizar una llamada a un método remoto desde el navegador, el mecanismo RPC de GWT serializará automáticamente los argumentos, ejecutará el método adecuado en el servidor y anulará la serialización del valor de retorno del código cliente.
  • 28.
  • 29.
    TesteoGWT incluye laclase base GWTTestCase que proporciona la integracion con Junit. GWT lanza una instancia del hosted mode para ejecutar los test.Mediante la herramienta junitCreator genera todo lo necesario para poder ejecutar los test.Tambien podemos utilizar herramientas como Selenium o WebDriver para realizar los test de la interfaz de usuario.
  • 30.
  • 31.
    DespliegueLas aplicaciones deGWT se empaquetan en un war y se pueden desplegar en cualquier contenedor de Servlets estandar.Se puede utilizar ant o maven para automatizar el proceso de compilación y despliegue.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
    I2EEn I2E somosespecialista en el desarrollo de aplicaciones Java EE utilizando GWT para la interfaz de usuario.http://www.i2e.com.esi2e@i2e.com.es