Google Code disponible en: English - Español - 日本語 - 한국어 - Português - Pусский - 中文(简体) - 中文(繁體)
Google Web Toolkit (GWT) permite crear aplicaciones AJAX en el lenguaje de programación Java que son compiladas posteriormente por GWT en código JavaScript ejecutable optimizado que funciona automáticamente en los principales navegadores. Durante el desarrollo de una aplicación, puedes repetir rápidamente el mismo ciclo "editar - actualizar - ver" típico de JavaScript y aprovechar la ventaja añadida de poder depurar y recorrer una a una todas las líneas de código Java. Cuando estés listo para la implementación, GWT compilará el código fuente Java en archivos JavaScript optimizados independientes. Google Web Toolkit te permite crear fácilmente tanto un artilugio para una página web como una aplicación completa.
A diferencia de los minimizadores de JavaScript, que solo funcionan con texto, el compilador de GWT realiza optimizaciones y un análisis estático completo de toda la base de código de GWT y, frecuentemente, genera código JavaScript que se carga y ejecuta con mayor rapidez que el código JavaScript equivalente creado de forma manual. Por ejemplo, el compilador de GWT suprime de forma segura todo el código no utilizable (mediante una exhaustiva tarea de eliminación de clases, métodos, campos, e incluso parámetros, que no se utilizan) para asegurarse de que el archivo de secuencias de comandos compilado sea lo más pequeño posible. Otro ejemplo: el compilador de GWT realiza una sustitución selectiva de llamadas a funciones en los métodos, lo que permite optimizar el rendimiento de las ejecuciones de métodos.
La compilación cruzada te ofrece la modularidad y las abstracciones mantenibles que necesitas para desarrollar aplicaciones sin sufrir una disminución del rendimiento durante la ejecución del programa. Más información
Durante el desarrollo de una aplicación, puedes ver inmediatamente los cambios que hayas realizado en el código mediante el navegador de modo alojado de GWT. No es necesario que vuelvas a compilar el código en JavaScript ni que lo implementes en un servidor. Solo tienes que realizar los cambios que desees y hacer clic en "Actualizar" en el navegador de modo alojado.
Durante la producción, tu código se compilará como JavaScript sin formato; sin embargo, mientras estés desarrollando la aplicación, se ejecutará en el equipo virtual de Java como código de bytes. Eso significa que, cuando el código realice una acción como gestionar un evento de ratón, obtendrás una depuración de Java normal completa. Todo lo que pueda hacer el depurador de Java se aplicará también al código GWT. Por lo tanto, naturalmente estarán disponibles algunas funciones, como la depuración paso a paso y con puntos de interrupción. Más información
Cuando estés listo para la implementación, GWT compilará el código Java en archivos JavaScript independientes sin formato 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. Solo tendrás que escribir el código una vez y GWT lo convertirá al formato JavaScript más adecuado para el navegador de cada usuario. Más información
Sugerencia: si utilizas Eclipse, es posible que el complemento de Google para Eclipse te resulte útil.
GWT 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 especialmente sencilla y eficaz. Al igual que ocurre con el mecanismo de invocación de métodos remotos (RMI) tradicional de Java, tan solo hay que crear una interfaz que especifique los métodos remotos que se quieran ejecutar. 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. El mecanismo RPC de GWT también es bastante sofisticado: permite gestionar jerarquías de clase polimórfica y ciclos de gráficos de objetos, e incluso generar excepciones durante el proceso. Más información
La "vinculación aplazada" es una función de GWT que genera múltiples versiones del código compilado. Cada cliente solo tiene que cargar una de esas versiones durante la ejecución del cargador de inicialización. Cada versión se genera para un determinado navegador, junto con cualquier otro eje definido o utilizado por la aplicación. Por ejemplo, si quisieras internacionalizar tu aplicación mediante el módulo de internacionalización de GWT, el compilador de GWT generaría versiones de la aplicación para cada entorno de navegación, por ejemplo, "Firefox en inglés", "Firefox en francés", "Internet Explorer en inglés", etc. Por tanto, el código JavaScript implementado es compacto y se puede descargar con más rapidez que las instrucciones "if/then" creadas en JavaScript. Más información
Puedes crear artilugios reutilizables mediante la composición de otros artilugios y colocarlos después fácilmente en paneles. La aplicación Showcase de GWT ofrece una visión general de las distintas funciones de interfaz de usuario de GWT. ¿Quieres reutilizar tu artilugio en otro proyecto? Solo tienes que prepararlo para que se pueda utilizar en un archivo JAR. Más información
Si la biblioteca de clases de GWT no satisface tus necesidades, puedes mezclar JavaScript manual en el código fuente Java mediante la interfaz JSNI. Con GWT 1.5, ahora es posible clasificar en subclases la clase JavaScriptObject (JSO) de GWT para crear "superposiciones de clases" Java en objetos JavaScript arbitrarios. GWT ofrece, por tanto, la ventaja de poder crear modelos de objetos JS como tipos de Java (por ejemplo, creación de código, reestructuración, sustitución de llamadas a funciones, etc.) sin tener que contar con una mayor cantidad de memoria ni sufrir una disminución de velocidad. Esta función posibilita un uso óptimo de las estructuras JSON. Más información
No, las aplicaciones AJAX no necesitan desgastar el botón de retroceso del navegador. GWT hace que resulte más sencillo utilizar tu sitio con solo añadir el estado al historial del botón de retroceso del navegador. Más información
Puedes crear fácilmente bibliotecas y aplicaciones internacionalizadas con las potentes técnicas de vinculación aplazada de GWT. Además, a partir de la versión 1.5, los artilugios GWT estándar admiten la bidireccionalidad. Más información
GWT utiliza Java, por lo que puedes emplear todas tus herramientas favoritas de desarrollo con Java (Eclipse, IntelliJ, JProfiler y JUnit) al crear tus aplicaciones AJAX. De esa forma, como desarrollador web, podrás beneficiarte del aumento de productividad derivado de la creación/solicitud de código y de la reestructuración de Java automatizada. Por otra parte, la comprobación de tipo estático en lenguaje Java permite que los desarrolladores detecten una clase de errores de JavaScript (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. Ningún usuario tendrá que volver a descubrir asignaciones de variables accidentales. Por último, puedes aprovechar abstracciones y patrones de diseño orientados a objetos (OO) basados en Java que los usuarios de tus aplicaciones podrán comprender y mantener con facilidad sin sufrir una disminución del rendimiento durante la ejecución del programa gracias a las optimizaciones del compilador.
La integración directa de GWT con JUnit permite efectuar la comprobación por unidad tanto en un depurador como en un navegador, e incluso comprobar por unidad las llamadas a procedimientos remotos (RPC) asíncronas. Más información
Todo el código de GWT está disponible bajo la licencia de Apache 2.0. Si deseas contribuir, consulta Mejorar GWT.
¿Estás listo para empezar? Si deseas consultar el tutorial y la guía de instalación paso a paso, lee la Guía de introducción. Posteriormente, continúa con el tutorial más detallado de GWT, que te permitirá conocer las funciones fundamentales de Google Web Toolkit.