qooxdoo 1.0 released

One of the most comprehensive JavaScript frameworks is finally available in version 1.0. qooxdoo is a mature and popular solution for creating desktop-style web applications. It has a successful track record after almost five years of development that includes a number of important milestone releases. Backed by 1&1, the world's largest web host, the professional development team and an active open source community established a framework that is feature-rich, well-tested and fast.

The brand new Showcase application provides a perfect introduction to qooxdoo 1.0 as it highlights many of its GUI features: advanced widgets like virtual tables or trees, an advanced data binding layer, full internationalization support, a brand new html editing component and custom theming:

qooxdoo Showcase

Developers can fully concentrate on creating their apps by leveraging object-oriented JavaScript in a very elegant, yet familiar way. No HTML, CSS or DOM knowledge is required. qooxdoo applications run in all major browsers (Internet Explorer, Firefox, Safari, Opera, Chrome) without any difficulty with cross-platform issues. To get an idea of what it's like to work with typical qooxdoo code, an interactive Playground lets you experiment with various live demos.

There is much more offered in qooxdoo, however, than just a large set of widgets, powerful layout managers and virtually unlimited theming capabilities. As a full-fledged application framework, it comes with an integrated, platform-independent tool chain that covers the entire range of app development and deployment - code validation, JS compiling and linking, compression and optimization, just to name a few. Other built-in tools allow for easy unit testing, automated GUI testing, searchable API reference, or cross-browser debugging a la Firebug. Mastering large-scale JavaScript applications is greatly facilitated by build process features such as automatically combined images ("sprites") or transparently breaking up an app into various parts that are loaded on-demand.

Feature set, design and quality of qooxdoo also make it a popular foundation for other frameworks. If you are interested in Java-based programming models that use qooxdoo internally, you may want to check out the Eclipse Rich Ajax Platform (RAP) or the new QxWT project, which integrates qooxdoo 1.0 with the Google Web Toolkit (GWT), and has been officially released today as well.

For more information about qooxdoo 1.0 please see the detailed release notes. See the online demos for qooxdoo in action. Download the qooxdoo SDK, get started and have fun creating desktop-style apps for all browsers and platforms.

Thanks to all the people involved, the core team, fellow committers and contributors, testers, users, partners and 1&1 for their fantastic job and great support!

The week in qooxdoo (2009-12-11)

Welcome back everyone to another weekly status report. The qooxdoo framework team is busy preparing for the qooxdoo 1.0 release which is due next week. Nevertheless, here are some topics that were addressed during the week:

Pointer Events

Safari 4, Chrome and Firefox 3.6 support the new pointer-events CSS property. This property can be used to make elements transparent to mouse clicks. We have some ideas how this can be used to improve the framework. At the moment we already set this property on decorator and shadow elements. Without this property clicks on a window shadow will be silently swallowed and not be passed to the widget below the shadow. We hope that more browsers will support something like this in the future.

Event Type Checks

Most qooxdoo users should be familiar with the way we define the type of events an object can fire. It is a map in the class definition which looks like this.

  events : {
    click : "qx.event.type.Mouse"
  }

In former qooxdoo versions the event type on the right hand side merely had documentary character. The value was never used by qooxdoo's event system. With the upcoming 1.0 release we use this information to validate the fired event object against the declared event type. If the validation fails an error message is logged. Since we don't want to break existing code we don't throw an exception. However we might consider to make these checks throw an exception in the future.

Resolving qx.io2 namespace

This week we have finished some planned improvements of the originally experimental qx.io2 namespace: All classes have been moved to the qx.io namespace and the previous classes were properly deprecated. To get more information about the effected classes and their new place, have a look at bug report #1163.

Generator

The main configuration keys for creating source and build versions of an application have been superseded. They used to be compile-source and compile-dist which are replaced by compile-options and compile. Now this is not exactly a one-to-one replacement, but rather a re-organisation. The compile-options key contains all configuration settings for a compile run, and is essentially a copy of the old compile-dist key. The settings of the old compile-source key were mapped/merged into that. But this key is now purely declarative and will not trigger any action. This is done by the rather small compile key which specifies the version to be built (source or build). This way, it becomes possible to pass compile options around and through jobs, re-using the information, without always triggering the corresponding compile action. And the settings for both versions can be maintained in a single configuration key.

The old keys still continue to work so there is no need to rush in order to change them. But you will get deprecation warnings during migration and build runs.

Simulator: Testing Inline applications

The qxh=... locator provided by the qooxdoo user extension for Selenium has been enhanced to support widgets attached to "qooxdoo islands" in Inline applications. See the Simulator contrib documentation for details.

Bugs

The BOM skeleton has a new default configuration now including qx.bom.Collection and qx.bom.Request, the latter one saw some fixes for timeout support. For a complete list of bugs fixed during the last working week, use this bugzilla query.

Your favorite language?

You certainly know that qooxdoo's built-in internationalization feature supports all possible languages and locales for your custom applications. qooxdoo itself (mainly the framework and the feedreader app) also contain some translatable content, currently for the languages de, en,es, fr, it, nl, sv. For instance you can switch languages in the feedreader app (see Preferences dialog).

To allow for collaboration and getting volunteers started more easily, this is to remind you of the Translation project in qooxdoo-contrib. There haven't been significant changes that would really require the existing translation files (".po" files) to be updated w.r.t. the latest 0.8.3 release. Nevertheless it would be great if the contributors and maintainers of the existing languages could have a look and prepare to eventually do final touches early next week.

Please send an email to translation AT qooxdoo DOT org to let us know if you continue to maintain or like to step-up and co-maintain existing translations. Wanna see some other language ship with qooxdoo/feedreader, then let us know as well. Could (albeit tight) make it into the 1.0 release, but may as well be considered to ship with any future release.

qooxdoo 1.0 ...

... is on the horizon. :-) It is planned to ship next week (targeting Wednesday), so it would be great you supported its final development phase: All built-in demo apps in one of the latest framework revisions have been put online today as every Friday, so take them for a test-drive. Check out the SVN trunk of the framework and try your apps with it. If you find any issues, please report them directly in bugzilla. You could also help with proof-reading the preliminary 1.0 manual, which will see some more polishing next week before the release. Thanks in advance for your support!

The week in qooxdoo (2009-12-04)

With the weekend ahead, here is another weekly update of all things qooxdoo.

Framework

Asserts

We recently worked a bit on the assertions we widely use in the framework and in unit tests. We improved the performance a few weeks ago and reduced the dependencies to other framework classes this week. This is especially helpful if you use qooxdoo on a minimal footprint.

Widgets

The SelectBox widget will now update the icon and label of the selected item correctly.

HtmlArea

This is interesting for all HtmlArea lovers: With the upcoming 1.0 release the HtmlArea contribution will become part of the framework. The open integration issues are tracked at Bug#3170. Feel free to add comments regarding the integration.

Bugs

  • Support for "getTextSelectionStart" and "getTextSelectionEnd" for TextField and TextArea widgets was added
  • Support for cross-browser modal native windows at the low-level layer was added

For a complete list of bugs fixed during the last working week, use this bugzilla query.

Applications

The API Viewer got polished this week. We took the time to fix two annoying bugs which both have to do with the scrolling: the API Viewer now scrolls the selected item into the viewport nicely. If a different class is selected the application will now scroll up to the top of the page. We also improved the user interface a bit: Instead of the toolbar menus the API Viewer now provides ToggleButtons to toggle the visibility property methods of public/private/inherited members.

API-Doc and Demos

As the 1.0 release is coming closer, we finally managed to be API-Doc complete, even for the experimental code. Additionally to a completing API documentation, we spend some time on improving the demo browser.

Generator

Automatic Cache Invalidation

For those of you working on trunk, this one is interesting. The generator will now automatically clear the compile cache if the tool chain signals an incompatible change. The corresponding flag is set by the tool chain developers, so no magic involved here. This will get you rid of misbehaviours that stem from changes in the tool chain that are incompatible with existing cache contents, and previously forced you to clean the cache manually. So with your first update of the qooxdoo trunk, and then once in a while, you will see a generator message saying "Cleaning compile cache, as tool chain is newer". People working with released versions will not observe any difference as their tool section remains stable.

The behaviour is controlled by a new config option, cache/invalidate-on-tool-change, that is set to true by default in base.json. If you are absolutely positive about controlling your own cache, you can set it to false in your local config.json. Just make sure the key is visible in the relevant jobs (part. source, build).

Python 2.4 Support Terminates

Python  2.4 support will be dropped with the 1.0 release. This doesn't mean the tool code base will change all of a sudden, we will just stop actively maintaining compatibility, maintaining a test platform, asf. Feedback from the community on this issue was all positive, and upgrades on all common OSs, if necessary, should be straight-forward.

Community

Christian Boulanger has showered us with new releases this week:

  • RpcConsole 0.1
    The interactive RPC client has an additional mockup mode that allows you to capture RPC requests and their responses, and later replay the data in an arbitrary application, allowing for off-line testing and developing.
  • RpcPhp 1.1.0
    The first release of the OO rewrite of the classical PHP server, which also works wit PHP 4.3.
  • RpcPython 0.1
    Christian re-vamped the original by Victor Ferenczi, to bring it in line with the other RPC servers.

Both server components added introspection capabilities.

Burak Arslan has released version 0.5.1 of the Soap client, adding a new asynchronous call interface called "easy" which eliminates the manipulation of parameters. Burak has further goals  for Soap, for example switching to events from callbacks, and encourages feedback on the coupling of events and requests.

That's it for this time - have a good time.

 

Control

 

Categories:

Archives:

 
SourceForge.net Logo

Bad Behavior has blocked 791 access attempts in the last 7 days.