qooxdoo — JavaScript-Фреймворк с открытым исходным кодом для разработки пользовательских интерфейсов. Служит фреймворком для одностраничных приложений. Разработка веб-приложений возможна полностью на JavaScript без использования HTML и каскадных таблиц стилей (CSS). По своему стилю и философии похож на библиотеки виджетов Qt и SWT, о чем заявляли сами разработчики qooxdoo.
Компоненты Название Назначение qx.Desktop Создание веб-приложений в стиле настольных программ qx.Mobile Создание веб-приложений для мобильных устройств qx.Server Используется в средах без поддержки DOM, таких как Node.js и Rhino qx.Website Представляет собой библиотеку для добавления динамических возможностей сайту (аналог JQuery)
Особенности Ajax Кроссбраузерность Связывание данных, как одностороннее так и двух. Стилизация элементов графического интерфейса за счет графических тем ООП: включает свое специфичное определение классов, интерфейсов, смесей Встроенная подсистема модульных тестов Оконный интерфейс Расположение элементов интерфейса осуществляется через систему слоев (layouting)
Компилятор До версии 5.0 включительно использовался для создания конечного приложения, документации, запуска Unit-тестов набор скриптов написанных на языке python. В версии 6.0 был разработан специальный компилятор qx написанный на языке JavaScript. Компилятор распространяется в виде NPM пакета и включает следующие основные команды:
qx compile - сборка qooxdoo проекта qx test - сборка и запуск модульных тестов qx package - менеджер пакетов qooxdoo qx serve - запуск встроенного веб-сервера для работы веб-приложения qx clean - очистить результаты сборки
Компилятор собирает приложения, написанные на стандарте ES6, благодаря чему возможен их запуск в браузере.
Пример использования Ниже приведен пример использования qooxdoo.
qx.Class.define("custom.Application", { extend : qx.application.Standalone,
members :
main : function()
this.base(arguments);
// Создать кнопку var button1 = new qx.ui.form.Button("First Button", "icon/22/apps/internet-web-browser.png");
// документ является корнем приложения var doc = this.getRoot();
// Добавить кнопку к документу с заданными координатами doc.add(button1, {left: 100, top: 50});
// Добавить подсказку button1.setToolTip(new qx.ui.tooltip.ToolTip("A nice tooltip", "icon/32/status/dialog-information.png"));
// Добавить обработчик к кнопке button1.addListener("execute", function(e) { alert("Hello World!"); });
});
Система пакетов Фреймворк позволяет разделить исходный код приложения по модулям или библиотекам и описать зависимости между ними через конфигурационные файлы. Библиотеки можно преобразовать в пакеты (плагины) и опубликовать их в общедоступный qooxdoo репозиторий, который базируется на GitHub. Данная особенность позволяет создавать и совместно использовать эти пакеты.
Дополнительный инструментарий
Для удобства разработки фреймворк включает следующие инструменты:
Playground — среда для написания исходного кода qooxdoo и его запуска API Viewer — API справочник по классам, который может быть создан по Javadoc-подобным комментариям Package Browser — обозреватель репозитория qooxdoo пакетов Demo Browser — обозреватель коллекции демонстрационных примеров с приложенным JavaScript кодом
Данные инструменты являются базовыми и распространяются в виде пакетов.
Примечания
Литература
Ссылки
Страница проекта на Sourceforge Взгляд разработчика на JavaScript фреймворк qooxdoo 1.4 qooxdoo 6.0 представляет новый компилятор
Категория:Веб-фреймворки на JavaScript Категория:Фреймворки Категория:AJAX Категория:Программное обеспечение с лицензией MIT Категория:Свободное кроссплатформенное программное обеспечение