SlideShare una empresa de Scribd logo
1 de 25
Web Toolkit
Universidade Vila Velha
Hugo Corteletti e Lorran Pegoretti
Trabalho realizado para avaliação na disciplina de Programação Avançada para
WEB, do curso de Ciência da Computação, turno matutino, da Universidade de
Vila Velha (UVV), ministrada pelo professor Vinicius Rosalen.
2013
Tópicos Abordados
 O que é o GWT?
 História
 Vantagens
 Desvantagens
 Começando uma aplicação
 Google APIs
 Desenvolvimento com GWT
 Empresas que utilizam GWT
O que é o GWT?
 Framework para desenvolvimento de aplicações ricas para internet que traduz
código Java em código JavaScript
 Lema: “Produtividade para desenvolvedores, desempenho para usuários.”
 Deixar uma interface rica e que funcione nos principais navegadores é muito difícil
devido à falta de padrões existentes entre os navegadores
 O Google Web Toolkit foi criado com intuito de ajudar os desenvolvedores nessa
tarefa
 Definição: “Google Web Toolkit (GWT) é um kit de ferramentas de desenvolvimento
para a construção e otimização de aplicações complexas baseadas em browser.”
História
 Sua versão 1.0 foi lançada em 16 de maio de 2006, tendo sido apresentado na
conferência JavaOne naquele mesmo ano
 Em agosto de 2010 o Google focou o GWT para eclipse, lançando com o Google
Plugin for Eclipse
 Sua versão atual é a 2.5.1 que foi lançada em março de 2013
Compilação
Vantagens
 Processamento de apresentação é todo realizado no cliente
 Menor uso de recursos do servidor
 Escalabilidade
 Menor tráfego de rede
 Após o carregamento inicial apenas dados trafegam, pois a lógica de exibição e as
telas já estão todas no cliente
Vantagens
 Compilador JavaScript
 Alta performance
 Erros encontrados em tempo de compilação
 Múltiplos navegadores
 Permite utilizar JavaScript no código Java via JSNI (JavaScript Native Interface)
 JSNI é o responsável por fazer a integração diretamente com o código Java
Desvantagens
 Tamanho do JavaScript inicial pode ser grande
 Não é possível utilizar todas as classes do Java do lado do cliente, apenas um
conjunto delas
 Classes utilizadas no lado do cliente devem ser traduzíveis para JavaScript
 Uso de bibliotecas de terceiros
 Há menor controle sobre o código do cliente no aplicativo
 Difícil de debugar CSS
 Difícil de simular integração com outras tecnologias (ex. Flash)
Começando uma Aplicação
 Necessário download do plugin GWT para a IDE.
Começando uma Aplicação
 Main.gwt.xml: O arquivo do módulo
XML do projeto, contido no pacote
raiz do projeto, é um arquivo XML
que detém as configurações
completas da aplicação
necessárias por um projeto GWT
Começando uma Aplicação
 inherits: Especifica os módulos herdados por este módulo. Neste simples caso, nós só
herdamos a funcionalidade fornecida pelo módulo User, que é integrada ao framework
GWT. Quando sua aplicação se torna mais complexa, a herança de módulo permite
que você reutilize partes de funcionalidade de uma maneira rápida e eficiente
 entry-point: Refere-se à classe que será instanciada pelo framework GWT quando o
módulo for carregado
Main.gwt.xml
Começando uma Aplicação
 MainEntryPoint.java: A classe que
designa o ponto de entrada
principal da aplicação, conforme
especificado em Main.gwt.xml. Ela
estende a classe EntryPoint e,
quando o módulo GWT é carregado
pelo framework, essa classe é
instanciada e seu método
onModuleLoad() é chamado
automaticamente
Começando uma Aplicação
MainEntryPoint.java
Começando uma Aplicação
MainEntryPoint.java
 o método onModuleLoad() default do EntryPoint adiciona os seguintes
componentes à aplicação:
 Label: Um novo Label GWT é criado, exibindo o texto, 'Hello, GWT!!!'. O label é
adicionado ao RootPanel através da linha final do código,
RootPanel.get().add(label)
 Button: Um novo Button (Botão) GWT é criado, exibindo o texto “Click me!” com
um listener do botão, implementado por ClickListener. O listener do botão
especifica que quando o botão é clicado, o label fica oculto
Começando uma Aplicação
MainEntryPoint.java
O botão é adicionado ao RootPanel por meio da penúltima linha de código.
Começando uma Aplicação
 welcomeGWT.html: A página HTML
do host gerada, que é o arquivo de
boas-vindas designado para a
aplicação. O arquivo web.xml usa o
elemento welcome-file para
especificar que a página do host
será a página inicial exibida no
browser quando a aplicação for
implantada. A página do host
referencia o caminho para o
código-fonte JavaScript e pode
referenciar a folha de estilo da
aplicação
Começando uma Aplicação
welcomeGWT.html
Começando uma Aplicação
welcomeGWT.html
 meta: Aponta para o diretório de projeto da aplicação. Essa tag fornece
um link entre a página HTML e a aplicação
 script: Importa códigos do arquivo JavaScript do framework GWT. Esse
arquivo contém o código necessário para o bootstrap do framework GWT.
Ele usa a configuração no módulo do projeto e carrega dinamicamente o
JavaScript criado ao compilar o ponto de entrada para entregar à
aplicação. O arquivo JavaScript é gerado pelo framework GWT ao
executar a aplicação no modo hospedado ou ao compilar a aplicação
Google APIs
 Google+ API
 Google Books API
 Google Calendar API
 Google APIs Discovery Service
 Google Latitude API
 Google Tasks API
 Google URL Shortener (goo.gl)
API Google Maps
 A API do Google Maps fornece uma API JavaScript que permite que você
adicione a funcionalidade de mapeamento para a sua aplicação
 A biblioteca do Google Maps para o GWT permite que você acesse este
API JavaScript a partir do código Java compilado com o compilador GWT
API Google Maps
API Google Maps
Desenvolvimento com GWT
 Facilita o desenvolvimento de aplicações que façam uso de Ajax
 Evita que o desenvolvedor perca tempo com detalhes técnicos durante a criação de
aplicações web bastante dinâmicas
 Evita incompatibilidades entre browsers e plataformas e permite maior modularização
dos componentes AJAX e JavaScript
Empresas que utilizam GWT
 GFT Brasil Consultoria Informática Ltda.
 O Grupo GFT é um dos principais fornecedores mundiais de serviços
de TI para o setor financeiro. Presente no Brasil desde 2005, a
empresa emprega cerca de 160 profissionais no país.
 INCORP
 Softwares estratégicos para administração de conselhos regionais
de profissões regulamentadas, autoatendimento via web e gestão
de processos eleitorais.
 Certificada nível G do MPS.BR
 Converge TI
 Empresa especializada no desenvolvimento de soluções para
empresas.
Referências
 Google Web Toolkit Overview - https://developers.google.com/web-
toolkit/overview
 Google Web Toolkit - http://en.wikipedia.org/wiki/Google_Web_Toolkit#History
 Aplicação NetBeans - https://netbeans.org/kb/docs/web/quickstart-webapps-
gwt_pt_BR.html
 API do Google Maps - https://code.google.com/p/gwt-google-
apis/wiki/MapsGettingStarted
 Mail app - http://gwt.googleusercontent.com/samples/Mail/Mail.html
 Empresas que utilizam GWT no Brasil -
https://groups.google.com/forum/?fromgroups#!topic/gwt-brasil/K7NiaY1hkMw

Más contenido relacionado

La actualidad más candente

Introdução ao Android
Introdução ao AndroidIntrodução ao Android
Introdução ao AndroidJanynne Gomes
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - BásicoHugoDalevedove
 
Android DevConference - Automatizando testes sem sofrimento
Android DevConference - Automatizando testes sem sofrimentoAndroid DevConference - Automatizando testes sem sofrimento
Android DevConference - Automatizando testes sem sofrimentoiMasters
 
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...Tchelinux
 
Tutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidTutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidSidney Roberto
 
google maps api - v1
 google maps api - v1 google maps api - v1
google maps api - v1Lucas Aquiles
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para AndroidJorge Cardoso
 
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneEntenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneHenrique Perticarati
 
Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03Horacio Diamante Mondlane
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao androidMessias Batista
 
Curso de Android Aula 4
Curso de Android Aula 4Curso de Android Aula 4
Curso de Android Aula 4Jose Berardo
 
Programando Android - Aula 1
Programando Android - Aula 1Programando Android - Aula 1
Programando Android - Aula 1Kalil Maciel
 
Da introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento AndroidDa introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento AndroidRodolfo Faquin Della Justina
 
Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2Matheus Calegaro
 
Slides - minicurso app inventor
Slides - minicurso app inventorSlides - minicurso app inventor
Slides - minicurso app inventorMichel de Souza
 
Introdução ao Desenvolvimento Android
Introdução ao Desenvolvimento AndroidIntrodução ao Desenvolvimento Android
Introdução ao Desenvolvimento AndroidJosé Alexandre Macedo
 

La actualidad más candente (20)

Introdução ao Android
Introdução ao AndroidIntrodução ao Android
Introdução ao Android
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - Básico
 
Android DevConference - Automatizando testes sem sofrimento
Android DevConference - Automatizando testes sem sofrimentoAndroid DevConference - Automatizando testes sem sofrimento
Android DevConference - Automatizando testes sem sofrimento
 
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
 
Apostilaandroidfatecnormal
ApostilaandroidfatecnormalApostilaandroidfatecnormal
Apostilaandroidfatecnormal
 
Tutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidTutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para Android
 
google maps api - v1
 google maps api - v1 google maps api - v1
google maps api - v1
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para Android
 
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneEntenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
 
Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03
 
Introdução ao Android Studio
Introdução ao Android StudioIntrodução ao Android Studio
Introdução ao Android Studio
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android
 
Curso de Android Aula 4
Curso de Android Aula 4Curso de Android Aula 4
Curso de Android Aula 4
 
Android Aprendiz
Android AprendizAndroid Aprendiz
Android Aprendiz
 
Programando Android - Aula 1
Programando Android - Aula 1Programando Android - Aula 1
Programando Android - Aula 1
 
Da introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento AndroidDa introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento Android
 
Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2
 
Android - Notas de aula
Android - Notas de aulaAndroid - Notas de aula
Android - Notas de aula
 
Slides - minicurso app inventor
Slides - minicurso app inventorSlides - minicurso app inventor
Slides - minicurso app inventor
 
Introdução ao Desenvolvimento Android
Introdução ao Desenvolvimento AndroidIntrodução ao Desenvolvimento Android
Introdução ao Desenvolvimento Android
 

Destacado

Destacado (20)

Google Maps - GDG Sorocaba - Kenzo
Google Maps - GDG Sorocaba - KenzoGoogle Maps - GDG Sorocaba - Kenzo
Google Maps - GDG Sorocaba - Kenzo
 
Dropbox 17 05-2012
Dropbox 17 05-2012Dropbox 17 05-2012
Dropbox 17 05-2012
 
Instructivo: Documento en Google Drive
Instructivo: Documento en Google Drive Instructivo: Documento en Google Drive
Instructivo: Documento en Google Drive
 
Pruebas automatizadas de aceptación en aplicaciones web
Pruebas automatizadas de aceptación en aplicaciones webPruebas automatizadas de aceptación en aplicaciones web
Pruebas automatizadas de aceptación en aplicaciones web
 
Aula 5 - Criando Mapas no Google Maps
Aula 5 - Criando Mapas no Google MapsAula 5 - Criando Mapas no Google Maps
Aula 5 - Criando Mapas no Google Maps
 
Meo wallet online bootcamp consultores digitais
Meo wallet online bootcamp consultores digitaisMeo wallet online bootcamp consultores digitais
Meo wallet online bootcamp consultores digitais
 
Google Drive
Google DriveGoogle Drive
Google Drive
 
Google Drive - Formação
Google Drive - FormaçãoGoogle Drive - Formação
Google Drive - Formação
 
Site responsivo vantagens e desvantagens
Site responsivo vantagens e desvantagensSite responsivo vantagens e desvantagens
Site responsivo vantagens e desvantagens
 
Como usar o google drive
Como usar o google driveComo usar o google drive
Como usar o google drive
 
Tutorial: Google Maps
Tutorial: Google MapsTutorial: Google Maps
Tutorial: Google Maps
 
Dropbox
DropboxDropbox
Dropbox
 
Google drive, cómo trabajar en la nube de google
Google drive, cómo trabajar en la nube de googleGoogle drive, cómo trabajar en la nube de google
Google drive, cómo trabajar en la nube de google
 
Google drive - Planilhas
Google drive - PlanilhasGoogle drive - Planilhas
Google drive - Planilhas
 
Google docs google drive
Google docs   google driveGoogle docs   google drive
Google docs google drive
 
Google maps
Google mapsGoogle maps
Google maps
 
Apostila gmail googledrive
Apostila gmail googledriveApostila gmail googledrive
Apostila gmail googledrive
 
Google Maps
Google MapsGoogle Maps
Google Maps
 
Tutorial google drive
Tutorial google driveTutorial google drive
Tutorial google drive
 
Tutorial google drive
Tutorial google driveTutorial google drive
Tutorial google drive
 

Similar a Introdução ao Google Web Toolkit (GWT

Pyjamas: Uma Ferramenta Pythônica para Web
Pyjamas: Uma Ferramenta Pythônica para WebPyjamas: Uma Ferramenta Pythônica para Web
Pyjamas: Uma Ferramenta Pythônica para WebNielson Santana
 
Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1michellobo
 
Apostila de programacao java
Apostila de programacao javaApostila de programacao java
Apostila de programacao javaCleber Costa
 
jQuery: Write less, do more
jQuery: Write less, do morejQuery: Write less, do more
jQuery: Write less, do morehfsantos
 
Slide 02 introdução ao code igniter, utilização do bootstrap
Slide 02   introdução ao code igniter, utilização do bootstrap Slide 02   introdução ao code igniter, utilização do bootstrap
Slide 02 introdução ao code igniter, utilização do bootstrap Raniere de Lima
 
Desenvolvimento RIA com GWT e Spring
Desenvolvimento RIA com GWT e SpringDesenvolvimento RIA com GWT e Spring
Desenvolvimento RIA com GWT e SpringEder Magalhães
 
JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosJHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosThiago Soares
 
Netbeans Slides Fy2009 Portugues
Netbeans Slides Fy2009 PortuguesNetbeans Slides Fy2009 Portugues
Netbeans Slides Fy2009 PortuguesRodrigo Peleias
 
Google Apps Script
Google Apps ScriptGoogle Apps Script
Google Apps ScriptCIJUN
 
FAESA Computação Móvel: Introducao a Phonegap e Cordova
FAESA Computação Móvel: Introducao a Phonegap e CordovaFAESA Computação Móvel: Introducao a Phonegap e Cordova
FAESA Computação Móvel: Introducao a Phonegap e CordovaLoiane Groner
 
Conhecendo o NuGet e utilizando com ASP.NET MVC
Conhecendo o NuGet e utilizando com ASP.NET MVCConhecendo o NuGet e utilizando com ASP.NET MVC
Conhecendo o NuGet e utilizando com ASP.NET MVCFabrício Lopes Sanchez
 

Similar a Introdução ao Google Web Toolkit (GWT (20)

Gwt
GwtGwt
Gwt
 
Gwt parte 01
Gwt   parte 01Gwt   parte 01
Gwt parte 01
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Pyjamas: Uma Ferramenta Pythônica para Web
Pyjamas: Uma Ferramenta Pythônica para WebPyjamas: Uma Ferramenta Pythônica para Web
Pyjamas: Uma Ferramenta Pythônica para Web
 
GWT - RIA baseada em AJAX
GWT - RIA baseada em AJAXGWT - RIA baseada em AJAX
GWT - RIA baseada em AJAX
 
Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1
 
gae
gaegae
gae
 
Mc56 gwt
Mc56 gwtMc56 gwt
Mc56 gwt
 
Apostila de programacao java
Apostila de programacao javaApostila de programacao java
Apostila de programacao java
 
jQuery: Write less, do more
jQuery: Write less, do morejQuery: Write less, do more
jQuery: Write less, do more
 
Slide 02 introdução ao code igniter, utilização do bootstrap
Slide 02   introdução ao code igniter, utilização do bootstrap Slide 02   introdução ao code igniter, utilização do bootstrap
Slide 02 introdução ao code igniter, utilização do bootstrap
 
Gwt-Guice_TDC2009
Gwt-Guice_TDC2009Gwt-Guice_TDC2009
Gwt-Guice_TDC2009
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Desenvolvimento RIA com GWT e Spring
Desenvolvimento RIA com GWT e SpringDesenvolvimento RIA com GWT e Spring
Desenvolvimento RIA com GWT e Spring
 
JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosJHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãos
 
Widget
WidgetWidget
Widget
 
Netbeans Slides Fy2009 Portugues
Netbeans Slides Fy2009 PortuguesNetbeans Slides Fy2009 Portugues
Netbeans Slides Fy2009 Portugues
 
Google Apps Script
Google Apps ScriptGoogle Apps Script
Google Apps Script
 
FAESA Computação Móvel: Introducao a Phonegap e Cordova
FAESA Computação Móvel: Introducao a Phonegap e CordovaFAESA Computação Móvel: Introducao a Phonegap e Cordova
FAESA Computação Móvel: Introducao a Phonegap e Cordova
 
Conhecendo o NuGet e utilizando com ASP.NET MVC
Conhecendo o NuGet e utilizando com ASP.NET MVCConhecendo o NuGet e utilizando com ASP.NET MVC
Conhecendo o NuGet e utilizando com ASP.NET MVC
 

Más de Lorran Pegoretti

Software Architecture for Robotics
Software Architecture for RoboticsSoftware Architecture for Robotics
Software Architecture for RoboticsLorran Pegoretti
 
Algoritmo de Rabin-Karp - Artigo
Algoritmo de Rabin-Karp - ArtigoAlgoritmo de Rabin-Karp - Artigo
Algoritmo de Rabin-Karp - ArtigoLorran Pegoretti
 
Padrões de projeto - Adapter, Proxy, Composite e Bridge
Padrões de projeto - Adapter, Proxy, Composite e BridgePadrões de projeto - Adapter, Proxy, Composite e Bridge
Padrões de projeto - Adapter, Proxy, Composite e BridgeLorran Pegoretti
 

Más de Lorran Pegoretti (6)

Software Architecture for Robotics
Software Architecture for RoboticsSoftware Architecture for Robotics
Software Architecture for Robotics
 
Algoritmo de Rabin-Karp - Artigo
Algoritmo de Rabin-Karp - ArtigoAlgoritmo de Rabin-Karp - Artigo
Algoritmo de Rabin-Karp - Artigo
 
Algoritmo de Rabin-Karp
Algoritmo de Rabin-KarpAlgoritmo de Rabin-Karp
Algoritmo de Rabin-Karp
 
Padrões de projeto - Adapter, Proxy, Composite e Bridge
Padrões de projeto - Adapter, Proxy, Composite e BridgePadrões de projeto - Adapter, Proxy, Composite e Bridge
Padrões de projeto - Adapter, Proxy, Composite e Bridge
 
Material Seminário NoSQL
Material Seminário NoSQLMaterial Seminário NoSQL
Material Seminário NoSQL
 
Seminário - NoSQL
Seminário - NoSQLSeminário - NoSQL
Seminário - NoSQL
 

Introdução ao Google Web Toolkit (GWT

  • 1. Web Toolkit Universidade Vila Velha Hugo Corteletti e Lorran Pegoretti Trabalho realizado para avaliação na disciplina de Programação Avançada para WEB, do curso de Ciência da Computação, turno matutino, da Universidade de Vila Velha (UVV), ministrada pelo professor Vinicius Rosalen. 2013
  • 2. Tópicos Abordados  O que é o GWT?  História  Vantagens  Desvantagens  Começando uma aplicação  Google APIs  Desenvolvimento com GWT  Empresas que utilizam GWT
  • 3. O que é o GWT?  Framework para desenvolvimento de aplicações ricas para internet que traduz código Java em código JavaScript  Lema: “Produtividade para desenvolvedores, desempenho para usuários.”  Deixar uma interface rica e que funcione nos principais navegadores é muito difícil devido à falta de padrões existentes entre os navegadores  O Google Web Toolkit foi criado com intuito de ajudar os desenvolvedores nessa tarefa  Definição: “Google Web Toolkit (GWT) é um kit de ferramentas de desenvolvimento para a construção e otimização de aplicações complexas baseadas em browser.”
  • 4. História  Sua versão 1.0 foi lançada em 16 de maio de 2006, tendo sido apresentado na conferência JavaOne naquele mesmo ano  Em agosto de 2010 o Google focou o GWT para eclipse, lançando com o Google Plugin for Eclipse  Sua versão atual é a 2.5.1 que foi lançada em março de 2013
  • 6. Vantagens  Processamento de apresentação é todo realizado no cliente  Menor uso de recursos do servidor  Escalabilidade  Menor tráfego de rede  Após o carregamento inicial apenas dados trafegam, pois a lógica de exibição e as telas já estão todas no cliente
  • 7. Vantagens  Compilador JavaScript  Alta performance  Erros encontrados em tempo de compilação  Múltiplos navegadores  Permite utilizar JavaScript no código Java via JSNI (JavaScript Native Interface)  JSNI é o responsável por fazer a integração diretamente com o código Java
  • 8. Desvantagens  Tamanho do JavaScript inicial pode ser grande  Não é possível utilizar todas as classes do Java do lado do cliente, apenas um conjunto delas  Classes utilizadas no lado do cliente devem ser traduzíveis para JavaScript  Uso de bibliotecas de terceiros  Há menor controle sobre o código do cliente no aplicativo  Difícil de debugar CSS  Difícil de simular integração com outras tecnologias (ex. Flash)
  • 9. Começando uma Aplicação  Necessário download do plugin GWT para a IDE.
  • 10. Começando uma Aplicação  Main.gwt.xml: O arquivo do módulo XML do projeto, contido no pacote raiz do projeto, é um arquivo XML que detém as configurações completas da aplicação necessárias por um projeto GWT
  • 11. Começando uma Aplicação  inherits: Especifica os módulos herdados por este módulo. Neste simples caso, nós só herdamos a funcionalidade fornecida pelo módulo User, que é integrada ao framework GWT. Quando sua aplicação se torna mais complexa, a herança de módulo permite que você reutilize partes de funcionalidade de uma maneira rápida e eficiente  entry-point: Refere-se à classe que será instanciada pelo framework GWT quando o módulo for carregado Main.gwt.xml
  • 12. Começando uma Aplicação  MainEntryPoint.java: A classe que designa o ponto de entrada principal da aplicação, conforme especificado em Main.gwt.xml. Ela estende a classe EntryPoint e, quando o módulo GWT é carregado pelo framework, essa classe é instanciada e seu método onModuleLoad() é chamado automaticamente
  • 14. Começando uma Aplicação MainEntryPoint.java  o método onModuleLoad() default do EntryPoint adiciona os seguintes componentes à aplicação:  Label: Um novo Label GWT é criado, exibindo o texto, 'Hello, GWT!!!'. O label é adicionado ao RootPanel através da linha final do código, RootPanel.get().add(label)  Button: Um novo Button (Botão) GWT é criado, exibindo o texto “Click me!” com um listener do botão, implementado por ClickListener. O listener do botão especifica que quando o botão é clicado, o label fica oculto
  • 15. Começando uma Aplicação MainEntryPoint.java O botão é adicionado ao RootPanel por meio da penúltima linha de código.
  • 16. Começando uma Aplicação  welcomeGWT.html: A página HTML do host gerada, que é o arquivo de boas-vindas designado para a aplicação. O arquivo web.xml usa o elemento welcome-file para especificar que a página do host será a página inicial exibida no browser quando a aplicação for implantada. A página do host referencia o caminho para o código-fonte JavaScript e pode referenciar a folha de estilo da aplicação
  • 18. Começando uma Aplicação welcomeGWT.html  meta: Aponta para o diretório de projeto da aplicação. Essa tag fornece um link entre a página HTML e a aplicação  script: Importa códigos do arquivo JavaScript do framework GWT. Esse arquivo contém o código necessário para o bootstrap do framework GWT. Ele usa a configuração no módulo do projeto e carrega dinamicamente o JavaScript criado ao compilar o ponto de entrada para entregar à aplicação. O arquivo JavaScript é gerado pelo framework GWT ao executar a aplicação no modo hospedado ou ao compilar a aplicação
  • 19. Google APIs  Google+ API  Google Books API  Google Calendar API  Google APIs Discovery Service  Google Latitude API  Google Tasks API  Google URL Shortener (goo.gl)
  • 20. API Google Maps  A API do Google Maps fornece uma API JavaScript que permite que você adicione a funcionalidade de mapeamento para a sua aplicação  A biblioteca do Google Maps para o GWT permite que você acesse este API JavaScript a partir do código Java compilado com o compilador GWT
  • 23. Desenvolvimento com GWT  Facilita o desenvolvimento de aplicações que façam uso de Ajax  Evita que o desenvolvedor perca tempo com detalhes técnicos durante a criação de aplicações web bastante dinâmicas  Evita incompatibilidades entre browsers e plataformas e permite maior modularização dos componentes AJAX e JavaScript
  • 24. Empresas que utilizam GWT  GFT Brasil Consultoria Informática Ltda.  O Grupo GFT é um dos principais fornecedores mundiais de serviços de TI para o setor financeiro. Presente no Brasil desde 2005, a empresa emprega cerca de 160 profissionais no país.  INCORP  Softwares estratégicos para administração de conselhos regionais de profissões regulamentadas, autoatendimento via web e gestão de processos eleitorais.  Certificada nível G do MPS.BR  Converge TI  Empresa especializada no desenvolvimento de soluções para empresas.
  • 25. Referências  Google Web Toolkit Overview - https://developers.google.com/web- toolkit/overview  Google Web Toolkit - http://en.wikipedia.org/wiki/Google_Web_Toolkit#History  Aplicação NetBeans - https://netbeans.org/kb/docs/web/quickstart-webapps- gwt_pt_BR.html  API do Google Maps - https://code.google.com/p/gwt-google- apis/wiki/MapsGettingStarted  Mail app - http://gwt.googleusercontent.com/samples/Mail/Mail.html  Empresas que utilizam GWT no Brasil - https://groups.google.com/forum/?fromgroups#!topic/gwt-brasil/K7NiaY1hkMw