Qooxdoo

qooxdoo
Логотип программы qooxdoo
Скриншот программы qooxdoo
Браузер с запущенным qooxdoo приложением
Тип фреймворк,библиотека JavaScript
Разработчики 1 & 1[1],GMX
Написана на JavaScript[2]
Операционная система кроссплатформенность
Дата выпуска 17 декабря 2009
Последняя версия 7.6.1 (28 июля 2023; 2 года назад (2023-07-28)[3])
Репозиторий github.com/qooxdoo/qooxd…
Лицензия лицензия MIT
Сайт qooxdoo.org

qooxdooJavaScript-Фреймворк с открытым исходным кодом для разработки пользовательских интерфейсов. Служит фреймворком для одностраничных приложений. Разработка веб-приложений возможна полностью на JavaScript без использования HTML и каскадных таблиц стилей (CSS). По своему стилю и философии похож на библиотеки виджетов Qt и SWT, о чем заявляли сами разработчики qooxdoo.

Компоненты

Название Назначение
qx.Desktop Создание веб-приложений в стиле настольных программ
qx.Mobile Создание веб-приложений для мобильных устройств
qx.Server Используется в средах без поддержки DOM, таких как Node.js и Rhino
qx.Website Представляет собой библиотеку для добавления динамических возможностей сайту (аналог JQuery)

Особенности

Компилятор

До версии 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 кодом

Данные инструменты являются базовыми и распространяются в виде пакетов.

Примечания

  1. 1&1 Internet AG, Germany. Дата обращения: 17 мая 2022. Архивировано 14 мая 2022 года.
  2. The qooxdoo Open Source Project on Open Hub: Languages Page. Дата обращения: 13 апреля 2021. Архивировано 13 апреля 2021 года.
  3. v7.6.1. Дата обращения: 3 августа 2023. Архивировано 3 августа 2023 года.

Литература

  • Mohamed Raffi, Rajesh Kumar Bachu. qooxdoo пособие для начинающих = qooxdoo Beginner's Guide. — Packt Publishing, 2011. — 420 с. — ISBN 978-1849513708.

Ссылки

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.