Writing large desktop-like web applications is a challenge. Adapting such an application to different markets, languages or brands is even more of a challenge. This talk shows how the open source JavaScript framework qooxdoo can be leveraged to build such a rich internet application. As a real-life example the free web mail client gmx.com is used. This talk discusses the development model, customization and deployment of such an application.
Learn how JavaScript applications of this size and complexity are fundamentally different from classic web applications, and what issues come up when building fast, multi-language, multi-brand JavaScript applications.
16. JavaScript isn‘t made
for this
• No package mechanism
• By default everything is in the global
namespace
• Only basic building blocks for OOP
• Tooling still sucks
17. Everybody puts a layer
on top
• GWT covers JavaScript with Java
• Cappuchino uses Objective-J
• Adobe invented ActionScript
• Everyone else uses (different) meta object
systems written in JavaScript
20. Tooling
API Doc Unit Testing
Linker
Auto Completion Code Coverage
Lint
IDE Support
21. Tooling dilemma
• Different OOP syntax makes generic
tooling hard
• Tools often depend in certain Framework
features
• Don‘t just look at the widgets, look at the
development tools as well
25. Desktop Style
Development Model
// Create a button
var button = new qx.ui.form.Button("First Button", "demo/browser.png");
// Add button to container at fixed coordinates
container.add(button, {left: 100, top: 50});
// Add an event listener
button.addListener("execute", function(e) {
alert("Hello World!");
});
26. Leaky Abstractions
• Emulated behavior may be slower
• e.g. Canvas wrapper for IE
• For advanced tasks its essential to know
the lower layers
• CSS, HMTL, DOM knowledge is still
needed
34. i18n in qooxdoo
this button = var qx.ui.form.Button(this.tr("Hello World!"));
• Standards
• gettext
• CLDR
• good external tooling
• known by professional translators