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.
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.
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.
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.
Some of qx.Website’s central features are:
- DOM handling, e.g. manipulation and traversing
- IO for server communication
- Templates based on mustache.js
- 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.
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.
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.
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.
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.
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.
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.
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.
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!
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.