Инструментарий для разработки предоставляется компанией RIM бесплатно. Отладка приложения может производиться как на симуляторе, так и прямо на устройстве. Для того, чтобы иметь возможность выполнять приложение на устройстве, скомпилированный файл с расширением .cod надо подписать специальным электронным ключом, который предоставляется RIM и является бессрочным. Теоретически возможно обойтись без электронного ключа. В ключе нет необходимости, если вы запускаете написанные программы только в симуляторе. Также нет необходимости в ключе, если вы, при написании приложения предназначенного для выполнения на устройстве, применяете только классы не входящие в список «controlled API». Должен заметить, что большинство классов RIM API входят в этот список и приложения, их использующие, должны быть подписаны, в противном случае на устройстве они не запустятся.
Процесс получения ключа очень прост. Заполняете форму на сайте RIM, указываете реквизиты вашей кредитной карты и совершаете покупку (сейчас ключи стали предоставлять бесплатно). Через пару дней на вашу электронную почту приходят файлы электронных ключей с инструкцией по их использованию. Ещё через какое-то время на обычную уже почту придёт бумажное письмо с подтверждающими покупку ключей документами.
Разработку приложений для смартфонов BlackBerry можно вести с помощью следующих инструментов:
- BlackBerry Java Development Environment (BlackBerry JDE) — был одним из первых инструментов для разработки BlackBerry-приложений на Java. Сейчас выпускается скорее по привычке, нежели из необходимости. Вести разработку сколь-нибудь сложного приложения в нём довольно непросто. Нет многих удобных функций, которыми оснащены современные IDE, такие как Eclipse, Netbeans, IDEA и другие.
- BlackBerry JDE Plugin for Eclipse — плагин для Eclipse, установив который, можно создавать и вести отладку приложений для BlackBerry. Намного более удобный инструмент, нежели BlackBerry JDE. Перед его установкой надо установить требуемую плагином версию Eclipse. Путь к установленному Eclipse будет запрошен во время установки BlackBerry JDE Plugin.
- Набор инструментов для создания так называемых «Browser Applications», которые пишутся с применением HTML, CSS и JavaScript и выполняются в браузере BlackBerry.
Приложение, описанное в этой статье, я буду создавать с помощью Eclipse и BlackBerry JDE Plugin for Eclipse. Надо заметить, что средства разработки, использующие Java, не поддерживают новшеств, которые появились в Java, начиная с версии 1.5. То есть о применении generics, enums и прочих новых возможностей думать, к сожалению, не приходится.
Итак, устанавливаем поддерживаемую BlackBerry JDE Plugin версию Eclipse, после чего устанавливаем сам плагин.
Затем запускаем Eclipse и создаём наш первый проект.

Указываем название проекта. Значение «BlackBerry JRE 5.0» в разделе «JRE» диалогового окна говорит о том, какая версия RIM API используется в проекте. В данном случае используется версия RIM API 5.0.0.

Вы можете установить поддержку других версий API и обновления для BlackBerry JDE Plugin for Eclipse через стандартный механизм обновления Eclipse.
Подробное описание тонкостей работы с BlackBerry JDE Plugin for Eclipse дано в документации к нему, которую можно скачать с сайта.
После закрытия диалога создания проекта перед нами будет открыто окно дескриптора приложения. В нём описываются все необходимые свойства приложения.

Тут остановимся и рассмотрим поля дескриптора поподробнее. Нам понадобится только часть из них.
- Title — название приложения, которое будет отображаться на экране устройства
- Version — версия приложения
- Vendor — автор приложения
- Description — краткое описание приложения. При установке пользователь сможет прочитать его, нажав соответствующую кнопку в BlackBerry Desktop Manager, если установка производится через кабель USB, либо он увидит описание при установке приложения через интернет, открыв соответствующий этому приложению jad-файл на сервере.
- Application type — тип приложения. Оставляем по-умолчанию «BlackBerry Application», что означает — «приложение BlackBerry». Помимо этого типа есть также тип «Library», для компиляции библиотеки, которой могут пользоваться другие программы, установленные на устройстве. Тип «MIDlet» подразумевает создание MIDlet-а с применением классов Java2ME.
- Application argument — аргумент, который будет передаваться в main(String[] args). В нашем случае нам это поле без надобности.
- Auto-run on startup — включаем, если приложение должно запускаться при старте устройства. Startup tier говорит в какую очередь будет запущено ваше приложение. В BlackBerry Java Development Environment можно было указывать малое значение для этого поля, что приводило к тому, что приложение запускалось до того, как были запущены необходимые для его функционирования компоненты операционной системы. В Eclipse оставили только два возможных значения: 6 и 7. Семёрка означает, что запускать в самую последнюю очередь при старте операционной системы.
- Do not display the application icon on the BlackBerry home screen — включается в тех случаях, когда мы создаём не UI-приложение, которое работает в фоновом режиме и обычно запускается при включении устройства.
- Раздел Locale resources — используется для указания ресурсов локализации, которые будут использоваться в данном приложении. В данной статье на этом подробно останавливаться не будем.
- Application icons — позволяет задать одну или несколько иконок для приложения. Мы также не будем останавливаться на этом вопросе в этой статье.
Создаём первый и главный класс нашего приложения.

Приложения для BlackBerry бывают как видимые (так называемые Ui-приложения), так и фоновые. Так как мы пишем Ui-приложение, то наследуем главный класс нашего приложения от net.rim.device.api.ui.UiApplication.
Первоначально главный класс нашего приложения выглядит так:
package test.myfirstapp; import net.rim.device.api.ui.UiApplication; public class MyApplication extends UiApplication { public static void main(String[] args) { } }
Теперь создаём класс для отображения информации на экране устройства.

Наследуем его от класса net.rim.device.api.ui.container.MainScreen
После создания класса пишем для него код:
package test.myfirstapp.view; import net.rim.device.api.ui.component.LabelField; import net.rim.device.api.ui.container.MainScreen; public class MyAppScreen extends MainScreen { public MyAppScreen() { // формируем меню по-умолчанию, с пунктом для закрытия приложения super(DEFAULT_MENU | DEFAULT_CLOSE); // устанавливаем заголовок setTitle("My first application"); // добавляем нередактируемое поле с надписью this.add(new LabelField("Hello world!")); } // обработка попытки закрытия экрана public boolean onClose() { // при закрытии экрана завершаем работу приложения System.exit(0); // true подтверждает, что экран будет закрыт return true; } }
Затем возвращаемся в главный класс приложения и пишем код для него:
package test.myfirstapp; import test.myfirstapp.view.MyAppScreen; import net.rim.device.api.ui.UiApplication; public class MyApplication extends UiApplication { public static void main(String[] args) { // создаём экземпляр класса приложения final MyApplication app = new MyApplication(); // начинаем принимать события от операционной системы app.enterEventDispatcher(); } public MyApplication() { // показываем созданный экран this.pushScreen(new MyAppScreen()); } }
Вот, в принципе, и всё. Можно запускать приложение в симуляторе.
Дистрибутив BlackBerry JDE Plugin for Eclipse 1.1 включает в себя набор симуляторов для устройств BlackBerry. Набор симуляторов в Eclipse можно расширить, установив поддержку других версий API. Текущий используемый симулятор можно установить в диалоговом окне через вызов меню: Run — Run Configurations, закладка «Simulator»
По-умолчанию установлен симулятор для BlackBerry Storm 9550.

Запускаем программу в симуляторе, вызвав из меню: Run — Run As — BlackBerry simulator

Появится окно симулятора, в котором вы можете выбрать написанное нами приложение и запустить его. Процесс выбора и запуска приложения показан в анимированной картинке ниже.

Те, кому стало интересно, могут почитать про классы RIM API версии 5.0 и ознакомиться с большим количеством разнообразной документации и руководств для разработчиков.
Функционирует официальный форум, посвящённый разработке приложений для BlackBerry, на котором можно пообщаться с другими программистами и с сотрудниками компании Research In Motion.

