qooxdoo 5.0 released

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

Many thanks to the entire community for making this happen: core developers, contributors and all users who brought in their bugfixes, suggestions and improvements.

qooxdoo

 

The qooxdoo 5.0 release comes with many improvements as well as new features – across the entire framework. In fact more than 140 bugfixes and enhancements made it into the release. See the changelogs as an detailed overview in release notes.

qooxdoo is an enterprise-proven open-source project, with a track record of 50+ stable releases. As such it ships (again) with many mature components to allow for a professional realization and maintenance of apps ready for production. In the following we pick some of the highlights in different domains of the framework:

Website

The qx.Website widgets are a set of lightweight components perfectly suited for a more DOM-oriented approach to web interfaces. They have seen some fundamental change with the current release, which reduces complexity and allows for new features: a website widget’s internal structure now always is exposed by a single DOM element. This is a breaking change over the previous qooxdoo 4.x, so if you create or maintain your own custom qx.Website widgets, please adjust your code accordingly.

A handy feature when working with a collection of website widgets was added: a generic wrapper instance forwards the API of the first object to all objects in the array. Manipulating several widgets at once has never been easier.

An often requested widget missing from qx.Website was a Carousel. Now it is included in a state-of-the-art implementation. To make it slide, for instance, try mouse swipe gestures. Many other website widgets ship with practical improvements, e.g. check them out in the website widget browser: Button, Calendar, DatePicker, Rating, Slider, Table, Tabs/Accordion.

Microsoft Edge

Microsoft Edge

Microsoft Edge, initially known under the name “Spartan”, is a web browser to replace Internet Explorer as the default browser on Windows 10 PCs, smartphones and tablets. It is designed as a modern web browser with a layout engine built around web standards. While currently available as a preview only, we wanted qooxdoo 5.0 to work reasonably well with it, ahead of the Edge’s final release.

Mobile

Quite a number of corrections and updates went into the fundamental event layer. Being a future-proof layer based on input-device independent pointer events, this is particularly important for mobile or hybrid apps. The release ships with improvements for events or gestures such as click, double-click, right-click, mouse buttons, tap, drag&drop, swipe.

Several widgets of qx.Mobile got better: for instance, Slider and NumberField now allow for decimal step sizes. Mobile checkboxes and radio buttons now retain their size and break to the next line when there isn’t enough horizontal space left.

Desktop

An important ingredient of compelling Single-Page Applications are virtual widgets, which can handle large amounts of data. Virtual lists now support custom group heights: in some usecases ordinary list items are relatively huge (i.e. when containing a specific icon, etc.) and the group header only consists of a headline that groups a couple of list items. An optional property adjusts the row config item sizes if it’s specified.

Several of the mature set of qx.Desktop widgets were made even more practical for production use, for instance Spinner, Table, Tooltip or form validation.

SVG; Fullscreen

It is increasingly nice, e.g for resolution-independent GUIs, to have support for loading SVG images directly. Previously you were required to set each width and height individually. Now SVGs can be part of qooxdoo’s managed resources, so the framework toolchain takes care of the proper size handling.

BTW, this is just one fine example of community members collaborating on an enhancement and providing a production-ready pull request, easily integrated into the framework. Another great contribution was provided for the Fullscreen API, adhering to the spec but conveniently abstracting away browser differences.

Transport Layer

qooxdoo leverages on the concept of service-oriented frontend architectures. Thus applications benefit from its powerful yet elegant transport layer. This layer has further been extended, e.g. it now allows ArrayBuffer, Blob and FormData objects as POST request data (Xhr). The REST layer is able to notify when a request is actually being sent. When mocking requests transparently, a proven best practice during app development, the integrated Fakeserver does no longer break when sending (multiple) fake requests.

WebDriver, Tooling

WebDriver

The former Simulator component, integrated with the framework and provided for qooxdoo applications, was based on Selenium RC. This technology has been superseded by Selenium WebDriver. We have been embracing WebDriver for a long time now and the accompanying qxwebdriver-java library has matured to a point where it allowed to migrate all relevant test cases to WebDriver.

Thus we deprecated the Simulator classes, removed the simulation jobs from the skeleton templates and demo apps, and added deprecation notices to the relevant manual pages.

Talking of deprecation and maintenance: we also decided to make the following two dev tools, that used to be baked into the framework, distinct contributions: FeatureConfigEditor (“FCE“) and Inspector. This helps the framework to be more concise.

 

Check it out!

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

Thanks

About 1/3 of issues were reported by you, the community, often including detailed descriptions, suggesting specific changes or even pointing to Github pull requests. Particularly providing pull requests is a great and effective way to get fixes and changes into the framework.

Many thanks to all project members for reporting issues and your help in improving the framework.

Enjoy! :)

qooxdoo 4.1.1 released

A new maintenance release of the framework is available.

qooxdoo 4.1.1 ships with more than 70 bugfixes over the previous qooxdoo 4.1 release.

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

Download qooxdoo 4.1.1. Check out the detailed release notes and the manual.

Almost 40% of issues were reported by you, the community, often including detailed descriptions, suggesting specific changes or even pointing to Github pull requests. Particularly providing pull requests is a great and effective way to get fixes and changes into the framework.

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

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

qooxdoo 4.0.2 released

A new maintenance release of the framework is available.

qooxdoo 4.0.2 ships with almost 80 bugfixes over the previous qooxdoo 4.0.1 release.

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

Download qooxdoo 4.0.2. Check out 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.