Начнем.
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 или что-то подобное. Всего лишь основы.
Обсуждаем, смотрим, пользуемся, жалуемся и т.д..............
хочется продолжения ))
ОтветитьУдалитьда и вообще уже версия стабильная появилась...
Да =) Давно уже есть новая версия. Учту пожелания, последнее время правда заинтересовался jQuery UI и Tibco General Interface. По Qooxdoo конечно еще будет продолжение.
ОтветитьУдалитьКак интересно... Ввел в гугл qooxdoo документация и на первом линке твой блог. Приятная неожиданность!
ОтветитьУдалитьTrawl
Хех =)
ОтветитьУдалитьПривет,
ОтветитьУдалитьне в курсе нескольких вопросов по интеграции qooxdoo в проект?
1. Есть ли конструктор для составления UI из виджетов или только добавлением кода в Application.js ?
2. Как изменить имена html файлов в созданных applications?
3. Как доступиться к application в рабочем проекте?
1. Ответ тут http://qooxdoo.org/project/faq#are_visual_gui_builders_available
ОтветитьУдалитьНо зачем пихать все в application.js? Большое приложение будет жить в одном гигантском файле? Надо раскидывать логику, классы создавать. Есть еще возможность описывать GUI в XML.
2. Эммм? Каких HTML файлов?
3. Что такое рабочий проект? И какой тип проекта вы делаете? Website, RIA/Desktop, Mobile?
One user reportedly says that this cover might have got smashed when the phone was ran
ОтветитьУдалитьover by a car, but it did its job in protecting the phone.
These are community cards and they are dealt to the
center of the table. Online retailers like Expansys, Clove and Mobile - Fun have indicated that the white version of Samsung Galaxy
Nexus will be available within February next.
My weblog: samsung galaxy s3
But, with the most recent turn of events, the i - Phone 5 has made a landmark in the
ОтветитьУдалитьsmartphone industry. Both support tethering and have a GPS transceiver
with A-GPS. It will show you a list of Active Applications and you can press End to shut them down
individually or press End All to close everything.
My website: samsung s4