gwt intro adwe_murcia

13
Introducción a GWT “Google Web Toolkit” ADWE Murcia, 6 de Julio 2011 Miguel García, @mglpia [email protected] lunes 25 de julio de 11

Upload: adwe-team

Post on 12-Jun-2015

2.033 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Gwt intro adwe_murcia

Introducción a GWT“Google Web Toolkit”

ADWE Murcia, 6 de Julio 2011Miguel García, @mglpia

[email protected]

lunes 25 de julio de 11

Page 2: Gwt intro adwe_murcia

• AJAX: Asynchronous JS and XML XmlHttpRequest

• “Sitio Web” vs. “Aplicación Web”

• SPI: Single Page Interface

• “Centrado en el Servidor” vs “el Cliente”

• Serialización en JSON, XML

• JavaScript muy optimizado hoy en día

Previo

lunes 25 de julio de 11

Page 3: Gwt intro adwe_murcia

• Nota: GWT != GAE (Google App Engine)

• Toolkit desarrollo clientes Web - RIA

• Centrado en el navegador: CPU, RAM, pide por esa boca

• Desarrollo en Java Lenguaje muy extendido

• Abstrae de diferencias navegadores

• Detalles a continuación...

Qué es GWT

lunes 25 de julio de 11

Page 4: Gwt intro adwe_murcia

Plugin para Eclipse

• Creación de proyectos GWT

• Integración debugger, “Run as...”

• Editores para ficheros usados por GWT

• Integración tests unitarios

• Otros: Maven plugin, NetBeans, IntelliJ

lunes 25 de julio de 11

Page 5: Gwt intro adwe_murcia

Compilador GWT• “Compila” código Java > JavaScript + HTML

• Una versión distinta por navegador/engine

• No uso de binarios (.jar): código fuente

• Clases del JRE/JDK “blacklisted” ¡(Re-)Escritas en JS!

• Posibilidad de llamar métodos “nativos” JS

• OBFUSCATED, PRETTY, DETAILED

lunes 25 de julio de 11

Page 6: Gwt intro adwe_murcia

Interfaz Usuario• Extensa librería de widgets Composite

• Diseño/layout vía:

• “A pelo”, programáticamente panel.setLayout(...)

• UIBinder XML-based, componentes/handlers inyectados @UiField, ...

• GWT Designer Diseño gráfico drag-and-drop

• HTML + GWT (= HTML + JS)

• “Wrappers” librerías componentes JS ExtJS,YUI...

• Soporte para internacionalización

• “CSS-skinning”lunes 25 de julio de 11

Page 7: Gwt intro adwe_murcia

Comunicación con ServidorAntes que nada... IMHO no es lo mejor para data-centric apps

(Vía http://www.zkoss.org/)

lunes 25 de julio de 11

Page 8: Gwt intro adwe_murcia

Comunicación con Servidor

• Con un servidor Java: GWT-RPC

• Librería peticiones HTTP

• Librerías manejo JSON y XML

• API/Naturaleza asíncrona onSuccess() onError()

• Múltiples opciones 3ªs partes resty-gwt, ...

lunes 25 de julio de 11

Page 9: Gwt intro adwe_murcia

Ejecución y Depuración

• Depuración: “en Java” + Plugin navegador Hosted Mode

• Herramientas examen Web Firebug + PRETTY/DETAILED

• GWT Logging Framework

• Código servidor: lo que queramos Mundo Java, o PHP, o ...

lunes 25 de julio de 11

Page 10: Gwt intro adwe_murcia

Otros• APIs de Google GWT-izadas Maps, Charts, ...

• Soporte al historial navegador

• No Eclipse-exclusivo Otros IDEs, command-line, Maven

• Documentación de alta calidad, detalles, tutoriales

• Patrones de arquitectura: MVC, MVP, ...

• Reutilización código JavaScript

• Speed Tracer Google Chrome Plugin

lunes 25 de julio de 11

Page 11: Gwt intro adwe_murcia

“Caso de Éxito”• Aplicación gestión equipos de vídeo móviles

• Servidor Java EE (Glassfish 3.1 OSE, EJB’s + REST)

• BDD PostgreSQL 9.0

• Aplicación de escritorio Swing (NetBeans Platform)

• Cliente(s) web: ubicuidad, ligero, móvil/tablets

• resty-gwt cliente REST, gwt-google-apis Google Maps

• atmosphere[-gwt] para “comet” (“server push”)

lunes 25 de julio de 11

Page 12: Gwt intro adwe_murcia

Demo

• Primera toma de contacto desarrollo GWT...

lunes 25 de julio de 11