State of the Community
•
700+ attending GWT.create
•
3x increase in external contributions (patches)
•
Thousands of Googlers using it
•
~100k users of SDK
Google Sheets
•
First in a new generation of hybrid apps
•
Shares logic between Server, Android, Web, and iOS
via Java code.
•
Cross compiled with GWT and j2objc
•
Web UI marries Closure Compiler JS and shared Java
via GWT code.
•
Android and iOS UIs marry Java and Obj-C UI with
shared Java.
Google Sheets
•
Much faster than predecessor
•
Larger Sheets
•
Local client formula evaluation
•
Offline
•
Faster, smoother, scrolling
•
Supported on all 3 platforms at once.
State of GWT
•
GWT 2.6
•
•
Reduced Code Size
•
•
Java 7
Better CodeSplitter
Ambitious plan for upcoming improvements
Zero Work Interop
•
Closure Compiler annotated Javascript
•
Typescript annotated JavaScript
•
Drop in and go
•
Automatically generate JsInterface
declarations from typed JS
Using External JS Libraries
•
Must be un-minified to have predictable symbols
•
Live in separate JS execution context
•
Dead or Unused library code not removable
The World Today
Host Html Page
GWT Module IFrame
<script src=“angular.js”>
GWT Source
GWT
Compiler
Compiled JS
The World Tomorrow
Host Html Page
GWT Module IFrame
<script src=“angular.js”>
GWT Source
GWT
Compiler
Compiled JS
The World Tomorrow
GWT Module IFrame
<script src=“angular.js”>
GWT Source
GWT
Compiler
Closure
Compiler
Compiled JS
Radically Better Interop
•
Javascript library subject to optimizations
together with Java code
•
Smallest code size possible
•
Type-checking between JS and Java
Web Components
•
Web Native Templates
•
Custom HTML Elements
•
Encapsulated DOM and CSS
•
•
(Shadow DOM and Scoped CSS)
Kind of like runtime native version of UiBinder
Web Components
•
Ecosystem of reusable widgets/components
•
New Interop will make them easy to consume
•
Future of where Web authoring is headed
•
We want to be ready for it
Fire and Forget CodeSpliting
•
CodeSplitter allows code to be not be loaded
until needed
•
Reduces initial download size
•
Shared code “leftovers fragment” inhibits
benefits