Google Web Toolkit ( GWT / ˈ ɡ w ɪ t / ), o GWT Web Toolkit , [ 1 ] es un conjunto de herramientas de código abierto que permite a los desarrolladores web crear y mantener aplicaciones front-end de JavaScript en Java . Está licenciado bajo la Licencia Apache 2.0 . [ 2 ]
GWT admite diversas tareas de desarrollo web, como llamadas a procedimientos remotos asíncronos , gestión del historial, marcadores , abstracción de la interfaz de usuario , internacionalización y portabilidad entre navegadores .
Historia
La versión 1.0 RC 1 de GWT se publicó el 16 de mayo de 2006. [ 3 ] Google anunció GWT en la conferencia JavaOne de 2006. [ 4 ]
En agosto de 2010, Google adquirió Instantiations, [ 5 ] una empresa conocida por centrarse en herramientas de desarrollo de Java para Eclipse, incluido GWT Designer, que ahora viene incluido con el complemento de Google para Eclipse .
En 2011, con la introducción del lenguaje de programación Dart , Google declaró que GWT seguiría recibiendo soporte en el futuro previsible, al tiempo que insinuaba un posible acercamiento entre los dos enfoques de Google para la programación web estructurada. Sin embargo, también mencionaron que varios de los ingenieros que anteriormente trabajaban en GWT ahora trabajan en Dart . [ 6 ]
En 2012, en su conferencia anual I/O, Google anunció que GWT se transformaría de un proyecto de Google a un proyecto completamente de código abierto. [ 7 ] En julio de 2013, Google publicó en su blog de GWT que la transformación a un proyecto de código abierto se había completado. [ 8 ]
Desarrollo con GWT
Con GWT, los desarrolladores pueden crear y depurar aplicaciones Ajax en Java utilizando las herramientas de desarrollo de Java que prefieran. Al desplegar la aplicación, el compilador cruzado de GWT la traduce a archivos JavaScript independientes, que opcionalmente se ofuscan y optimizan en profundidad. Si es necesario, también se puede insertar JavaScript directamente en el código Java mediante comentarios. [ 9 ]
GWT proporciona herramientas para crear funcionalidades JavaScript del lado del cliente junto con la programación de la interfaz de usuario, dejando las decisiones arquitectónicas en manos del desarrollador. La declaración de misión de GWT [ 10 ] aclara la diferencia filosófica entre el rol de GWT y el del desarrollador. El historial es un ejemplo de ello: aunque GWT gestiona los tokens de historial cuando los usuarios hacen clic en Atrás o Adelante en el navegador, no detalla cómo asignar los tokens de historial a un estado de la aplicación.
Las aplicaciones GWT se pueden ejecutar en dos modos:
- Modo de desarrollo (anteriormente modo alojado ): La aplicación se ejecuta como bytecode de Java dentro de la Máquina Virtual de Java (JVM). [ 11 ] Este modo se usa normalmente para el desarrollo, ya que admite el intercambio en caliente de código y la depuración. En 2014, la implementación clásica del modo Dev quedó inutilizable debido a las actualizaciones del navegador [ 12 ] [ 13 ] hasta que fue reemplazada por el modo Super Dev , más compatible , que se convirtió en el predeterminado en GWT 2.7. [ 14 ]
- Modo de producción (anteriormente modo web ): La aplicación se ejecuta como JavaScript y HTML puros, compilados a partir del código fuente Java. Este modo se suele utilizar para la implementación.
Existen varios complementos de código abierto para facilitar el desarrollo de GWT con otros IDE , como GWT4NB [ 15 ] para NetBeans , Cypal Studio para GWT [ 16 ] (un complemento para Eclipse ) y GWT Developer para JDeveloper . El complemento de Google para Eclipse gestiona la mayoría de las tareas relacionadas con GWT en el IDE, incluyendo la creación de proyectos, la invocación del compilador de GWT, la creación de configuraciones de lanzamiento de GWT, la validación y el resaltado de sintaxis .
Componentes
Los principales componentes de GWT incluyen:
- Compilador GWT de Java a JavaScript [ 17 ] [ 18 ]
- Traduce el lenguaje de programación Java al lenguaje de programación JavaScript.
- Modo de desarrollo de GWT
- Permite a los desarrolladores ejecutar aplicaciones GWT en modo de desarrollo (la aplicación se ejecuta como Java en la JVM sin compilarse a JavaScript). Antes de la versión 2.0, el modo alojado de GWT proporcionaba un navegador específico para depurar el código GWT. En la versión 2.0, la página web que se está depurando se visualiza en un navegador normal. El modo de desarrollo es compatible con muchos navegadores populares mediante un complemento de código nativo llamado Google Web Toolkit Developer Plugin.
- Biblioteca de emulación JRE
- Implementaciones en JavaScript de las clases de uso común en la biblioteca de clases estándar de Java (como la mayoría de las clases del paquete java.lang y un subconjunto de las clases del paquete java.util).
- Biblioteca de clases de interfaz web GWT
- Un conjunto de interfaces y clases personalizadas para crear widgets .
Características
- Componentes de interfaz de usuario dinámicos y reutilizables : las clases integradas implementan comportamientos dinámicos como arrastrar y soltar o estructuras de árbol visuales complejas. [ 19 ]
- Mecanismo RPC simple
- Gestión del historial de navegación
- Soporte para la depuración de Java [ 4 ]
- GWT maneja algunos problemas de compatibilidad entre navegadores para el desarrollador. [ 4 ]
- Integración de pruebas unitarias
- Apoyo a la internacionalización y la localización
- Compatibilidad con HTML Canvas (sujeta a cambios en la API) [ 20 ]
- Los desarrolladores pueden mezclar código JavaScript escrito a mano en el código fuente Java utilizando la Interfaz Nativa de JavaScript (JSNI).
- Compatibilidad con el uso de las API de Google en aplicaciones GWT (inicialmente, compatibilidad con Google Gears ).
- Código abierto
- Las aplicaciones se pueden desarrollar utilizando una arquitectura orientada a objetos en Java, [ 19 ] lo que permite detectar problemas comunes de JavaScript, como errores tipográficos y discrepancias de tipos, en tiempo de compilación.
- El JavaScript generado puede compilarse en un formato sin ofuscación (Source-Mapped o Source-Code) o en un formato ofuscado y comprimido. [ 19 ]
- Existen varias bibliotecas disponibles para GWT, tanto de Google como de terceros. Estas amplían las características del conjunto de herramientas. [ 19 ]
Widgets disponibles
A partir de la versión 2.4 (septiembre de 2011), Google Web Toolkit ofrece varios widgets [ 21 ] y paneles. [ 21 ]
Muchos widgets comunes que no se encuentran en GWT se han implementado en bibliotecas de terceros.
Uso empresarial
GWT utiliza o admite Java , Apache Tomcat (o un contenedor web similar), Eclipse IDE , Internet Explorer [ 22 ] , e internacionalización y localización . Las aplicaciones web enriquecidas de GWT basadas en Java se pueden probar utilizando el marco de pruebas JUnit y herramientas de cobertura de código. GWT proporciona verificación en tiempo de compilación de imágenes, CSS y lógica de negocio para detectar errores de implementación durante el desarrollo.
Google ha señalado que algunos de sus productos se basan en GWT: [ 23 ] Blogger , AdWords , Flights , Wallet , Offers , Groups , Inbox . [ 24 ]
GWT 2.0
El 8 de diciembre de 2009, Google lanzó Google Web Toolkit 2.0 con Speed Tracer. [ 25 ]
La versión 2.0 de GWT ofrece una serie de nuevas características, [ 26 ] entre las que se incluyen:
- Modo de desarrollo en navegador (anteriormente conocido como modo alojado fuera de proceso, OOPHM): antes de la versión 2.0, el modo alojado se utilizaba para integrar un navegador modificado que permitía ejecutar la versión de código de bytes de la aplicación durante el desarrollo. Con la versión 2.0, el modo alojado, ahora llamado "modo de desarrollo", permite usar cualquier navegador (compatible) para visualizar la página que se está depurando mediante un complemento. Este complemento se comunica con la consola del modo de desarrollo mediante TCP/IP, lo que permite la depuración multiplataforma (por ejemplo, depurar en Internet Explorer en Windows desde una consola de modo de desarrollo que se ejecuta en una máquina Linux).
- División de código: al proporcionar el desarrollador "puntos de división" en el código fuente, el compilador GWT puede dividir el código JavaScript en varios fragmentos pequeños en lugar de una única descarga grande. Esto reduce el tiempo de inicio de la aplicación, ya que disminuye el tamaño de la descarga inicial.
- Interfaz de usuario declarativa: mediante el formato XML, la nueva función conocida como UiBinder permite crear interfaces de usuario a través de declaraciones en lugar de código. Esto facilita una clara separación entre la construcción de la interfaz de usuario y la implementación de su comportamiento.
- Agrupación de recursos: la interfaz ClientBundle permitirá agrupar recursos de cualquier tipo (imágenes, CSS, texto, binarios) y transferirlos en una sola descarga, lo que reducirá el número de viajes de ida y vuelta al servidor y, por lo tanto, disminuirá la latencia de la aplicación.
Dado que el nuevo modo de desarrollo eliminó la mayor parte del código específico de la plataforma, la nueva versión se distribuirá como un archivo único, en lugar de uno por cada plataforma compatible, como ocurría con las versiones anteriores.
Móvil
Como marco general para la creación de aplicaciones web, Google Web Toolkit también puede utilizarse para crear aplicaciones móviles y para tabletas, ya sea creando los widgets y animaciones necesarios desde cero o utilizando alguno de los marcos móviles de GWT. Una aplicación HTML5 escrita en GWT puede tener vistas independientes para tabletas y teléfonos móviles.
Véase también
Referencias
- ↑ "Política de uso de nombres de GWT" . Consultado el 23 de abril de 2014 .
- ↑ "Información sobre la licencia de Google Web Toolkit" . 23 de febrero de 2007. Consultado el 25 de septiembre de 2007 .
- ↑ "Archivo de versiones de Google Web Toolkit" . Consultado el 25 de septiembre de 2007 .
- 1 2 3 Olson, Steven Douglas (2007). Ajax en Java . O'Reilly. pág. 183. ISBN 978-0-596-10187-9.
- ↑ Ramsdale, Chris. "Google relanza las herramientas para desarrolladores de instancias" .
- ↑ "Blog de Google Web Toolkit: GWT y Dart" . Googlewebtoolkit.blogspot.com. 10 de noviembre de 2011. Consultado el 16 de junio de 2013 .
- ↑ Vaadin dará soporte al desarrollo de Google Web Toolkit (GWT) . vaadin.com (29 de junio de 2012). Consultado el 15 de mayo de 2014.
- ↑ Blog de Google Web Toolkit: Noticias de GWT . Googlewebtoolkit.blogspot.com (15 de julio de 2013). Consultado el 15 de mayo de 2014.
- ↑ "Conceptos básicos de programación: Interfaz nativa de JavaScript (JSNI) - Google Web Toolkit — Google Developers" . Google Inc. 25 de octubre de 2012. Consultado el 16 de junio de 2013 .
- ↑ Declaración de misión de GWT
- ↑ Depuración en modo de desarrollo
- ↑ "El modo de desarrollo no será compatible con Firefox 27+" . google-web-toolkit@googlegroups.com (Lista de correo).
- ↑ "El plugin para desarrolladores de GWT ya no funciona con Chrome en Linux" . google-web-toolkit@googlegroups.com (Lista de correo).
- ↑ "Modo Super Desarrollador" .
- ↑ GWT4NB
- ↑ Cypal Studio para GWT
- ↑ "com.google.gwt.dev.Compiler" . GitHub .
El punto de entrada ejecutable principal para el compilador de Java a JavaScript de GWT.
- ↑ "com.google.gwt.dev.jjs.JavaToJavaScriptCompiler" . GitHub .
Una base para clases que compilan
representaciones de Java en el código fuente Js correspondiente.
JProgram - 1 2 3 4 Perry, Bruce W (2007). Google Web Toolkit para Ajax . O'Reilly Short Cuts. O'Reilly. págs. 1–5 . ISBN 978-0-596-51022-0.
- ↑ "GWT Javadoc Canvas" .
- 1 2 "Lista de widgets" . Google Inc. Consultado el 21 de mayo de 2012 .
- ↑ Proyecto GWT . Proyecto GWT. Consultado el 15 de mayo de 2014.
- ↑ "Google I/O 2012: la historia y el futuro de Google Web Toolkit" . GoogleDevelopers. 10 de julio de 2012. Consultado el 18 de marzo de 2013 .
- ↑ Toubassi, Garrick. "Explorando el funcionamiento interno de Inbox" . Blog oficial de Gmail . Consultado el 22 de noviembre de 2014 .
- ↑ Presentamos Google Web Toolkit 2.0, ahora con Speed Tracer.
- ↑ «Anuncio del hito 1 de GWT 2.0» . Amit Manjhi . Consultado el 5 de octubre de 2009 .
Bibliografía
- Dewsbury, Ryan (15 de diciembre de 2007). Aplicaciones de Google Web Toolkit . Prentice Hall . pág. 608. ISBN 978-0-321-50196-7.
- Chaganti, Prabhakar (15 de febrero de 2007). Kit de herramientas web de Google: programación GWT Java Ajax . Publicación de paquetes . pag. 248.ISBN 978-1-84719-100-7Archivado del original el 30 de abril de 2011. Consultado el 24 de abril de 2009 .
- Geary, David (17 de noviembre de 2007). Soluciones de Google Web Toolkit: Más cosas geniales y útiles . Prentice Hall . pág. 408. ISBN 978-0-13-234481-4.
- Hanson, Robert; Adam Tacy (7 de febrero de 2013). GWT en acción (2.ª ed.). Manning . pág. 643. ISBN 978-1-935182-84-9.
- Cooper, Robert; Charlie Collins (12 de mayo de 2008). GWT en la práctica . Manning . pág . 376. ISBN 978-1-933988-29-0.
- Software de Google
- Java (plataforma de software)
- Bibliotecas de JavaScript
- Marcos de trabajo para aplicaciones web enriquecidas
- Software que utiliza la licencia Apache.
- Software de desarrollo web