Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Bb gwt

956 views

Published on

GWT

Published in: Technology, News & Politics
  • Be the first to comment

Bb gwt

  1. 1. Lúcio Camilo e Fulvio Longhi <br />Google Web ToolkitUtilizando o GWT para Desenvolvimento WEB<br />Maio/2011<br />
  2. 2. Informações<br />HTML e Javascript<br />GWT<br />Como Funciona?<br />Quem está Usando?<br />Ferramentas<br />Componentes<br />Plataforma<br />Miscelânea<br />Pontos Fracos<br />Referências<br />Perguntas<br />Agenda<br />
  3. 3.
  4. 4. Isto é Quake 2 portado para o GWT, usando somente HTML5 e CSS3. <br />Sem Flash, sem instalação. Apenas uma app Web de nova geração.<br />
  5. 5. Portado pelos googlers<br />GWT compilado para HTML5<br />Sem Flash / Plugin<br />Carregamento Dinâmico<br />Multiplayer<br />Audio<br />Tempo Real<br />Quer jogar? <br />http://tatari.se:8080/GwtQuake.html<br />
  6. 6. http://gwt-phoenix.appspot.com/<br />
  7. 7. HTML é Programação?<br />
  8. 8. HTML é Programação?<br />NÃO<br />
  9. 9. não programático (feito para desenvolver páginas)<br />bom suporte ao mostrar páginas com auxílio do CSS<br />nenhum suporte a componentes dinâmicos <br />formulário pobre (somente texto)<br />focado em texto e hyperlinks<br />HTML é Programação?<br />
  10. 10. Quer dinamismo, use Javascript...<br />
  11. 11. ... mas lide com:<br />Problemas de compatibilidade entre Browsers<br />Tipagem Fraca (Prototype)<br />Estruturação da linguagem não evoluiu <br />function == panacéia<br />Pode-se remediar com JQuery, etc.<br />Performance<br />cada browser um truque<br />Quer dinamismo, use Javascript...<br />
  12. 12. Javascript não pode competir com linguagens mais maduras... por mais que se esforce.<br />
  13. 13. JSP, Struts, Taglibs e outras tecnologias não dão o dinamismo que uma aplicação web precisa, sem o programador sujar as mãos com Javascript. <br />Duvida?<br />Outras soluções?<br />
  14. 14. Tente construir um homebroker, ou cliente de email, ou uma aplicação com Drag’n Drop somente com aquelas tecnologias. (Sem codificar Javascript!)<br />Outras soluções?<br />
  15. 15. Como solucionar esse dilema?<br />X<br />
  16. 16. Como solucionar esse dilema?<br />
  17. 17. Delphi/Swing para web<br />O que é GWT?<br />+<br />
  18. 18. Delphi/Swing para web<br />A missão do GWT é melhorar radicalmente a experiência para os usuários de sistemas, possibilitando os desenvolvedores usarem ferramentas java existentes para construir aplicações com ajax facilmente para qualquer browser moderno<br />fevereiro de 2006 - GWT Team<br />O que é GWT?<br />
  19. 19. Imagine: <br />tratar o cliente (browser) como um desktop<br />usar os mesmos beans do servidor no cliente<br />adicionar listeners aos componentes<br />tratar toda a validação no cliente<br />Máscara, Regex, Format... tudo sem consultar o server<br />invocar o servidor arbitrariamente<br />sem plugin no browser ou coisa parecida<br />100% opensource (Apache 2.0)<br />O que é GWT?<br />
  20. 20. Imagine: <br />tratar o cliente (browser) como um desktop<br />usar os mesmos beans do servidor no cliente<br />adicionar listeners aos componentes<br />tratar toda a validação no cliente <br />Máscara, Regex, Format... tudo sem consultar o server<br />invocar o servidor arbitrariamente<br />sem plugin no browser ou coisa parecida<br />100% opensource (Apache 2.0)<br />E TUDO ISSO PROGRAMANDO EM JAVA!<br />O que é GWT?<br />Isso é GWT!<br />
  21. 21. Como funciona?<br />
  22. 22. Como funciona?<br />
  23. 23. Como funciona?<br />
  24. 24. Múltipla Compilação Simultânea<br />
  25. 25. “We definitely do not view development in <br />GWT as a form of compromise. We firmly <br />believe that GWT should generate better <br />JavaScript code than you would write by <br />hand, and will generally choose to avoid <br />making concessions to convenience if they <br />hurt the performance of the resulting AJAX <br />code. ”<br />GWT Team<br />Javascript compilado?<br />
  26. 26. Quem está usando?<br />
  27. 27. Quem está usando?<br />
  28. 28. Quem está usando?<br />
  29. 29. Java5 apenas, nada mais!<br />Suporte a maior parte de toda a biblioteca básica (java.lang.*, java.utils.*, System, etc.)<br />Libs do gwt para manipular os elementos visuais <br />DOM, widgets, layouts, panel, button<br />Criação fácil de componentes personalizados através de java extends<br />Todos os listeners possíveis no browser mapeados <br />OnWindowResize, OnMouseOver, OnClose, OnClick, OnDoubleClick, OnScroll, OnFocus<br />Codificação<br />
  30. 30. Plugin oficial do Google para Eclipse<br />Criar, rodar, compilar<br />Integrado com a nuvem do google<br />Plugin para NetBeans<br />GWT Designer do Google para Eclipse<br />Conjunto de ferramentas para teste, debug e métricas<br />Ferramentas<br />
  31. 31. Ferramentas<br />
  32. 32. Ferramentas<br />
  33. 33.
  34. 34. Isso mesmo! Debug direto no Java!<br />
  35. 35.
  36. 36. Todos os serviços (apis) do Google possuem bibliotecas prontas para ser usados com GWT<br />Serviços Encapsulados<br />
  37. 37.
  38. 38. Gwt também é uma plataforma para desenvolvimento de componentes (semelhante ao JSF). Apesar disso possui uma quantidade considerável de componentes.<br />Componentes<br />
  39. 39. Componentes<br />
  40. 40. Ainda possui uma grande quantidade de empresas que disponibilizam componentes opensource, dentre elas, as mais importantes:<br />Vaadin<br />SmartGWT<br />GXT (Sencha)<br />Fora isso, ainda possui quase 10k bibliotecas opensource disponíveis - Google Code e SourceForge<br />Componentes<br />
  41. 41.
  42. 42.
  43. 43.
  44. 44. Plataforma<br />
  45. 45. Parser de xml e json nativo<br />Logging<br />Drag’n Drop<br />Ajax e Comet <br />Invocação de Métodos no Servidor (RPC)<br />Como retorno, posso esperar um objeto rico (ex.: Bean, EJB3, etc.) e usá-lo na interface. <br />Plataforma<br />
  46. 46. RPC<br />ContaBO<br />.listaContasPorPrefixo(int prefixo)<br />return ArraList<ContaBean><br />
  47. 47. i18n<br />Compartilhamento de beans <br />Convivência de família de componentes <br />Isso porque todos foram construídos extendendo a mesma classe visual Widget.<br />Sprites Image CSS e Inline Image (data://)    <br />Plataforma<br />
  48. 48. Sprites Image CSS e Inline Image<br />
  49. 49. Suporte a compilação para HTML5<br />Reutilização de ferramentas para testes de Java (Junit, PMD, Findbugs)<br />Injeção de Dependência<br />Suporte a Android e iOS<br />Maven<br />Libs de componentes são simples jars<br />EventoscomplexoscomoMouseRightClick, DoubleClick, etc.<br />Miscelânea <br />
  50. 50. Herança, Polimorfismo, Sobrecarga, e todas as caracteristicas das libs básicas do java<br />Suporte ao "botão voltar" no Browser e refresh<br />Threads!<br />Suporte desde o IE6 <br />Integra com o Seam<br />Não depende de appServer Java<br />Miscelânea <br />
  51. 51. Aprender a realmente programar UI<br />Listeners, Eventos, Componentes, Layout<br />Não é uma spec<br />Obs.: as bibliotecas de componentes JSF também não são<br />O google pode desistir do projeto algum dia?<br />Pode, mas a tecnologia já tomou vulto suficiente para andar por si só (ainda mais sendo totalmente opensource)<br />Pontos Fracos<br />
  52. 52. Todas as bibliotecas e tecnologias listadas nessa apresentação são opensource (exceto Delphi  )<br />Observação<br />
  53. 53. GWT é um marco no desenvolvimento web<br />Não faça mais páginas, faça aplicações<br />Não serve para todos os problemas!<br />Em sistemas com interfaces simples (uma página simples, ñ uma app) não convém usar GWT<br />Opinião<br />
  54. 54. http://demo.vaadin.com/ReindeerTheme/<br />http://demo.vaadin.com/VaadinTunesLayout/<br />http://www.sencha.com/examples/explorer.html<br />http://gwt.google.com/samples/Showcase/Showcase.html<br />http://www.liveleader.com/a/livedemo/?l=en<br />http://www.gminet.com.br/wfinancas/financeiro.do<br />http://4.latest.testchannelll.appspot.com/ <teste, teste><br />Demos<br />
  55. 55. www.jornaljava.com<br />www.portalgwt.com<br />http://www.google.com/events/io/2010/sessions.html<br />http://www.google.com/events/io/2009/sessions.html<br />http://gaejexperiments.wordpress.com/<br />http://code.google.com/webtoolkit/<br />http://googlewebtoolkit.blogspot.com/<br />http://www.ongwt.com/<br />http://turbomanage.wordpress.com/<br />Referências<br />
  56. 56. Livros<br />
  57. 57. Livros<br />
  58. 58. Obrigado<br />Perguntas?<br />

×