Pull to refresh

Организационные и технические аспекты распространения приложений для BlackBerry

Reading time5 min
Views1.9K

Организационная часть процесса



Research In Motion не накладывает на разработчиков никаких обязательств при распространении приложений для BlackBerry. Вы можете распространять свои приложения как через BlackBerry App World, так и самостоятельно.


Работа с BlackBerry App World


Для работы с BlackBerry App World нужно иметь PayPal-аккаунт. Раньше при регистрации с этого аккаунта автоматически списывалось 200 долларов США, которые покрывали административные и прочие расходы на загрузку десяти приложений. Загрузка новой версии приложения считается как отдельная загрузка программы. При загрузке одиннадцатого приложения взимаются следующие 200 долларов, которые покрывают следующие десять приложений. И так далее. Подробнее можно прочесть в BlackBerry App World FAQ.

На момент написания этой статьи на сайте RIM висит объявление о том, что они временно отменили платежи при регистрации и загрузке приложений.

Получение заработанных денег делается только через PayPal-аккаунт, так что в странах, с которыми PayPal не работает в части вывода средств из системы, надо будет придумывать обходные пути. Например, регистрация Virtual US Bank Account в Payoneer, связывание его с PayPal-аккаунтом и перевод денег из PayPal на этот счёт, с которого можно будет снимать деньги в банкомате с помощью карты Payoneer.

По действущему на настоящий момент соглашению разработчик выплачивает RIM 30% дохода от продажи своих приложений через BlackBerry App World.

BlackBerry App World постоянно развивается и предлагает разработчикам новые возможности для монетизации своих продуктов. В частности, в версии AppWorld 2.1 планируется ввести поддержку приёма платежей прямо из мобильного приложения.

Работа с другими площадками



Площадки для распространения приложений можно разделить на два типа. Первый — это бесплатные площадки вроде GetJar и Mobango, которые предоставляют место на витрине для вашего продукта, с опциональной возможностью его платного продвижения с помощью рекламы, и площадки компаний, которые занимаются продвижением приложений своими силами и с привлечением партнёрских каналов сбыта. Например Mobihand и PocketGear. Надо заметить, что в компаниях, занимающихся продвижением ваших продуктов своими силами и с привлечением партнёрских каналов сбыта, процент комиссии, который они будут удерживать с каждой продажи вашего продукта, может легко достигать 90%.

Техническая часть процесса



При установке приложений для BlackBerry файловая система устройства не задействуется. Все приложения устанавливаются в общее хранилище, которое с файловой системой устройства никак не взаимодействует. Это хранилище организовано в виде обычного плоского списка файлов. Если при установке того или иного приложения cod-файл с таким именем уже установлен, то он будет перезаписан.

Распространяемое приложение может быть представлено в двух ипостасях. Первая — это файл с расширением alx и один или несколько cod-файлов вашего приложения. Этот набор файлов используется для установки приложения с помощью BlackBerry Desktop Manager на подключённое к компьютеру через USB-кабель устройство BlackBerry. Вторая — это файл с расширением jad и один или несколько cod-файлов вашего приложения. Этот набор используется для установки приложения через интернет. В браузере BlackBerry надо открыть файл с расширением jad, расположенный на сервере, после чего подтвердить права, которые вы согласны выдать приложению (application permissions) на вашем устройстве, в зависимости от реализуемого в приложении функционала, и загрузить его.

В случаях, когда размер результирующего cod-файла получается больше чем 64 килобайта (иногда граница может быть немного передвинута в бОльшую сторону), компилятор создаёт составной cod-файл. Который являет собой обычный zip-архив в файле с расширением cod. Такой файл можно без проблем установить через usb-кабель, но при установке через интернет надо учитывать следующую тонкость, связанную с особенностями работы браузера BlackBerry.

Большой cod-файл после того, как он подписан электронным ключом, надо переименовать в файл с расширением zip и распаковать. После чего zip-файл можно удалить. Полученный набор файлов с именами вроде myapp.cod, myapp-1.cod, myapp-2.cod итд, вместе с файлом myapp.jad надо поместить на веб-сервер, прописав в .htaccess сервера следующие строки, если этого не было сделано раньше:

AddType text/vnd.sun.j2me.app-descriptor jad
AddType application/java-archive jar
AddType application/vnd.rim.cod cod

Указание MIME-типа для jar делается для тех случаев, если вы собираетесь распространять приложения для BlackBerry в виде jar-файлов. Если вы этого делать не планируете, то указывать MIME-тип для jar-файлов нет необходимости.

В jad-файле изменений делать нет особой необходимости за одним небольшим исключением. Независимо от размера результирующего cod-файла внутри jad-файла надо добавить свойство «MIDlet-Name» с названием вашего приложения. В противном случае в списке установленных программ на устройстве ваше приложение будет указано под именем файла (например myapp.cod), в котором оно было установлено.

Автоматическую распаковку составного cod-файла и обновление jad-файла можно сделать с помощью jadtool из BlackBerry Ant Tools

После установки большого приложения, состоящего из множества cod-файлов, в памяти устройства оно опять будет собрано в один составной cod-файл и в таком виде будет храниться.

Должен заметить ещё вот что. Соблюдайте осторожность в именовании файлов ваших приложений. То есть если первая версия вашего приложения поставляется в файле myapp.cod, то все последующие версии приложения, которые будут призваны заменить это приложение на устройстве должны поставляться в файле с таким-же именем.

Все приложения на устройстве выполняются внутри одной виртуальной машины. В связи с чем требуется соблюдение определённых правил при именовании пакетов (pakage) и классов приложений.

Если полное имя класса (full qualified name) вашего приложения совпадёт с полным именем класса другого приложения, установленного на устройстве и находящегося в другом cod-файле, то ни ваше ни то приложение не запустятся с выдачей сообщения «Class com.company.superapp.blablabla.MyClass multiply defined».

В связи с чем рекомендую именовать файлы по названию главного пакета приложения. Например com_mycompany_bb_myapplication.cod. Очень маловероятно, что другое приложение от другого разработчика будет поставляться в файле с таким-же именем.

Если-же вы решаете сменить имя файлу существующего и распространяемого приложения по той или иной причине, то необходимо менять названия пакетов внутри приложения, чтобы избежать конфликта имён классов между вашим новым приложением и вашим-же приложением, которое было установлено ранее.

При создании обновлений для ваших программ всегда учитывайте внутреннюю структуру классов, чьи экземпляры были сохранены в PersistentStore предыдущими версиями вашего приложения. К примеру, если вы изменили структуру класса MyPersistableClass, чей экземпляр был сохранён в PersistentStore предыдущей версией вашего приложения, то после установки обновления пользователь получит сообщение об ошибке. Произойдет ClassCastException при попытке загрузить старый экземпляр класса из PersistentStore.

«Привязку» приложения к тому или иному устройcтву принято делать по уникальному номеру (device pin number), который есть у каждого устройства BlackBerry. При распространении приложений по системе «Try before buy» этот номер используется продавцом для генерации лицензии (регистрационного ключа).
Tags:
Hubs:
+17
Comments12

Articles

Change theme settings