Начнем.
1. Скачаем Qooxdoo SDK. На момент написания этой статьи имеется версия Qooxdoo 0.8.2. Это стабильный релиз. Имеется также версия 0.7.4 гарантирующая стабильность и работоспособность во всех отношениях для всех броузеров вышедших не позже выхода самого релиза. Использовать рекомендую более новую версию, так как в любом случае в дальнейшем необходимо будет делать процедуру перехода (зачем нам это лишний раз), во-вторых вам самим захочется 0.8 не иначе. Если бы 0.7 обладала всем-всем-всем, то можно было бы отнестись к этому вопросу проще, но даже в 0.8 есть некоторые общепринятые (стандартные для привычного нам GUI) вещи, которые еще не реализованы.
Да что говорить. Берем 0.8 и все. Документация по 0.8 полноценна и исчерпывающая на все 100%, остальные вопросы отпадают или не ко мне =). Лол. Продолжим.
Качаем http://downloads.sourceforge.net/qooxdoo/qooxdoo-0.8.2-sdk.zip
Либо смотрим сами: http://qooxdoo.org/download и выбираем, можно и SVN-repository взять, кто хочет грызть гранит фреймворка по-полной =)
Скачали, распаковали.
Смотрим папку. Видим структуру:
application
component
framework
tool
index.html
license.txt
readme.txt
version.txt
Так...
2. Можно конечно все делать руками, но зачем? Точнее не так. Руками все делать нужно, но есть очень удобные инструменты, которые следует взять в руки. Написаны они все на Python.
Пользователям Linux волноваться не о чем. Все как обычно либо уже под рукой, либо стоит поставить пакеты Python. Нужна версия Python не ниже 2.4. (2.3 более не поддерживается).
Пользователям Windows следует поставить ActivePython.
Да-да, конечно, ленивым я дам ссылку: http://www.activestate.com/activepython/
Ну и далее...
Для людей, которые привычны к капанию в исходниках эту статью писать не стоит, для других - рекомендую прочитать readme.txt. Если не помогло, буду рассказывать содержимое readme.txt. Итак:
Как создать новое приложение?
- Переходим в ./tool/bin. Запускаем create-application.py. И что? Ничего пока. Расскажу о параметрах этого скрипта.
Общее:
create-application.py --name myapp
Параметы:
-n ИМЯПРИЛОЖЕНИЯ, или --name=ИМЯПРИЛОЖЕНИЯ
ИМЯПРИЛОЖЕНИЯ - название вашего приложения. Обязательное поле. Это имя создаваемого приложения. С таким же именем будет создана папка для приложения.
-o ПУТЬ_К_ПАПКЕ, --out=ПУТЬ_К_ПАПКЕ
Это путь к той папке, в которой будет создана папка приложения (см. выше).
-s ПРОСТРАНСТВОИМЕН, --namespace=ПРОСТРАСТВОИМЕН
Основное пространство имен для приложения. Объяснять что такое "пространство имен" не намерен. Если совсем новички - игнорируйте эту опцию и все. (По-умолчанию пространством имен будет являться ИМЯПРИЛОЖЕНИЯ (см. выше))
-t ТИП, --type=ТИП
Типом может быть inline, migration, bom, gui.
'gui' создаст стандартное qooxdoo GUI приложение,
'inline' создаст "inline", т. е. интегрируемое в страницу сайта qooxdoo GUI приложение, 'migration' используется для перехода с версии приложения qooxdoo 0.7 и 'bom' может быть использовано для создания low-level (низкоуровневого (для новичков - ничего общего с плохим, слабым, низким и другими словами) qooxdoo приложения. Если этот параметр не указывать, то по-умолчанию будет 'gui'.
-l LOGFILE, --logfile=LOGFILE
Тут LOGFILE - имя текстового файла, куда будет сохраняться вся информация по ходу работы скрипта.
-p PATH, --skeleton-path=PATH
Дополнительная опция. Здесь PATH - это имя к папке шаблонов, по которым может быть создано приложение. (По-умолчанию: ПУТЬ_К_QOOXDOO_SDK/component/skeleton)
Итак, запустим например такое:
./create-application.py -n myfirst -s mynamespace -t gui
- Теперь мы получили папку myfirst в той же папке, где и был запущен скрипт create-application.py. Структура папки такая:
source
config.json
generate.py
Manifest.json
readme.txt
3. В congif.json мы имеем конфигурацию нашего приложения, необходимые модули, переменные среды и т.д. Это нам понадобится для сборки завершенной версии приложения. Все данные хранятся в формате JSON.
В Manifest.json находится информация о приложении, название, версия, описание и наименование главного класса приложения для запуска.
Не правда ли напоминает Java 2 ME =) Похоже, но только в JSON формате.
- Ну наконец уже надоело. Запустим мы приложение или нет? Давайте запустим.
./generate.py source-all
Это выдаст:
=====================================================
INITIALIZING: MYFIRST
=====================================================
>>> Configuration: config.json
>>> Jobs: source-all
>>> Resolving config includes...
>>> Resolving jobs...
>>> Resolving macros...
>>> Resolving libs/manifests...
=====================================================
EXECUTING: SOURCE-ALL::SOURCE-ALL-SCRIPT
=====================================================
>>> Scanning libraries...
- Scanning /home/raven/Desktop/Qooxdoo/qooxdoo-0.8.2-sdk/framework...
- Scanning /home/raven/Desktop/Qooxdoo/qooxdoo-0.8.2-sdk/tool/bin/myfirst...
- Excludes may break code!
>>> Resolving dependencies...
- Sorting 513 classes...
>>> Resolving dependencies...
- Sorting 513 classes...
>>> Generate source version...
- Processing translation for 2 locales...
- Analysing assets...
- Compiling resource list...
- Generate translation code...
- Generating boot loader...
>>> Done
Теперь у нас создана debug-версия приложения. Что это значит?
Это значит то, что мы можем запустить наше приложение и посмотреть на его работу, но это не версия для издания, т.е. эта версия не предназначена для наших конечных пользователей, она имеет много "лишней" отладочной информации и связана с нашими локальными модулями. В своих последующих статьях я расскажу как создавать полноценные приложения и размещать их в сети интернет.
- Айе! Наконец запуск! Переходим в папку soure. Открываем в броузере файл index.html.
Вот такое у нас первое приложение.
В дальнейших моих планах есть описание создания нескольких более серьезных приложений, в том числе с использованием запросов к серверу, где на стороне сервера будет использоваться PHP и MySQL. К сожалению в мои планы не входит публиковать тут учебник по Qooxdoo или что-то подобное. Всего лишь основы.
Обсуждаем, смотрим, пользуемся, жалуемся и т.д..............