Book Image

qooxdoo Beginner's Guide

Book Image

qooxdoo Beginner's Guide

Overview of this book

Over the past few years, all the major internet or enterprise applications are developed or migrated to Rich Internet Application to support all the features that are provided in the desktop applications. This helps organizations keep the end users happy and also improves application deployment and maintenance. qooxdoo is a stable, open source RIA framework. If you are waiting and watching for the right time to migrate your application to qooxdoo, this is the right time!This book explains in detail about the rich user interface development in qooxdoo. It explains various concepts of qooxdoo framework in an easy to grasp and organized way, making it simple even for a novice in qooxdoo and also increases the competency level of the developer who is already working in qooxdoo.This book helps developers understand the qooxdoo framework, setup the environment, and start the development of RIA using qooxdoo. You will learn the core programming techniques in qooxdoo, user interface development in qooxdoo, testing & debugging qooxdoo applications, internationalization of qooxdoo applications to multiple languages, customizing the look and feel of qooxdoo applications using Themes, Performance management, etc.In the course of the book, we develop a complete application which will help the developer to understand the concepts better and to put things together to see the step-by-step progress to complete an application. By the end, this book will get the developer accustomed to the widgets and API available in the qooxdoo framework, and will enable him to design, develop, debug, and test the RIA in qooxdoo.
Table of Contents (19 chapters)
qooxdoo
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
References

qooxdoo framework features


qooxdoo is an entirely object-oriented framework based on JavaScript. This framework is properly organized on the basis of namespaces. It supports most of the modern browsers, provides utilities to generate documentation based on javadocs such as comments, and also supports themes and internationalization. In this section, you will learn about all these features.

Let's check all the features provided by the qooxdoo framework. This will improve your knowledge on qooxdoo and help you further understand the qooxdoo framework.

Language

  • The qooxdoo application runs in most of the modern web browsers, including:

    • Internet Explorer 6+

    • Firefox 2+

    • Opera 9+

    • Safari 3.0+

    • Chrome 2+

  • No plugins (ActiveX, Java, Flash, or Silverlight) are required. It is completely based on JavaScript.

  • Non-critical modifications of the native JavaScript objects to allow for easy integration with other libraries and custom code.

  • Cross-browser JavaScript 1.6 (string/array generics).

Object-orientation

  • Framework is fully class-based

  • Framework uses namespaces. It avoids the conflicts in global variables

  • Besides regular classes, it offers abstract, static, or singleton classes

  • Constructor and destructor support

  • Multiple access specifiers—public, protected, and private

  • Single inheritance and full polymorphism

  • Java-like interfaces

  • Ruby-like mixins

  • So-called dynamic properties, a very convenient and powerful way to have optimized setter and getter methods generated from simple configuration

Programming

  • Purely client-side JavaScript

  • No need to know HTML, DOM, or CSS

  • Complete support for event-based programming

  • Development of qooxdoo applications fully supported on all platforms; for example, Windows, Linux, all flavors of Unix, and Mac OS X

  • Quick start for easy evaluation of the framework without the need to install any software

  • Skeletons are pre-configured for full-featured custom applications

  • Many sample applications and examples

  • Designed for high performance

  • Framework has no issue of memory leak

  • Aids in developing memory-leak free user applications

  • Extensive logging capabilities (for example, different log appenders and Firebug support)

  • Straightforward debugging (for example, object introspection and benchmarking)

  • Browser history management, that is, browser back/forward button, bookmarks

  • Cookies

  • Generic JavaScript pretty printer/code formatter for unified code style

Internationalization

  • Built-in internationalization (i18n) and localization (l10n) support

  • Support for all languages and locales, at least on this planet

  • Based on the comprehensive Common Language Data Repository (CLDR)

  • Internally using the mature GNU gettext tools

  • Well-known translation file format (.po)

  • Support by professional, free translation tools (PO editors) on all platforms

API reference

  • Extended javadoc-like source code comments

  • Full API reference for both framework and custom applications

  • Online (http://api.qooxdoo.org/) and offline API viewer applications

Testing

  • Integrated unit testing framework (test runner)

  • Integrated functional testing framework (simulator)

Deployment

  • Generation of a self-contained and easily-deployable build version

  • Complexity of the build process hidden behind user-friendly commands

  • JavaScript compression (removal of whitespaces, and so on)

  • Automatic dependency resolution of JavaScript classes; no need for manual require() statements or tweaking a custom build

  • Automatic linking of JavaScript classes (JS linker)

  • Copying of required static resources like images or other external files into a self-contained build

  • String extraction (tremendous performance improvement for IE6)

  • Shortening and obfuscating local variables and/or private members

  • Optional browser-specific variant for each supported browser (For example, Firefox-only build)

  • Generation of build versions depending on user-defined variants, which allows for different products from the same code base

  • Removal of debug statements within the application code before deployment

Migration

  • Support for easy migration of custom applications from one framework release to another

  • Migration in the qooxdoo framework is painless as it is technically easy to carry out

  • Fully integrated into the regular build system

  • All non-ambiguous changes are done automatically for maximum convenience and to avoid manual find/replace errors

  • All ambiguous or semantic changes that require some developer decision are put into a comprehensive checklist

Alternative programming models

In addition to the JavaScript programming model, you can also develop qooxdoo applications using one of the following alternative programming models or development platforms. Some are not quite stable, some are not active, and some are pretty new. This book focuses only on the JavaScript programming model, which is the built-in development model of the qooxdoo framework.

The list of alternative programming models is growing. You can check the updated list at http://qooxdoo.org/documentation/general/development_platforms