3. GWT
Google committed to Open Source development
model
Steering Commit/Transparency
TimeBox releases (twice year)
Future focus
Mobile (reduced CPU utilization, more code splitting)
Easier “Hyrbid” apps
Smaller and faster executions
Saturday, 29 June 13
4. GWT
GWT used extensively at Google
Adwords (97% of google revenue)
Google Groups (rewrite just announced)
Major new consumer projects about to be announced
Big chunk of internal IT
100K+ monthly auto-update pings (Eclipse)
GWT considered mature
Not investing in marketing or evangalising
Saturday, 29 June 13
31. 6.x Requirements
Panels
Common Life cycles
Panel re-use in other frameworks
Eclipse, Portal etc
Security visibility
Hybrid GWT + JS support (Runtime Plugins)
Saturday, 29 June 13
33. 6.x Requirements
Menu’s, Toolbars
decoupled form components
contextual to perspective and focus panel
Security visibility
GIT Backend
High Availabilty
GIT cluster
Saturday, 29 June 13
34. 6.x Requirements
GIT Backend
VFS (nio2)
seamless API for client and Server
Security
MetaData
stored as .dot file in git for each “asset”
High Availability
GIT cluster
Saturday, 29 June 13
42. Workbench Screen
@WorkbenchScreen(identifier = "MyFirstPanel")
public class MyFirstPanel extends SimplePanel {
public MyFirstPanel() {
setWidget( new Label("Hello World 1") );
}
@WorkbenchPartTitle
public String myTitle() {
return "My First Panel!";
}
}
Saturday, 29 June 13
43. Workbench Screen$registerPlugin({
id: "my angular js",
type: "angularjs",
templateUrl: "angular.sample.html",
title: function () {
return "angular " + Math.floor(Math.random() * 10);
},
on_close: function () {
alert("this is a pure JS alert!");
}
});
<div ng-controller="TodoCtrl">
<span>{{remaining()}} of {{todos.length}} remaining</span>
[ <a href="" ng-click="archive()">archive</a> ]
<ul class="unstyled">
<li ng-repeat="todo in todos">
<input type="checkbox" ng-model="todo.done">
<span class="done-{{todo.done}}">{{todo.text}}</span>
</li>
</ul>
<form ng-submit="addTodo()">
<input type="text" ng-model="todoText" size="30" placeholder="add new todo here">
<input class="btn-primary" type="submit" value="add">
</form>
<form ng-submit="goto()">
<input type="text" ng-model="placeText" size="30" placeholder="place to go">
<input class="btn-primary" type="submit" value="goTo">
</form>
</div>
Saturday, 29 June 13
68. UI Rewrite started in November
Entire BRMS ported
New BPMS built, all integrated
Tasks, Calendars, BPM Designer
Only one person on core UI framework
All team memebers distributed
Despite aggressive schedule
Code remains modular
Easy to maintain and extend
Proof Is In The Pudding
Saturday, 29 June 13