Pull to refresh

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

Reading time 6 min
Views 4.8K
image
BlackBerry WebWorks SDK выгодно отличается среди прочего доступного на настоящий день инструментария для создания приложений BlackBerry тем, что позволяет вести разработку одновременно и под смартфоны, начиная с BB OS 5.0, и под планшеты Playbook.
Если в двух словах, то BlackBerry Web Apps или «веб-виджеты» — это платформа на базе стандартов HTML5, CSS3 и расширяемого JS. Вроде бы «негусто» для написания приличного приложения, но первое впечатление обманчиво. Ниже станет ясно, почему. Нужно отметить, что версия API для планшетов Playbook пока сильно отличается от полноценной, но активно развивается и дополняется, документация обновляется с интенсивной периодичностью. В данной статье мы будем приводить примеры, использующие возможности полноценного API, т.е. поддерживаемые в BB OS 6 и 7, а в следующей опишем процесс разработки виджетов под Playbook.

Начинка BlackBerry WebWorks


Начиная с шестой версии операционной системы для смартфонов движком браузера стал webkit, заменив собой браузер на основе Java. На планшете Playbook вебкит-браузер установлен в качестве нативного изначально. В совокупности одно только это обстоятельство позволяет широко использовать возможности связки HTML5+CSS3, поддержка которых ограничена в иных браузерах. Второй и главный фактор — это расширение для джаваскрипта, объект blackberry, предоставляющий доступ для взаимодействия с ресурсами системы и устройства, расположенными за пределами приложения. Данные ресурсы делятся на категории, присутствующие в именованиях соответствующих вложенных объектов:

  • Application
  • Browser Native
  • File I/O
  • Find
  • Identity
  • Invoke
  • Messaging
  • PIM
  • Push Data
  • System
  • User Interface
  • Utilities
  • Gears (только в 5-й версии, для обеспечения функционала, доступного в HTML5)


Один пример будет ярче многих слов — ниже приводится демонстрация того, как средствами javascript происходит создание нового контакта, запись в адресную книгу и отправка уведомления по электронной почте адресату только что созданного контакта:
<script type="text/javascript"> 	
	// Создаем новый контакт  
	var contact = new blackberry.pim.Contact();  
	contact.firstName = 'John';  
	contact.lastName = 'Doe';  
	contact.homePhone = '555-555-5555';
	contact.email1 = 'john@doe.com';
	contact.save();
	
	// Формируем и отправляем письмо
	var message = new blackberry.message.Message();
	message.toRecipients = contact.email1;
	message.subject = 'Продам комод';
	message.body = 'Джон, тебя посчитали';
	message.send();
</script>


Важно отметить два дополнительных момента. Во-первых, для BBM Social Platform также анонсирована поддержка на уровне BlackBerry Web Apps, что позволит интегрировать популярный сервис в свои приложения. Во-вторых, если возможностей WebWorks API недостаточно для приложения, функционал javascript может быть расширен средствами Java.

Немного о js-фреймворках и библиотеках


Небольшое лирическое отступление.
При создании нового приложения почти наверняка возникнет вопрос, какую джаваскриптовую библиотеку или фреймворк задействовать. Фреймворк для мобильных устройств как минимум должен уметь обрабатывать touch-события, реагировать на состояние гироскопа и понимать жесты.
В поиске ответа на данный вопрос приведенный список может оказаться полезным:

Если показалось, что список маловат, то можно заглянуть еще и на microjs.com
Выбор фреймворка связан зачастую с задачами, целями и архитектурой проекта, а также с личными предпочтениями разработчика. Мы в своей работе используем XUI и Sencha Touch. XUI js — это крошечный расширяемый фреймворк размером всего лишь 9,4 Кб (или 4,1 Кб с сжатием gzip) c jQuery подобным синтаксисом. В перспективе планируем эксперименты с Mootools, который поддерживает мобильные устройства, начиная с версии 1.3. YUI3 развивается, кстати, в том же направлении.

Настройка среды разработки


Вести разработку веб-виджетов можно как в MS Visual Studio, так и в Eclipse IDE. Мы опишем пример с использованием Eclipse (Windows).
Для начала необходимо скачать  Java SE 6 JDK 32-bit и настроить необходимые плагины. Это WTP, BlackBerry WebWorks plug-in и BlackBerry WebWorks SDK plug-in:

image

Плагины доступны зарегистрированным разработчикам по адресу www.blackberry.com/go/eclipseUpdate/3.6/web. Во время установки плагинов необходимо указать логин и пароль.

Пишем первый BlackBerry Web App


Все, Eclipse настроен, можно создавать новый проект под названием HabrHelloWidget:

image

image

Только что созданный проект имеет следующую структуру:
build\
ext\
config.xml
index.html


Директория ext зарезервирована для расширения javascript средствами java, в ней хранятся архивы jar. Директория build содержит сборки проекта, в «эклипсовском» Package Explorer она не видна.
Файл index.html — это обычный документ html за исключением meta-тега viewport. Конфигурационный файл config.xml содержит описание приложения, данные о версии, лицензии, авторе, список с перечислением сетевых соединений в порядке убывания приоритета и т.д. Там же содержатся настройки безопасности при работе приложения с js-расширениями (объект blackberry). В приложении соблюдается принцип Same Origin Policy (SOP), поэтому весь необходимый функционал должен быть перечислен для каждого из доменов, включая локальный ресурс, т.е. само приложение:
image

image

Если в настройках требуемая функция (feature) не указана, приложение вызовет исключение.

В проект необходимо добавить иконку в формате png и указать путь к ней в config.xml. По умолчанию иконка может иметь название icon.png и располагается в корне проекта. Гайдлайн к OS 6 требует, чтобы размеры иконки не превышали 68x68 px. Габариты иконки для планшета Playbook — 86x86, на смартфоне в этом случае произойдет автоматическое масштабирование.

Добавим иконку, стили (закрасим фон синим, текст — белым) и напишем скрипт, который отобразит PIN и IMEI устройства, а также выведет в цикле информацию о доступных транспортных протоколах. Для ресурса Local объявляем доступным расширение blackberry.identity.

Разметка html (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>кое-что обо мне</title>
    </head>
    <body>
        <h1>Привет, Habr!</h1>
	<div id="device"></div>
	<script type="text/javascript" src="js/init.js"></script>
    </body>
</html>


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

(function() {
	var device = document.getElementById('device'), str = '';
	try {
		var transportList = blackberry.identity.getTransportList();
		for ( var i = 0, max = transportList.length; i < max; i++) {
			str += 	"Transport name is:" + transportList[i].name
			+ "<br />transport type:" + transportList[i].type + '<br />';
		}

		str +=  "<br />PIN: " + blackberry.identity.PIN
		+  "<br />IMEI: " + blackberry.identity.IMEI;
	} catch (e) {
		str = 'Быстро запили мне фичу!';
	}
	device.innerHTML = str;
})();


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


Далее, вызываем контекстное меню проекта, выбираем пункт Build BlackBerry WebWorks Project и собираем проект:
image
крупнее

Запускаем симулятор: контекстное меню проекта — Run As — BlackBerry Simulator. Любуемся результатом:

image
крупнее

image
крупнее

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


Для проектов, ориентированных на смартфоны с BB OS 5, через контекстное меню проекта доступен режим Debug As.
Для шестой версии дебаг, судя по всему, пока не поддерживается, поэтому в ход идут кустарные средства вроде конструкций try-catch, вывода логов посредством возможностей объектов blackberry.io.dir и blackberry.io.file. На форуме разработчиков приводятся примеры отладки как в среде Eclipse, так и в Visual Studio.
С планшетом дела обстоят гораздо лучше. Поскольку виджет запускается к контексте исполняемой среды вебкит-браузера, для отладки можно задействовать веб-инспектор. Подробности — в следующей статье.

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


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

Руководство по подписи приложения ключами доступно по адресу docs.blackberry.com/en/developers/deliverables/27261/Install_the_new_registry_key_with_Signature_Tool_1582584_11.jsp

Подписанное приложение можно отправлять на рассмотрение в AppWorld и после одобрения публиковать.

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

Tags:
Hubs:
+5
Comments 1
Comments Comments 1

Articles

Information

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