qooxdoo 3.5 released

 

We are happy to announce a new release of the framework, qooxdoo 3.5.

Many thanks go to the entire community for making this happen: the team of core developers, 1&1 as the supporting company, all contributors and users who brought in their suggestions and improvements.

qooxdoo 3.5

qooxdoo 3.5 is another landmark in the framework’s ongoing evolution of being a universal JavaScript framework. The current release introduces such highlights as a lightweight widget set for websites and it embraces an ever-growing ecosystem for JavaScript tooling.

 

qx.Website

The website-oriented part of qooxdoo had already become an enterprise-grade solution for developers to enhance their websites with dynamic functionality. One frequent request was the need for “low-level widgets”.

So we added a qx.Website Widgets library that provides a set of lightweight UI components ready to be integrated into any web project. These widgets use the same collection API paradigm as qx.Website itself, so they can be be initialized and customized in just a few lines of code. Each widget can also be configured using HTML data attributes so that a website’s UI can be defined entirely in (server-generated) HTML and initialized with only a single line of JavaScript.

For the initial release, the library contains the following components: Button, Calendar, Rating, Slider, Tabs, Accordion. More will be added in the coming months – let us know which UI components you would find useful.

Please note that the Widgets module is considered experimental, i.e. the API can still change. We expect it to be finalized for the next major release, your input is appreciated.

The addition of new qx.Website modules necessitated a redesign of the qx.Website API Viewer‘s navigation.

Modules are arranged in groups and a filter box can be used to narrow down the list of methods. Thanks to the responsive UI, the API Viewer works well on phones and tablets, too.

 

qx.Mobile

When specifically targeting smartphones or tablets, qooxdoo’s mobile GUI toolkit continues to be the perfect choice. Many improvements went into the qooxdoo 3.5 release that emphasize its capabilities to let you create elaborate mobile apps.

One of the most challenging features in a multi-device world is proper application scaling. qx.Mobile now enables you to easily adjust the scale of your qx.Mobile app (or even let your users do so), simply by changing the root font size.

This is made possible by the built-in themes that are now fully resolution-independent. In technical terms this means that relative units are being used throughout the themes instead of absolute pixel units. No matter how small or large your font settings are, the mobile widgets will scale accordingly.

qx.Mobile is built upon CSS-based themes, backed by the popular SCSS precompiling technology. We took the chance to consolidate and improve the themes provided by the framework. For instance, we expose many widget style variables to the main SCSS file of a theme. Modifying colors or using linear gradients becomes trivial. It is now even easier to create your very own custom theme.

So-called “flat” designs became popular on mobile operating systems recently. In leveraging the new capabilities for custom themes, we created and shipped a new “Flat” theme.

Support for Windows Phone 8 and Internet Explorer 11 has been enhanced. The modern IEs 10 and 11 now take advantage of native scrolling, providing a much smoother user experience. Multi-touch handling was also added for those browsers, based on pointer events. Target those emerging device classes (hybrid devices, convertibles, etc.) with your qx.Mobile app.

Besides fixes and improvements throughout qx.Mobile many existing widgets were enhanced. To pick just one example, the mobile Carousel can now host a large number of pages due to its pagination overflow handling.

 

Tooling

We introduced experimental Grunt support. Grunt.js is a popular task runner based on Node.js. The features of the qooxdoo toolchain nicely blend with Grunt. We’ve begun to leverage Grunt’s ecosystem of plugins and combine the best of Grunt with the best of the qooxdoo Generator.

For newly created qooxdoo apps all Generator jobs are now also available through a Grunt frontend. For instance, instead of writing generate.py source you can now use grunt source, too.

In order to use it in your existing app take a look at the Gruntify existing apps section in the manual. Grunt offers a huge number of Grunt Plugins waiting to be utilized. Go ahead and read our Grunt manual page to find out about the possibilities and what we are aiming for.

 

Check it out!

qooxdoo 3.5 is available for download. Check out the detailed release notes and the manual. Watch the code repository on GitHub.

The qooxdoo 3.5 release comes with many substantial improvements and exciting new features. In fact about 190 bugfixes and enhancements made it into the release.

Thanks

Many thanks from the core developers to the community of contributors and users. Please help to spread the news, get people excited about the latest releases, and show them how to deploy qooxdoo as a truly universal JavaScript framework.

Enjoy! :-)

 

qooxdoo 3.0.2 released

A new maintenance release of the framework is available.

qooxdoo 3.0.2 includes about 60 bugfixes over the previous qooxdoo 3.0.1 release.

As a patch release qooxdoo 3.0.2 is fully backwards-compatible to the previous versions. Nothing needs to be changed in your existing apps if they are based on either qooxdoo 3.0 or 3.0.1. When upgrading from an older version you can migrate directly to 3.0.2.

Download qooxdoo 3.0.2, checkout the detailed release notes and the manual.

Many thanks from the core developers to the community, particularly for reporting issues and your help in improving the framework.


qooxdoo 3.0.1 released

A new patch release of the framework is available.

qooxdoo 3.0.1 includes more than 60 bugfixes over the previous qooxdoo 3.0 release.

As a patch release qooxdoo 3.0.1 is fully backwards-compatible to the previous version. Nothing needs to be changed in your existing apps if they are based on qooxdoo 3.0. When upgrading from an older version you can migrate directly to 3.0.1.

Download qooxdoo 3.0.1, checkout the detailed release notes and the manual.

Many thanks from the core developers to the community, particularly for reporting issues and your help in improving the framework.

qooxdoo 3.0 released

 

We are happy to announce a new major release of the framework, qooxdoo 3.0.

Many thanks go to the entire community for making this happen: the team of core developers, 1&1 as the supporting company, all contributors, and last but not least the users and enthusiasts who brought in questions, comments and suggestions.

qooxdoo 3.0

The release of qooxdoo 2.0 about a year ago was a landmark in the framework’s ongoing evolution to become a universal JavaScript framework. Now with the release of qooxdoo 3.0 each of the three major application domains, i.e. Desktop, Mobile and Website, ship with substantial if not radical improvements.

While the latter two, specifically addressed by qx.Mobile and qx.Website, further matured as enterprise-proven components, qx.Desktop probably saw the most rigorous changes under the hood.

qx.Desktop

To put a longer story short: qooxdoo’s GUI toolkit for feature-rich applications has become much more lightweight.

While keeping most of its sophisticated feature set, every desktop widget now consists of just one DOM element (from 2-5 before) and corresponding JavaScript object representation. So a typical desktop application now comes with less than 50% of elements, a fact that improved UI performance on all devices tested.

3D DOM View: reduced number of DOM elements

Illustrating the reduced DOM elements: previous qooxdoo (left) vs. qooxdoo 3.0 (right)

The optimizations were only possible by revisiting the browser support: We took further advantage of native features built into modern browsers. At the same time we implemented graceful degradation in older browsers (like IE8) and discontinued support for some legacy browsers (like IE6 and IE7). Moreover, this release already embraces future browsers (like IE11 Preview).

Chances are good you won’t have to change anything in your existing qx.Desktop application. See the documentation if your application needs some manual adjustment (e.g. if you created a custom theme).

We have been able to achieve a good user experience in running qx.Desktop apps on touch devices. For instance, on hybrid devices (like Windows 8 convertibles) or tablet devices like the iPad. To further support the latter scenario, we introduced a new setting for you to opt-in to mouse event emulation on touch devices. This further increases subjective performance when using your fingers to interact with desktop apps.


Go ahead and give the Widget Browser or Feedreader a try on the iPad.

qx.Mobile

When specifically targeting smartphones or tablets, qooxdoo’s mobile GUI toolkit continues to be the perfect choice. Many improvements went into the qooxdoo 3.0 release that emphasize its capabilities to let you create elaborate mobile apps.

To the set of supported platforms we added the new BlackBerry devices running the BlackBerry 10 OS. On iOS devices scrolling now benefits from native capabilities, without the dependency on iScroll.

The mobile framework demos consistently use the “Indigo” default theme, which has been reorganized and extended. This makes it even easier for you to create a custom theme of your liking, possibly matching your corporate design guidelines. Technically, you now use the excellent CSS-precompiling technology SCSS, which replaces the former solution based on LESS.

Many of the newer mobile devices ship with beautiful high-density displays (e.g. “Retina”). All those devices now take advantage of higher-resolution images you can optionally provide along the regular ones. This leads to nice, crisp images in your mobile app for displays of all kinds of pixel ratios such as 1.5x, 2x or 3x.

Besides many fixes and improvements throughout qx.Mobile many existing widgets were enhanced, like radio buttons and checkboxes, or a longtap event added. To further complete the comprehensive set of graphical elements new widgets were introduced, like the Drawer to slide in an additional pane from any of the four device edges.

 

qx.Website


The website-oriented part of qooxdoo was introduced with the last major release and has successfully evolved as an enterprise-grade solution. Its concise API allows developers to enhance their websites with dynamic functionality such as animation, server communication and template-generated content.

Many new practical samples, consisting of HTML and CSS as well as JS code, were added to the qx.Website API Viewer. Most of the samples can be executed and edited with just one click, thanks to jsFiddle integration.

Client-server communication via REST is now nicely integrated into the low-level library. In order to support testing as well as server-independent development a FakeServer was added to transparently mock HTTP requests.

In addition to providing qx.Website as a single all-in-one script file we also offer separate module builds. Those are freely combinable: You simply include the module files you need (like q-animation-3.0.min.js) after the fundamental core module (q-core-3.0.min.js).

It is important to note, that qx.Website continues to support all browsers as in previous releases (e.g. older browsers such as IE6, IE7, IE8). That’s unlike qx.Desktop, which reduced browser support to allow for an optimized GUI toolkit as explained above.

Tooling

As with any release qooxdoo’s integrated tool chain ships with many fixes and enhancements. Some of the highlights for an increased developer productivity include new jobs that you invoke from the command shell via generate.py:

  • watch (auto-building the application after file edits)
  • watch-scss (auto-building CSS files from SCSS, mobile apps)
  • source-server (local mini webserver for the source version of an app)
  • source-httpd-config (providing web server configuration for the source version)
  • source-server-reload (auto-reload application in the browser after file changes)
  • validate-config, validate-manifest (as the names imply, validate config.json or Manifest.json, respectively)

After downloading the SDK, creating a new application and running the tool chain jobs for the first time, build times used to be very long. That was because the tooling cache which significantly speeds up any following job was still empty and had to be filled. Now the SDK ships with pre-compiled information of the framework classes, thus the cold cache builds should be reasonably faster.

Community Support

The qooxdoo manual, a crucial source of information for any app developer, now includes a much more practical fulltext search. Possible search terms now also accept special characters (like `.`, `-`, `#`, `@`), and also upper-case words.

A new qooxdoo-contrib infrastructure has been rolled out. With the new release a Github-based catalog is used to find and download user contributions, all integrated into the tool chain. After this initial move to the new infrastructure, work is going to continue to implement further improvements, taking into account user input.

Check it out!

qooxdoo 3.0 is available for download. Check out the detailed release notes and the manual. Watch the code repository on GitHub.

The qooxdoo 3.0 release comes with many substantial improvements and exciting new features. In fact more than 330 bugfixes and enhancements made it into the release.

Thanks

Many thanks from the core developers to the community of contributors and users. Please help to spread the news, get people excited about the latest releases, and show them how to deploy qooxdoo as a truly universal JavaScript framework.

Enjoy! :-)