The week in qooxdoo (2015-01-16)

Welcome back to the first weekly status update in 2015. Hope you also had a great holiday season. And Happy New Year to all of you!

This week, all of the core team members are back in the office and back to work on the framework. Most of the tasks done since the release fixed some minor flaws which came up during the release process. Additionally we included some pull requests. Thanks to all contributors for their pull requests, we really appreciate it!

If you are interested in details, take a look at this Bugzilla query.

qooxdoo 4.1 released

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

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 bugfixes, suggestions and improvements.

qooxdoo

 

The qooxdoo 4.1 release comes with many substantial improvements as well as new features – across the entire framework. In fact more than 170 bugfixes and enhancements made it into the release. See the changelogs as an detailed overview in release notes. In the following we just pick some of the highlights in each of the different domains of the framework.

General improvements

As a state-of-the-art framework qooxdoo continues to embrace new browsers (and their additional features) while phasing out on the legacy browsers. For instance, the new release comes with improved support for IE11 as well as Firefox 31 and beyond. Likewise, Safari 8 and its mobile cousin on iOS 8 is taken care of. On the other hand notorious legacy browsers such as IE6 and IE7 are no longer supported in the qx.Website domain of qooxdoo.

With each regular framework release the previous deprecations, i.e. development run-time warnings, get removed along with their former APIs or feature code. This time it’s about the qooxdoo 4.0 deprecations, so adjust your code base accordingly prior to migration.

Besides many other maintenance tasks in the framework core, the resulting code size of the Environment classes, responsible for feature-detection within your apps, was significantly reduced. The comprehensive data-binding layer saw several further improvements. The event layer was further polished after the introduction of input-device independent pointer events with the last major release this summer.

Website

The family of website widgets, meant for easy use on dynamic web pages, were refined as well. Take as an example the Calendar, which adds range selection, or the Tabs, which became responsive.

To enhance the low-level layout capabilities we made the flexbox styles from qx.Mobile available in qx.Website, used them in
the Tabs widget and added a manual page explaining how to include them in custom website-oriented applications.

Several usability updates went into the website API viewer. Its interactive samples now leverage the more robust CodePen instead of jsFiddle. Overall, the API viewer comes with more samples, a better search and it starts up faster.

Mobile

As mentioned qx.Mobile is ready for iOS 8 and the new iPhone models. A key aspect of mobile apps are powerful scrolling capabilities. Introducing the waypoints feature, you can now react to and trigger actions on custom-defined scroll positions. This handy feature for instance lets the mobile List to realize a popular “pull-to-refresh”.

The mobile widgets are a mature set of UI elements for all device classes. In this release it further benefits from stability refinements, e.g. memory leak fixes. Refactorings within widgets could not only reduce redundancy, but also take advantage of enhancements in the mobile layer. As an example, the refactored picker now comes with the momentum scrolling known from regular scrolling in the mobile toolkit.

qx.Desktop

The GUI toolkit to create compelling Single-Page Applications was advanced as well in many areas. Improvements went into virtual widgets in general, and the Table widget in particular. All of those scale easily to handle large amounts of data.

Commands allow to globally define keyboard shortcuts and assign them to widgets. They can now be organized in command groups. Some other improvements to qx.Desktop include drag & drop, scrolling areas and theme switching.

Tooling

Continuing with advancing the JavaScript-powered toolchain, we started to supply key parts such as an underlying caching layer, as well as optimizations for private variables and for variants. An initial implementation of generating a self-contained “build” version also made good progress, so the Grunt tooling gets more complete continuously.

 

Check it out!

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

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! :)