Table of Contents

qooxdoo 1.6 (2011-12-07)

Summary

This is a regular release, which comes with many new features and improvements besides a large number of bugfixes.

Despite being a full release, only a limited number of manual migration steps may be necessary for upgrading from the previous 1.5.x releases. See the Migration section for more details and to determine if your apps are affected. As with most releases there might also be deprecation warnings in the development version, but those shouldn't negatively affect the production version of your app. It is nevertheless suggested to get rid of those warnings early. If you need a bugfix-only drop-in replacement, you might want to check-out qooxdoo 1.5.1, the corresponding patch release.

Highlights

Offline Feature

Offline usage is an increasingly important topic in modern apps, and is now supported by the framework. New technologies like local/session storage and offline events allow for such offline capabilities in all current browsers. To bring those features right into your apps, an offline event handler has been added and also a convenient offline data store to leverage qooxdoo's powerful data binding.

To see the offline store in action, open the enhanced feedreader demo app, load some feeds and then switch your browser to offline mode. The app continues to work even in offline mode, thus after a reload of the feeds it will be able to show the previous content.

Animations and Transforms

Animations and Transforms are great new features introduced by CSS3. While both features are covered by CSS3 specs, they are not easy to use for developers working on cross-browser applications. For instance, vendors often support such features only via vendor-specific prefixes, so it becomes tedious and error-prone without proper framework support.

So with qooxdoo's new wrappers for both feature sets, animations and transforms, amazing dynamic behavior can be brought to the elements of your website-oriented applications. For future releases it is planned to extend animation even to qooxdoo's high-level widget set for targeting rich internet applications (RIAs).

Check out the following three demos to see what the differences are between the available feature sets: Animations, Transforms, 3D Animation.

Please make sure you use a browser capable of those recent CSS features, for instance a Webkit-based browser like the latest Safari or Chrome. For more details about the new animation layer you might want to read the corresponding blog post.

Website-oriented Apps

Creating and maintaining website-oriented applications can significantly benefit from existing features of the qooxdoo app framework. For instance, data binding for a clean MVC design of your app, or the comprehensive toolchain. Many improvements have been made for low-level applications that want to build upon technologies like HTML, CSS, DOM rather than the traditional qooxdoo GUI toolkit.

One milestone along that way was to create a website-oriented view on top of the existing feedreader demo app. A handy feature for creating such HTML snippets is to allow for a smart templating engine, so the popular mustache.js solution was adopted. With data binding being a key ingredient for any decent app design, a new list controller for templates was added to perfectly match the low-level requirements. Working on a DOM-oriented level, the new animation layer could also be used right away for some nice effects.

An additional low-level app was created to particularly feature the new offline data store: The Todo app is a simple app to manage your tasks, leveraging offline storage and data binding. For more details about the Todo app, read the corresponding blog post.


REST Layer

A sophisticated REST layer complements the state-of-the-art transport layer that was introduced with the last release. Guided by REST principles we will see an increasing number of well-designed, service-oriented apps in the future. As a first practical building block towards that vision the new REST wrapper comes with support for URI Templates, better handling of concurrent requests, auto-serialization of the request body based on the indicated content type and more flexible ways to define required parameters. In order to showcase some of the features of the REST wrapper a new Github demo app was added that accesses the Github REST API.

Mobile Widgets

The mobile framework has been improved further. In particular, the mobile widgets come with a number of enhancements: widgets can now also be put into a disabled state, and frequently requested mobile widgets were added: Popup, Blocker, Loading Indicator, Dialog (along with a manager), Atom (a combination of label and image). The toolchain of the mobile SDK helps in developing and deploying apps, e.g. CSS files are now optimized automatically. Click the "Toolbar" buttons in the mobile showcase to see the new features in action (requires Webkit-based browser). The qooxdoo mobile framework is still labeled experimental to allow for ongoing testing and advancement, so any feedback of yours when creating mobile apps with it is appreciated.

Extended Playground

The interactive Playground is one of qooxdoo's most popular apps. Many features of the new framework release were employed to enhance it. For instance, the offline data store was used to replace the Gist feature in order to more reliably work with individual code samples. Custom samples can now be loaded and saved via local storage. The playground's layout was adjusted to host a corresponding toolbar (see bottom left). Another brand new feature to boost developer productivity is the ability to try out qooxdoo's mobile widget set interactively. Just use a Webkit-based desktop browser (Safari or Chrome) to check out the new mobile samples in the playground!



Bugfixes & Enhancements

See this detailed list of about 320 issues resolved for qooxdoo 1.6, which includes the fixes of the accompanying qooxdoo 1.5.1 patch release. Besides fixes for defects, many enhancements made it into qooxdoo 1.6. See here for a detailed list of issues that were resolved for 1.6 exclusively.

Framework

Browser Support

Core

Data Binding

Low-level

Transport

Low-level Transport

High-level Transport

REST

GUI Toolkit

Widgets

Virtual Widgets

Theming

Mobile

Applications

Showcase

Widgetbrowser

Github

Demobrowser

Playground

Feedreader

Todo

API Viewer

Test Runner

Feature Configuration Editor

Skeletons

Tooling

Generation

Configuration

Optimization

Internationalization

Code Validation

Documentation

Migration

API Changes

Manual Migration Steps