google web toolkit (gwt) steve wargolet. introduction desktop client-server applications and their...

32
Google Web Toolkit (GWT) Steve Wargolet

Upload: haley-manter

Post on 31-Mar-2015

233 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

Google Web Toolkit (GWT)

Steve Wargolet

Page 2: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

Introduction

Desktop client-server applications and

their drawbacks.

Static-only Web pages

Introduction of Web applications

Page 3: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

What is GWT?

Powerful web application development

toolkit

Write -> Debug/Test -> Optimize -> Run

Primarily Java -> JavaScript, HTML, AJAX

Cross-Browser support.

Page 4: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

The ‘Right’ Design Pattern

What’s the right design pattern for a

GWT app?

MVC vs. MVP

Page 5: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

Client/Server Communication

Remote Procedure Calls (RPC)

Asynchronous

Different mindset

3 Components needed in GWT for RPC

Interface for the service (header)

Implementation of interface

Asynchronous interface for Client

Page 6: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

Serialization

Needed for RPC

Serialization is the process of packaging

the contents of an object so that it can

(be) moved from one application to

another application or stored for later

used.

Page 7: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

Serialization

Must satisfy at least one of the following

requirements. It is a primitive type (int, char, boolean, etc.) It is an array of serializable types A class is serializable if it meets these three

requirements: It implements either Java Serializable or GWT’s

‘IsSerializable’ interface, either directly, or because it derives from a superclass that does.

Its non-final, non-transient instance fields are themselves serializable, and

It has a default constructor

Page 8: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

The ‘Back’ Button Problem

GWT vs. the ‘Back’ button.

URL doesn’t change

Handling the problem

The History Class

Tokens

www.mywebapp.com/myapp

www.mywebapp.com/myapp#registration

Page 9: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

1

2

3

Page 10: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

Compilation

One of the most advanced features

Optimizations

Three output styles

Obfuscated

Pretty

Detailed

Page 11: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

Obfuscated

Page 12: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

Pretty

Page 13: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

Detailed

Page 14: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

Optimizations

Major selling point of GWT

Dead Code Elimination

Constant Folding

Window.alert(“Hello ” + “World”) -> $wnd.alert(“Hello World”)

Copy Propagation

String Interning

Code In-Lining

Page 15: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

Optimizations

Code splitting

Page 16: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

Permutations

24 Total Permutations

6 Browser types and 4 locales

Page 17: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

GWT Designer

Easily build the GUI

Very little CSS experience needed

Drag and Drop

Design Preview

Many included Widgets and Panels

Page 18: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

GWT Designer

Page 19: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

Panels

Panels contain widgets and other panels.

Define layout

>15 Panels available each with own pros

and cons.

Page 20: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

Basic Panels

Root Panel

Top-Most Panel

Automatically created

HTML <body> element

Page 21: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

Basic Panels

Absolute Panel

Page 22: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

Basic Panels

Vertical/Horizontal Panel – Uses HTML

table

Page 23: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

Basic Panels

Grid Flex Table

Page 24: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

Basic Panels

Flow Panel - Div

Page 25: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

Basic Panels

Dock (Layout) Panel –

North/South/East/West/Center

Page 26: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

Widgets

Many useful widgets

Button, textbox, ListBox, …

Easily create events

Page 27: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

Composite Class

Wrap a widget(s) in order to hide their

methods

Custom Widgets

Create your own methods

Make existing methods visible

Can’t modify composite outside of itself

Can be reused

Page 28: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

Examples

http://code.google.com/webtoolkit/exam

ples/

Page 29: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

DEMO

Page 30: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

Questions

Page 31: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

References

Remick, J. (2011, January 30). What is a web app? here’s our definition. Retrieved from http://web.appstorm.net/general/opinion/what-is-a-web-app-heres-our-definition/

Google. (2011). Google web toolkit . Retrieved from http://code.google.com/webtoolkit/

  Kereki, K. F. (2011). Essential gwt building for the web with google

web toolkit 2. Boston, MA: Pearson Education, Inc.

Gupta, I. (2009). Accelerated gwt, building enterprise google web toolkit applications. Berkeley, CA: Apress.

Chaganti, R. (2007). Google web toolkit: Gwt java ajax programming. Birmingham, UK: Packt Pub Ltd.

Page 32: Google Web Toolkit (GWT) Steve Wargolet. Introduction Desktop client-server applications and their drawbacks. Static-only Web pages Introduction of Web

Title

Body