Upload
danilo-reinert
View
104
Download
0
Embed Size (px)
DESCRIPTION
Breve introdução histórica e conceitual ao GWT com um exemplo prático de uma aplicação moderna.
Citation preview
GWT - de iniciante a especialista
Danilo ReinertArquiteto de Software
Apresentação
DescriçãoGWT (pronounced 'gwit') is a development toolkit for building
and optimizing complex browser-based applications.
LemaProductivity for developers, performance for users
2005 Google Maps
● GWT 1.0 (2006)● GWT 1.3 (2007) Primeiro Release Open-Source, suporte a OSX● GWT 1.5 (2008) Suporte ao Java 1.5, Overlay Types, DOM API, CSS Themes,
Linkers● GWT 2.0 (2009) DevMode, DraftCompile, UIBinder, LayoutPanel, CodeSplitter,
ClientBundle, CssResource● GWT 2.1 (2010) RequestFactory, Editor Framework, Validation, MVP, Cell Widgets● GWT 2.2 (2011) GWT Designer, HTML5 support● GWT 2.3 (2011) Melhorias na integração com AppEngine● GWT 2.4 (2011) Aprimoramentos no Maven e RequestFactory● GWT 2.5 (2012) Steering Committee, SuperDevMode, UiRenderer, otimizações no
Compilador● GWT 2.6 (2013) Suporte ao Java 1.7, melhorias no SuperDevMode
Linha do tempo
● 150.000 usuários diariamente ativos● Integração completa com Eclipse, IntelliJ, Spring STS/Roo● Usado por produtos da Google como AdWords, Flights, Wallet,
Groups● Mantido por um comitê internacional com a participação de
grandes players como RedHat, Vaadin, Sencha e JetBrains, além da Google
● 20% dos commits vem de contribuintes fora da Google● GWT tem hoje uma base de código de alta qualidade e
madura
Situação atual
Problema e Solução
Tradicional
Ajax WebApps
AJAX
Javascript
Browsers
Por Dentro...
Principais Ferramentas da Plataforma
● Java-to-JavaScript Compiler● JRE Emulation Library● SuperDevMode (IDE debudding)● Code Generation● Javascript Cross Compatibility (JSNI)● JUnit Testing● Popular Java Specs and Libraries Integration
Principais Recursos do Framework (1/2)
● Templating (UiBinder)● Routing (Places)● Managed Presentation (Activities)● History Manipulation● EventBus● Dependency Injection● Reflection (Deferred Binding)● AJAX Communication (RPC, RequestFactory)
Principais Recursos do Framework (2/2)
● Code Optimization (Powerful Compiler)● Client-Server Interaction Minimization (PerfectCache)● Resource Optimization (ClientBundle, ImageBundle,
CssResource)● Initial PageLoad Optimization (CodeSplitting)● Client-Side Logging● Internationalization● Formatting● Validation
Benefícios
● Projeto de Software organizado, manutenível e escalável● Reutilização do rico ecossistema de ferramentas do Java● Melhor desempenho possível sem muito desgaste● Velocidade de desenvolvimento● “Write once, run everywhere”● Aplicações de alto desempenho e escaláveis● Segurança de estar utilizando uma linguagem bem projetada
e conhecida● Confiança de estar utilizando uma das melhores tecnologias
para aplicações web
"Talk is cheap. Show me the code."
Agradecimentos
Obrigado!
Danilo Reinertplus.google.com/+DaniloReinerttwitter.com/daniloreinertgithub.com/reinert
Sample disponível em:https://github.com/reinert/devfest2014