BlackBerry PlayBook становится всё более и более привлекательной платформой для Qt-разработчиков. Всё идёт к тому, что Qt будет включён в стандартный набор библиотек планшета. Благодаря чему платформа PlayBook (а вслед за ней и платформа BlackBerry 10) вызывает интерес у Qt-разработчиков. Так что в этой небольшой заметке я хотел бы рассказать, как прямо сейчас можно начать разрабатывать на Qt для BlackBerry PlayBook. Будет описан процесс настройки среды разработки с нуля до состояния, когда можно начинать писать приложения. На самом деле мне уже несколько раз задавали подобные вопросы, что и подвигло меня на написание этой публикации.
Для того, чтобы начать разрабатывать на Qt для PlayBook мы вместе выполним следующие шаги:
Поскольку я разрабатываю в среде Linux, то буду описывать всё применительно к ней. Но аналогичным или схожим образом можно вести разработку в Windows и Mac OS X. Для всех трёх систем доступны инструменты разработки Native SDK (NDK). Если возникнут сложности, то можно проконсультироваться на форуме разработчиков (англ. + рус.).
Перед тем как мы приступим непосредственно к установке NDK, стоит пояснить ситуацию с версиями PlayBook OS. На данный момент официально выпущена версия BlackBerry PlayBook OS 2.0, но средства разработки Native SDK 2.0 пока доступны в виде бета-версии. Но не стоит опасаться бета-версии, я думаю, что релиз появится в ближайшее время. Возможно, когда Вы будете это читать, NDK 2.0 уже выйдет.
Скачайте Native SDK 2.0 и симулятор для своей операционной системы, перейдя по ссылке. В установке NDK ничего сложного нет, потребуется только выбрать каталог, куда устанавливать. Native SDK представляет собой QNX Momentics (т.е. основан на Eclipse), дополненный инструментами BlackBerry. Симулятор это образ виртуальной машины для VMWare.
Сначала надо получить ключи. Для этого перейдите по ссылке и заполните форму. Убедитесь, что выбрали ключи для PlayBook'а в поле «Select a Key». Через какое-то время на указанный почтовый адрес Вы получите ключи. Сохраните их в каталоге ~/.rim (для Linux).
После того, как ключи будут получены необходимо их зарегистрировать. Выполните следующие команды:
Здесь <пароль> это пароль, который вы выбрали; а <PIN> это PIN планшета, который вы указали в форме запроса ключей.
Ещё можно сделать отладочный ключ (debug token) и установить его на PlayBook (для симулятора это не требуется). Однако, если мы собираемся работать в IDE, то среда разработки сама сообщит, что требуется ключ, поможет сгенеририровать и установить его на устройство. Если вам интересно, как это можно сделать при помощи утилит командной строки, то ознакомьтесь с руководством Getting Started with Qt on Blackberry.
Библиотеки Qt не входят в состав стандартного набора компонентов прошивки PlayBook, будем надеяться, что в скором времени это будет исправлено, т.к. ведутся работы по переносу Qt для PlayBook с GitHub в основной репозиторий Qt. А пока нам надо самостоятельно скачать исходный код Qt, собрать его для PlayBook и установить на инструментальной системе.
Скачайте архив qt-qnx-preview.tar.gz из GitHub, распакуйте и выполните следующие команды:
Не постесняйтесь заглянуть внутрь скрипта configure-qnx. Там можно добавить нужные вам опции сборки Qt. Лично я немного изменил скрипт, чтобы Qt устанавливался не в текущий каталог, а в каталог target в NDK:
Теперь уже можно с чистой совестью выполнить:
На этом всё. Пожалуй, больше на тему сборки Qt для PlayBook распространяться не буду. Для быстрого старта рассказанного будет достаточно.
Запустите NDK для BlackBerry и создайте проект «BlackBerry Tablet OS C/C++ Project».
Укажите пути к заголовочным файлам модулей, которые будут использоваться. Например, QtGui и QtDeclarative:
Выберите пункт QCC Linker -> Libraries, в список Library Paths добавьте путь к библиотекам Qt и сами библиотеки в список Libraries:
Откройте файл bar-descriptor.xml и в графе Assets добавьте ссылки на модули Qt, которые будет использовать приложение:
В принципе это всё. Теперь можно разрабатывать приложение на Qt или QML, проверять его работу в симуляторе или на PlayBook, создавать подписанные BAR-файлы и размещать их в App World. Пример приложения на QML собранного для PlayBook можно посмотреть тут.
Ещё одна особенность, которая может сберечь ваше время. Не забудьте вставить первой строчкой в функции main() вашей программы:
Так указывается путь по которому приложение будет искать библиотеки Qt.
Платформа PlayBook представляет большие возможности для разработчиков и, в конечном итоге, для пользователей. В основе платформы лежит ОСРВ QNX, который обеспечивает поддержку POSIX, и средства разработки Native SDK позволяют не только разработать практически что угодно, но и использовать ранее разработанные библиотеки или библиотеки с открытым исходным кодом. В качестве примера может послужить DjView — программа просмотра DjVu, собранная для PlayBook.
В заметке не рассказывалось о всех возможностях и особенностях разработки на Qt для PlayBook. Например, я не рассказал о плагине QNX для Qt Creator, который доступен на GitHub. Также рекомендую попробовать. Сообщают, что плагин будет включён в версию 2.5.
Если Вам интересны технологии QNX, в том числе и применение Qt на QNX и PlayBook, то не забудьте посетить XII международную конференцию «QNX-Россия 2012». Информация по конференции и материалы с предыдущих конференций доступны на сайте qnx-russia.ru. Получить информацию о докладах специалистов СВД Встраиваемые Системы и предложить темы для докладов и мастер-классов можно на форуме СВД ВС.
Для того, чтобы начать разрабатывать на Qt для PlayBook мы вместе выполним следующие шаги:
- Установим Native SDK
- Настроим систему для подписывания и установки приложений
- Соберём Qt
- Создадим и настроим проект Qt-приложения
Поскольку я разрабатываю в среде Linux, то буду описывать всё применительно к ней. Но аналогичным или схожим образом можно вести разработку в Windows и Mac OS X. Для всех трёх систем доступны инструменты разработки Native SDK (NDK). Если возникнут сложности, то можно проконсультироваться на форуме разработчиков (англ. + рус.).
Установка Native SDK
Перед тем как мы приступим непосредственно к установке NDK, стоит пояснить ситуацию с версиями PlayBook OS. На данный момент официально выпущена версия BlackBerry PlayBook OS 2.0, но средства разработки Native SDK 2.0 пока доступны в виде бета-версии. Но не стоит опасаться бета-версии, я думаю, что релиз появится в ближайшее время. Возможно, когда Вы будете это читать, NDK 2.0 уже выйдет.
Скачайте Native SDK 2.0 и симулятор для своей операционной системы, перейдя по ссылке. В установке NDK ничего сложного нет, потребуется только выбрать каталог, куда устанавливать. Native SDK представляет собой QNX Momentics (т.е. основан на Eclipse), дополненный инструментами BlackBerry. Симулятор это образ виртуальной машины для VMWare.
Получение ключей и всего необходимого для подписывания приложений
Сначала надо получить ключи. Для этого перейдите по ссылке и заполните форму. Убедитесь, что выбрали ключи для PlayBook'а в поле «Select a Key». Через какое-то время на указанный почтовый адрес Вы получите ключи. Сохраните их в каталоге ~/.rim (для Linux).
После того, как ключи будут получены необходимо их зарегистрировать. Выполните следующие команды:
$ /path/to/ndk/bbndk-env.sh
$ blackberry-signer -register -storepass <пароль> -csjpin <PIN> client-RDK-<XXXXX>.csj client-PBDT-<XXXX>.csj
Здесь <пароль> это пароль, который вы выбрали; а <PIN> это PIN планшета, который вы указали в форме запроса ключей.
Ещё можно сделать отладочный ключ (debug token) и установить его на PlayBook (для симулятора это не требуется). Однако, если мы собираемся работать в IDE, то среда разработки сама сообщит, что требуется ключ, поможет сгенеририровать и установить его на устройство. Если вам интересно, как это можно сделать при помощи утилит командной строки, то ознакомьтесь с руководством Getting Started with Qt on Blackberry.
Сборка Qt для PlayBook
Библиотеки Qt не входят в состав стандартного набора компонентов прошивки PlayBook, будем надеяться, что в скором времени это будет исправлено, т.к. ведутся работы по переносу Qt для PlayBook с GitHub в основной репозиторий Qt. А пока нам надо самостоятельно скачать исходный код Qt, собрать его для PlayBook и установить на инструментальной системе.
Скачайте архив qt-qnx-preview.tar.gz из GitHub, распакуйте и выполните следующие команды:
$ /path/to/ndk/bbndk-env.sh
$ ./configure-qnx
Не постесняйтесь заглянуть внутрь скрипта configure-qnx. Там можно добавить нужные вам опции сборки Qt. Лично я немного изменил скрипт, чтобы Qt устанавливался не в текущий каталог, а в каталог target в NDK:
#!/bin/sh
./configure -opensource -confirm-license -qpa -shared -release \
-xplatform unsupported/blackberry-armv7le-qcc -little-endian -arch arm \
-iconv -largefile -nomake examples -xmlpatterns -no-webkit -no-neon -no-rpath -opengl es2 \
-prefix-install -prefix ${QNX_TARGET}/../target-override/armle-v7/usr/lib/qt4 \
-headerdir ${QNX_TARGET}/../target-override/usr/include/qt4
Теперь уже можно с чистой совестью выполнить:
$ make -j12
$ make install
На этом всё. Пожалуй, больше на тему сборки Qt для PlayBook распространяться не буду. Для быстрого старта рассказанного будет достаточно.
Настройка проекта в NDK для Qt-приложения
Запустите NDK для BlackBerry и создайте проект «BlackBerry Tablet OS C/C++ Project».
Укажите пути к заголовочным файлам модулей, которые будут использоваться. Например, QtGui и QtDeclarative:
Выберите пункт QCC Linker -> Libraries, в список Library Paths добавьте путь к библиотекам Qt и сами библиотеки в список Libraries:
Откройте файл bar-descriptor.xml и в графе Assets добавьте ссылки на модули Qt, которые будет использовать приложение:
В принципе это всё. Теперь можно разрабатывать приложение на Qt или QML, проверять его работу в симуляторе или на PlayBook, создавать подписанные BAR-файлы и размещать их в App World. Пример приложения на QML собранного для PlayBook можно посмотреть тут.
Ещё одна особенность, которая может сберечь ваше время. Не забудьте вставить первой строчкой в функции main() вашей программы:
QCoreApplication::addLibraryPath("app/native/lib");
Так указывается путь по которому приложение будет искать библиотеки Qt.
Вместо заключения
Платформа PlayBook представляет большие возможности для разработчиков и, в конечном итоге, для пользователей. В основе платформы лежит ОСРВ QNX, который обеспечивает поддержку POSIX, и средства разработки Native SDK позволяют не только разработать практически что угодно, но и использовать ранее разработанные библиотеки или библиотеки с открытым исходным кодом. В качестве примера может послужить DjView — программа просмотра DjVu, собранная для PlayBook.
В заметке не рассказывалось о всех возможностях и особенностях разработки на Qt для PlayBook. Например, я не рассказал о плагине QNX для Qt Creator, который доступен на GitHub. Также рекомендую попробовать. Сообщают, что плагин будет включён в версию 2.5.
Если Вам интересны технологии QNX, в том числе и применение Qt на QNX и PlayBook, то не забудьте посетить XII международную конференцию «QNX-Россия 2012». Информация по конференции и материалы с предыдущих конференций доступны на сайте qnx-russia.ru. Получить информацию о докладах специалистов СВД Встраиваемые Системы и предложить темы для докладов и мастер-классов можно на форуме СВД ВС.