qooxdoo 2.0 released

We are happy to announce a new major release of the framework, qooxdoo 2.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 2.0

Four Components

If you have followed the state and progress of qooxdoo over the last year or so, you have surely noticed its evolution into a universal JavaScript framework. To signal that achievement and to account for the new possibilities, we today deliver a major release, qooxdoo 2.0.

It is a solution for many kinds of application scenarios, also beyond desktop-style applications. In leveraging modern web technologies qooxdoo is now addressing four distinct application domains with the components qx.Website, qx.Mobile, qx.Desktop and qx.Server.

For more information about those changes see the recent blog post about qooxdoo, re-shaped. For a brief technical insight see the following high-level architectural overview.

Let’s look at some of the highlights introduced with the qooxdoo 2.0 release. They nicely illustrate our latest steps towards a universal JS framework.

qx.Website

The new qooxdoo Website component allows developers to enhance their websites with dynamic functionality such as animation, server communication and template-generated content. It is provided as a single-file, pre-built library (54kb when minified and gzipped) so it can be easily added to existing web pages.

qx.Website is designed around the concept of a concise API where each method is responsible for only one task. The qx.Website API Viewer provides a handy reference – and since it’s written using qx.Website itself, it works as a good demo of the library’s capabilities. The API viewer lists the documentation of all included modules with their methods, including some small examples.

qx.Website Api Viewer

Some of qx.Website’s central features are:

  • DOM handling, e.g. manipulation and traversing
  • IO for server communication
  • Templates based on mustache.js
  • CSS Animations with a transparent JavaScript-based fallback
  • Event layer for browser and custom events
  • Plugin API for custom extensions
  • Utilities for environment checks, Cookie handling and more

Want to get your hands dirty? The qx.Website Tutorial is a great place to start. If you do decide to give it a try, let us know what you think. We intend for qx.Website to become a common foundation for the qx.Mobile and qx.Desktop components in the near future, so any feedback is appreciated.

qx.Mobile

Tablet Support

qooxdoo Mobile now comes with tablet support out-of-the-box. Previously, the mobile part of qooxdoo already enabled developers to create smartphone apps. To take full advantage of the larger tablet screens, the new page manager optimizes the layouts either for tablets or the regular mobile devices.

The new page manager considers display/window orientation like portrait or landscape mode. The tablet layout updates automatically when you rotate the tablet device by 90 degrees. In portrait mode a popup holds the content that in landscape mode gets displayed on the left-hand side.

Visit the Mobile Showcase with a tablet (iPad, Android Tablet) or a desktop browser to see the tablet layout. Instead of rotating your tablet, on desktops you simply resize the browser window to toggle between portrait and landscape mode. On mobile devices (iPhone, Android smartphones) you will get the regular, compact mobile view.

Mobile Widgets

qx.Mobile Menu Widget

We have been optimizing the look & feel of qooxdoo Mobile widgets. Especially the iOS and Android themes got improved to be more like the native look of their platforms.

One of the new widgets is the mobile SelectBox. While the native select box does have its limitations, qooxdoo’s implementation provides a great user experience. There is an accompanying dialog widget.

BackButton, ToggleSwitchButton and TabView saw some serious improvements as well. Instead of using images they are now styled by CSS3 only.

  qx.Mobile ToggleButton Widget 

New Mobile Theme Indigo

To accompany the two existing themes that resemble iOS and Android a new mobile theme named Indigo is now available. It blends nicely with the new appearance of qooxdoo’s website and the desktop-style demos, and is a good starting point for customizing your qooxdoo Mobile apps.

Building upon LESS, a popular choice for dynamically extending CSS, the qooxdoo Mobile widgets run great on the typical mobile browsers, but also on desktop browsers like Safari and Chrome. This release adds support for Firefox on desktops,  and all modern browsers will be supported over time.

Mobile Theme Switcher

Now shipping three mobile themes, wouldn’t it be nice to switch between them in a live app?! Indeed, that is what the mobile showcase features. Not much to say, see it in action.

qx.Mobile ThemeSwitcher Mobile Showcase

qx.Desktop

New Desktop Theme Indigo

The Indigo theme now also ships for desktop-style applications. The new theme permeates through all the project’s endeavors, providing a consistent look: From the online presence (like bug tracker or manual), over mobile demo apps to desktop applications. But it is also part of the theme system of the framework, and everybody will have the chance to use it in their own apps.

qooxdoo widget browser

Theme Improvements

The new themes use gradients, but only modern browsers support them without the use of images. Since the previous release CSS gradients could already be used to create qooxdoo themes much more light-weight than before. The existing functionality has been extended to have a fallback for IE 9 and below. As an app developer or theme designer you won’t have to cope with browser differences, and themes look great even in those legacy browsers.

qx.Server


The server component provides a library with the essential OO features of qooxdoo’s class system (classes, interfaces, mixins, properties, custom events and data binding). It targets environments that don’t provide a DOM like node.js and Rhino, but also webworkers. The “server” skeleton replaces the earlier “basic” skeleton, and allows to create applications for the above environments, including established tools like an API viewer and the unit testing infrastructure.

Core

Toolchain Improvements

The Generator, the core of qooxdoo’s toolchain, has gotten a parser upgrade. The parser is the basis for many JavaScript-related actions like creating a running application, the dependency analysis, optimizations, and compression. The new parser is cleanly based on a parsing algorithm called top-down operator precedence. It constructs a slightly sanitized syntax tree with correct precedences, allowing for better optimization of the code. The new parser, implemented in Python as most parts of the toolchain, is already deployed for for dependency analysis, optimization, compression and api documentation. Pretty-printing and code validation will be switched over in a future release.

Further improvements of the toolchain include new options for optimizations, reduced cache disk space, and source code view links in the API viewer, so you can jump to the underlying code, e.g. on Github, right from the API documentation.

Home Page

For this major release, qooxdoo has gotten a new face. Not only does it come with the new Indigo theme, the project’s homepage itself has been carefully improved and fine-tuned to reflect the new components. This affects the blog, the manual, the demos and the issue tracker.

Check it out!

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

The qooxdoo 2.0 release comes with many substantial improvements and exciting new features. In fact more than 350 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! :-)


20 thoughts on “qooxdoo 2.0 released

  1. Hi,

    I am a former user of ExtJS, but in last times, I wasn’t glad with that. And now, I am using qooxdoo for my web-based ERP project.

    Thanks a lot. Keep going.

  2. Congratulations and thank you!
    This is by far the best JavaScript framework to write applications for the web.
    Keep up the good work.

  3. I just “migrated” two of our main applications. To be conservative at least once, I first generated the desktop applications to 1.6.1. Not surprising looking back at the Qooxdoo team’s track record on release management this worked without problems.

    Then I tried 2.0 and started to be “disappointed”. The automated migration job (generator.py migration) reported that there was nothing to be done. Well, I thought, perhaps generating the build version will fail, but let’s give it a try. The application was generated without errors or warnings and after deploying it to our test server it even ran without problems. Somehow this looked suspicious to me, especially as I didn’t see ANY difference to the 1.6 build.

    Just not being sure if I had made a mistake I decided to configure the application to use the Indigo theme which wasn’t available in 1.6. And surprise (not really), it came up on the test server in the new look.

    So, my “disappointment” was just due to the very anti-climatic migration, IT JUST WORKED (again!).

    So now it’s all up to myself no get some more excitement out of Qooxdoo 2.0 by using some of the new features (e.g. in the Mobile or Website area).

    I just checked in our developement setup. The first version of Qooxdoo we installed and used was 0.7 in March 2007. We followed every major and most minor releases and often actually used trunk (even for production applications, occasionally).

    Thanks to the Qooxdoo team and everybody involved. Looking forward to what will come in the future.

    Cheers,
    Fritz

  4. Pingback: qooxdoo 2.0 released « A Perfect Smile @ maylingisland

  5. thank you very much for the new release. I am especially looking forward to the new features of the qx.mobile part of the framework … I will be migrating the VeryVault mobile app I am currently developing shortly.

    thanks very much for making it such a joy to work with your tools.

    cheers
    tobi

  6. Pingback: qooxdoo 2.0: JavaScript-Bibliothek wird universell einsetzbar | virtualfiles.net

  7. Congratulations to one more major release!
    Not the hardest working team but definitively one of the most structured frameworks and evidence based. Migration of 4 million lines of code with only minor problems. T

  8. qooxdoo just keeps getting better! I’ve been using qooxdoo since (wow) version 0.1. Each release, over the past many years, has provided an improved, more intuitive, and/or more complete set of functionality. I’m now deep into development with the new Mobile components of qooxdoo, and working towards an integrated desktop/mobile model that seemlessly adjusts itself depending on screen or window size. qooxdoo’s new facilities will allow me to maintain only a single code base for all devices! qooxdoo is moving in exactly the right direction for my work.

    Thanks, qooxdoo team!

    Derrell

  9. Pingback: Релиз JavaScript-фреймворка qooxdoo 2.0 | AllUNIX.ru — Всероссийский портал о UNIX-системах

  10. Pingback: Ajaxアプリケーションフレームワーク「qooxdoo 2.0」公開 « TAKAPIKO

  11. Pingback: The week in qooxdoo (2012-06-29) | qooxdoo News

  12. Indeed. I’ve been using the REST component for a while now. It works well. I’ve not run into any issues yet.

  13. Pingback: 前端文摘:《JavaScript 每周导读》【第七期】 | 编程·早晨