Стандартный диалог с заказчиком при обсуждении очередного проекта для Blackberry выглядит примерно так:
PM (с надеждой): А вам версии приложения для каких платформ нужны?..
Заказчик : Для всех!!!
Вот тут-то, %username%, начинается тот самый кошмар, имя которому «разработка для Blackberry».
Особенности процесса компиляции.
Во-первых, у Blackberry достаточно много версий их ОС. Не буду перечислять их все, отмечу лишь, что как правило требуется поддержка как минимум диапазона 4.1-4.7, реже версий меньше 4.0. Соответственно, приходится как минимум создавать билд для каждой из платформ, так как одни и те же функции API работают на них по-разному.
Во-вторых, вне зависимости от установленной версии ОС, у телефонов Blackberry большой набор возможных разрешений. Значит, скорее всего придется делать отдельный билд приложения для каждого из этих разрешений.
В-третьих, для того, чтобы скомпилировать приложение для Blackberry надо:
А теперь представим, что заказчику захотелось иметь версии приложения для 10 девайсов. Если делать все руками, потратим минимум полчаса — это если все сделать без ошибок.
Как же все сделать по-человечески?
Сначала, перелопатив документацию о RIMовском компиляторе, я сделал несколько батников, с помощью которых компилировал приложения. Но потом и их стало нехватать. В один прекрасный день я наткнулся на проект Blackberry Ant Tools — и я забыл о получасовой компиляции навсегда.
Основные возможности расширения:
Есть еще множество плюшек, с которыми можно ознакомиться здесь
Примечание.
Единственной серьезной проблемой данного расширения было то, что при компиляции проекта иногда ресурсы (картинки, звуки итп) складывались в корень .cod-файла. Оказалось, что «иногда» — это когда для директивы
Вот, собственно и все %).
PM (с надеждой): А вам версии приложения для каких платформ нужны?..
Заказчик : Для всех!!!
Вот тут-то, %username%, начинается тот самый кошмар, имя которому «разработка для Blackberry».
Особенности процесса компиляции.
Во-первых, у Blackberry достаточно много версий их ОС. Не буду перечислять их все, отмечу лишь, что как правило требуется поддержка как минимум диапазона 4.1-4.7, реже версий меньше 4.0. Соответственно, приходится как минимум создавать билд для каждой из платформ, так как одни и те же функции API работают на них по-разному.
Во-вторых, вне зависимости от установленной версии ОС, у телефонов Blackberry большой набор возможных разрешений. Значит, скорее всего придется делать отдельный билд приложения для каждого из этих разрешений.
В-третьих, для того, чтобы скомпилировать приложение для Blackberry надо:
- Нажать кнопку F7 в Blackberry IDE (не сложно ведь, правда?)
- Подписать получившийся .cod-файл, что включает в себя
- Дважды щелкнуть по .cod-файлу мышкой
- Ввести пароль для подписи
- Нажать OK
- Разархивировать получившийся .cod-файл. Здесь имеет смысл пояснить — Blackberry JDE преобразует стандартный формат бинарника .JAR в формат Blackberry OS .cod. Более того, JDE автоматически разбивает слишком большой .cod файл на несколько более мелких кусочков и затем зипует их в архив с тем же расширением. Но установить такой архив на телефоне невозможно — надо сначала раззиповать его на кучу .cod-файлов
- И наконец, надо скопировать все .cod-файлы и .jad-файл на какой-нибудь сервер — ибо проще всего установить приложение на Blackberry можно лишь скачав его из браузера, установленного на телефоне
А теперь представим, что заказчику захотелось иметь версии приложения для 10 девайсов. Если делать все руками, потратим минимум полчаса — это если все сделать без ошибок.
Как же все сделать по-человечески?
Сначала, перелопатив документацию о RIMовском компиляторе, я сделал несколько батников, с помощью которых компилировал приложения. Но потом и их стало нехватать. В один прекрасный день я наткнулся на проект Blackberry Ant Tools — и я забыл о получасовой компиляции навсегда.
Основные возможности расширения:
- С помощью тега
<jdp>
настроить все параметры проекта — название приложения, его иконку, импорт нужных библиотек и многое другое.Выглядеть это будет примерно вот так:
<jdp title="Kick Ass App" vendor="Slashdev" version="1.0" type="cldc" />
- Директива
<sigtool>
позволяет избежать ручной подписи файлов - Директива
<define>
дает возможность указать директивы препроцессора для компилятора RIM (да, у них даже есть препроцессинг!). В JDE версии < 4.7 это можно сделать только редактируя вручную файл проекта JDE (.jdp)
Есть еще множество плюшек, с которыми можно ознакомиться здесь
Примечание.
Единственной серьезной проблемой данного расширения было то, что при компиляции проекта иногда ресурсы (картинки, звуки итп) складывались в корень .cod-файла. Оказалось, что «иногда» — это когда для директивы
<rapc>
указан аттрибут destdir
, отличающийся от корневой директории проекта. Таким образом, проблема оказалась в компиляторе от RIM. Решение очевидно — копировать бинарники с помощью стандартных антовских директив.Вот, собственно и все %).