Как стать автором
Обновить

Blackberry — площадка для разработки: Eclipse + CVS hosting

Разработка мобильных приложений *
Блэкберри (дальше ББ) в России остается экзотикой, но еще экзотичнее ББ звучит в сочетании c GPL. Оказывается приложения для ББ можно разрабатывать вообще без затрат на средства разработки или лицензии. Распостранять приложения не обязательно через ББ App Store, так что ничто не мешает выпускать их под GPL. С Apple или WP7 экосистемой без jailbreak так не получится (пример — Videolan ). Я расскажу на своем примере, как бесплатно настроить платформу для разработки, тестирования и установки ББ приложений на Java в группе.


У меня давно была идея добавить одну функцию к емейл клиенту ББ, а именно возможность поискать адресатов или отправителя в корпоративной адресной книжке. Сейчас уже написанная на Java утилита умеет еще и искать контакты в LinkedIn.com и 123people.com. Так как денег на программе я зарабатывать не планирую, оформил ее как GPL проект и заодно настроил публичный CVS, для тех, кто хотел бы подключиться.

В общем все шаги или тривиальны или уже были описаны в этом блоге, нужно только знать, что вам выбрать. Кроме шага по подключению Eclipse к CVS серверу BerliOS.de. А на WinXP это немного осложняется отсутствием SSH2 клиента «из коробки». Вот для того, чтобы вы не тратили целый вечер на поиск информации я и опишу тут этот процесс подробно. А остальные пункты кратко.

Непосредственно инструкция про CVS через пару абзацев внизую. Если у вас еще останутся вопросы по другим пунктам, задавайте их в комментариях.

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

Целью было как можно меньше потратить времени на изучение и конфигурацию. Так что я взял то, что рекомендует RIM, чтобы не попасть в какой нибудь тупик. В конце концов список такой:

WindowsXP
Java CE
Eclipse в составе ББ пакета с плагином симулятором устройств.
Berlios.de (CVS hosting)
PuTTY

Оплата

Кроме WinXP, который у меня уже был, все остальное доступно бесплатно и без сложной регистрации.
RIM, компания которая делает Блэкберри, похоже поняла, что лозунг Developers, Developers, Developers! верен не только для Микрософт :-) и в последнее время сделала довольно много, чтобы привлечь разработчиков. Создан довольно активный форум, в котором сотрудники RIM неплохо помогают. Цена на размещение программ в Blackberry App Store в данный момент нулевая. И буквально на днях отменили плату за ключи для подписи приложений.

Процесс


Здесь уже была статья про разработку для ББ в Eclipse. Так что только вкратце о процессе и о роли инструментов в нем:
  • Windows XP, для нее есть официально поддерживаемая инсталляшка всего пакета разработки, в принципе возможно и на Линукс установить.
  • В Eclipse вы пишете код, пользуясь ББ Java SDK плагином.
  • Встроенный CVS клиент работает вместе с бесплатным хостингом на BerliOS.de.
  • Первоначально нужно сделать пару настроек в shell на этом сервере через SSH2, для этого используем PuTTY.
  • Вместе с плагином в Eclipse устанавливаются и эмулятор(ы) самого телефона и RIM сервера. С помощью этих эмуляторов можно протестировать все функции.
  • Для того, чтобы установить скомпилированное приложение на настоящее устройство, нужно в общем случае получить ключ для электронной подписи.
  • После этого приложение (в виде jad и cod файлов) можно просто положить на любой веб сервер, отправить в App Store или загрузить через USB (alx и cod). Вот подробный пост на про это на Хабре.

Пояснение


Этот путь я прошел для своего проекта developer.berlios.de/projects/contextlookup. Не буду менять имена, чтобы не переделывать скриншоты, и не выдумывать шаблоны.
На сервере BerliOS этому проекту выдали unix name contextlookup, мой логин diego_goeid и PuTTY я установил в C:\PuTTY. Поменяйте их в соответствии с вашей ситуацией. Если вы вдруг захотите поучаствовать в моем конкретном проекте, то нужно будет сменить только логин.

BerliOS.de это аналог Sourceforge из Германии, только он специально создан для поддержки FOSS и не подлежит американскому патентному и экспортному законодательству. На нем вы можете бесплатно получить место под свой проект, систему управления проектом, баг трекер, мейлинг листы, свой домен третьего уровня, wiki и еще много чего. При регистрации задаете обычные координаты, имя и описание проекта. Через день вам открывают доступ, и большинство сервисов уже работоспособны. А вот CVS вам, как администратору нужно еще будет включить.

Первая часть инструкции только для администратора проекта:


1. Определите категорию и добавьте описание для вашего проекта, иначе робот не создаст директорию для вашего CVS.
2. В интерфейсе админа добавьте галку для CVS.
3. Ждите.
4. Мне ждать пришлось пару часов. Потом появилась директория /cvsroot/contextlookup В ней уже можно размещать файлы и мы переходим ко второй части.

Вторая часть инструкции для тех, кто хочет пользоваться существующей CVS через SSH2 из Eclipse.



Вкратце: для того, чтобы настроить доступ по публичному ключу используется PuTTY и потом вы уже можете переключаться на встроенный SSH2 клиент в Eclipse.
  1. Скачайте инсталляшку для PuTTY
  2. Сгенерируйте пару rsa ключей с помощью Keygen из инсталляшки.
  3. Загрузите ваши ключи в PageAnt и оставте его работающим, пока вы пользуетесь PuTTY.
  4. Скопируйте свой публичный ключ в Berlios через веб интерфейс внизу страницы настройки аккаунта (CVS/SVN/SSH Shared Keys: [Edit Keys]). Вариант для простого разработчика — пошлите свой ключ администратору.
  5. Зайдите с логином и паролем в SSH2 шелл cvs.berlios.de с помощью PuTTY и запустите команду ssh-copy-id -i ~/.ssh/id_rsa.pub diego_ogeid@cvs.berlios.de
  6. Теперь проверьте, можете ли вы зайти из cmd.exe используя команду (plink.exe из PuTTY) plink diego_ogeid@cvs.berlios.de . Когда вас об этом спросят, добавтье cvs.berlios.de в список знакомых серверов.


Теперь вы можете подключить Eclipse к CVS для проверки.

  1. Выберите Team->Share Project из контекстного меню проекта в Eclipse а затем Create a new repository location
  2. заполните поля в форме:
    Connection type: ext
    CVS host: cvs.berlios.de
    Repository path: /cvsroot/contextlookup
    User: diego_ogeid
    Port: default


  3. Сконфигурируйте настройки соединения «сonfigure connection preferences...» c plink
    CVS_RSH: C:\PuTTY\plink.exe
    Parameters: {user}@{host}
    cvs server: cvs.berlios.de



    Больше в настройках никуда лазить не надо. А то настроите еще что нибудь не так :-)
  4. Когда Eclipse спросит «Select the name of the module in the CVS repository» оставьте «Use project name as module name»
  5. Сейчас у вас дожно получиться подключиться к CVS и залить/скачать файлы.


А теперь без plink

После того, как вы успешно поключились и залили файлы можете поменять способ подключения на встроенный в Eclipse pserverssh2.
Для этого:
  1. Экспортируйте свои ключи из KeyGen в формате OpenSSH.
  2. Импортируйте их кликнув на ссылке «SSH2» которая появляется в «configure connection preferences...». После того как вы их добавите в поле id_rsa будет присутствовать два раза.
  3. Поменяйте способ подключения на вот такие значения
    CVS host: cvs.berlios.de
    Repository path: /cvsroot/contextlookup
    User: diego_ogeid
    Connection type: pserverssh2
    Port: default

  4. Все должно заработать как и в первый раз.


Использованные доки:




Планы


Я думаю еще написать о первых шагах по изучению ББ User Interface API и о небольшом опыте оптимизации моего приложения по скорости. Пишите, если это вас интересует. Буду так же рад если зубр Java посмотрит на мой код.

Под конец, лирическое отступление:


RIM конечно проспали рынок сторонних приложений. Скорее всего из за ориентации на корпоративный (и консервативный) сегмент они боялись открывать API. Да и надо отдать дань Джобсу и Ко, модель с открытым API телефона, но жестко контролируемым App Store, это действительно смелый шаг. Хотя бы по затратам на тех, кто эти приложения проверяет на стороне Apple. По сути дела это еще один отдел тестеров.

Но вообще-то возможность писать для ББ на Java была уже очень давно, года так с 2004, если я правильно помню. Мне ББ нравится тем, что в нем очень многое делается по общепринятым стандартам, с очевидной логикой и с довольно хорошей совместимостью с другими системами. В частности, их сервер можно подключить практически к любому почтовому серверу, итд. За это и за высокий уровень безопасности их и любят. А последние устройства вполне хороши и с точки зрения мультимедиа. Так что для людей, которые работают в больших компаниях, ББ это очень хорошая альтернатива а иногда и единственное подходящее устройство.
Вот поэтому я им и пользуюсь.
Конец.
Теги:
Хабы:
Всего голосов 23: ↑17 и ↓6 +11
Просмотры 1.4K
Комментарии Комментарии 18