Pull to refresh

Создание приложений для планшета BlackBerry Playbook средствами WebWorks SDK

Reading time5 min
Views5.7K
image
В продолжение прошлой статьи о разработке веб-виджетов с помощью WebWorks SDK мы расскажем об особенностях создания приложений под планшет BlackBerry Playbook.
Для начала напомним, что версия API для BlackBerry Tablet OS (операционная система планшета Playbook на базе QNX) пока сильно урезана по сравнению с API для BlackBerry OS 6 и 7. Информация об изменениях публикуется в блоге разработчиков, документация периодически обновляется.

Среда разработки


Настройка среды разработки ничем не отличается от описанной ранее. Но, помимо выполнения общих настроек в Eclipse IDE, необходимо также установить BlackBerry WebWorks SDK for Tablet OS, VMware Player (Windows) или VMware Fusion (Mac) и BlackBerry Playbook Simulator. Все необходимые инструменты, документация и примеры доступны по адресу us.blackberry.com/developers/tablet/webworks.jsp
В процессе установки BlackBerry WebWorks SDK for Tablet OS необходимо будет указать директорию с расположением Adobe AIR SDK, поэтому также желательно заранее скачать требуемый пакет. После установки WebWorks SDK в значение системной переменной среды Path для удобства желательно дописать пути к консольным утилитам bbwp.exe (собирает приложение из проекта) и blackberry-deploy.bat (управляет приложениями на симуляторе) приблизительно следующим образом:

c:\Program Files (x86)\Research In Motion\BlackBerry WebWorks SDK for TabletOS 2.0.0.4\bbwp;c:\Program Files (x86)\Research In Motion\BlackBerry WebWorks SDK for TabletOS 2.0.0.4\bbwp\blackberry-tablet-sdk\bin

image

Сборка и запуск проекта HabrHelloWidget на симуляторе планшета


В качестве примера скомпилируем и проинсталлируем описанное в предыдущей статье приложение HabrHelloWidget на симулятор планшета, запущенный в среде VMware. Для начала планшет должен быть переключен в Development Mode, необходимо будет ввести пароль:

image
крупнее

В верхней части дисплея появится соответствующая пиктограмма. При нажатии на нее отобразится IP-адрес устройства. Запоминаем пароль и адрес IP:

image
крупнее

Нам необходимо сформировать архив с расширением bar при помощи утилиты bbwp (Blackberry WebWorks Packager), затем данный архив должен быть инсталлирован на симулятор или физическое устройство утилитой blackberry-deploy.
В Eclipse открываем проект, вызываем контекстное меню проекта, выбираем пункт Build BlackBerry WebWorks Project и собираем HabrHelloWidget. Наш проект на текущий момент имеет следующую структуру:

build\
css\
ext\
js\
config.xml
icon.png
index.html


Нам понадобится директория build, которая содержит сборку. Предположим, что директория располагается по адресу C:\projects\blackberry\rim_workspace\HabrHelloWidget\build
Запускаем консоль. В нашем случае процесс компиляции и установки выглядит следующим образом:

C:\>bbwp "C:\projects\blackberry\rim_workspace\HabrHelloWidget \build\HabrHelloWidget.zip" -o "E:\myapps\output" && blackberry-deploy -installApp -password ilab -device 192.168.137.131 -package "E:\myapps\output\HabrHelloWidget.bar"

Сначала bbwp формирует из zip-архива (сборка, произведенная средствами Eclipse) одноименный архив с расширением bar (BlackBerry archive) в директории, на которую указывает флаг -o.
Затем вызывается blackberry-deploy с флагом -installApp, параметрами сетевого доступа к устройству и указанием инсталлируемого пакета.

Для просмотра всех доступных аргументов bbwp необходимо вызвать с флагом -h, утилита blackberry-deploy вызывается без аргументов. Подробное описание этапа компиляции доступно по адресу docs.blackberry.com/en/developers/deliverables/23977/Compile_a_BlackBerry_Widget_application_834647_11.jsp

image
крупнее

image
крупнее

На планшете Playbook объект blackberry.identity не поддерживается, поэтому приложение предсказуемо ведет себя иначе, чем на смартфоне:
image

image

От такого виджета пользы никакой, поэтому изменим проект таким образом, чтобы он информировал обо всех доступных возможностях js-объекта blackberry. По мере внесения изменений в WebWorks API поведение приложения также будет меняться.
В config.xml добавим весь функционал расширений blackberry:

image

Разметка hml (index.html):
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <meta name="viewport" id="viewport" content="height=device-height,width=device-width,user-scalable=no" />
	<link rel="stylesheet" href="css/style.css" />
	<title>blackberry object | WebWorks features</title>
    </head>
    <body>
        <h1>js blackberry object</h1>
	<div id="features"></div>
	<script type="text/javascript" src="js/init.js"></script>
    </body>
</html>


Стилевые определения (css/style.css):
@CHARSET "UTF-8";
body {
	background-color: #fff;
	color: #777;
	font: 12px Arial, Helvetica, sans-serif;
}

h1 {
	border-bottom: 1px solid #777;
}

#features {
	-webkit-column-count: 3;
	-webkit-column-gap: 20px;
	column-count: 3;
	column-gap: 20px;
}



Скрипт инициализации (js/init.js):
/**
 * HabrHelloWidget init (modified)
 */

(function() {
	var $ = function (id){
		return document.getElementById(id);
		};
	var features = $('features'), str = '';
	
	try {
		for ( var p in blackberry) {
			str += '<br /><strong>' + p + '</strong>';
			for ( var pf in blackberry[p]) {
				str += '<br />  ' + p + '.' + pf;
			}
		}
	} catch (e) {
		str = '<em>blackberry</em> features are not supported, check your config.xml';
	}
	features.innerHTML = str;
})();


Результат:
image
крупнее

Тестирование и отладка


Поскольку виджет запускается к контексте исполняемой среды вебкит-браузера, для отладки можно задействовать веб-инспектор. Для этого проект должен быть скомпилирован с завершающим флагом -d:

bbwp "C:\projects\blackberry\rim_workspace\HabrHelloWidget\build\HabrHelloWidget.zip" -o "E:\myapps\output" -d

Веб-инспектор будет доступен после запуска приложения как на планшете, так и настольном вебкит-браузере, для чего необходимо обратиться на порт 1337 по адресам http://192.168.137.131:1337 (десктоп) или http://localhost:1337 (планшет):

image
крупнее

image
крупнее

Если веб-инспектор по какой-либо причине не устраивает, то можно подключить Firebug lite.
Вспомогательным инструментом может стать также Ripple Emulator, но строго говоря он не является полноценным эмулятором, поэтому возможности отладки у него ограничены.

Подпись приложения


Для публикации в AppWorld необходимо зарегистрироваться в качестве вендора, а приложение — подписать цифровыми ключами. Форма для запроса ключей: www.blackberry.com/SignedKeys
Требуется банковская карта с возможностью онлайновых платежей. На получение ключей по электронной почте уходит в среднем 1-3 дня.

Подробная инструкция по подписи приложения ключами доступна по адресу docs.blackberry.com/en/developers/deliverables/23977/Configure_signing_for_tablet_applications_1476061_11.jsp

приложение должно быть скомпилировано утилитой bbwp с флагами -gcsk-gp12 и -buildId. Подписанное приложение можно отправлять на рассмотрение в AppWorld и после одобрения публиковать.
На этом, пожалуй, можно и остановиться. Очевидно, что все нюансы невозможно учесть и отразить в двух статьях, поэтому по мере возникновения вопросов мы будем вносить пояснения и уточнения там, где требуется.

Тематические ссылки




PS. Пара слов о бесплатном планшете BlackBerry Playbook

Наверняка все заинтересованные уже видели данный пост, но дополнительная ссылка не помешает. В комментариях имеется актуальная информация о ситуации с доставкой и таможней.
Tags:
Hubs:
Total votes 9: ↑8 and ↓1+7
Comments8

Articles

Information

Website
www.innovationlab.ru
Registered
Founded
2008
Employees
11–30 employees
Location
Россия