Дааа.. тяжелый труд – копать на поле кукурузу… В этот раз я расскажу о своем первом опыте разработки коммерческих приложений для Android и о том, как мне, все же, удалось попасть на Android Market (ну не мне лично, а моему приложению, конечно же).

Итак… А началось все давно, а точнее сказать тогда, когда я начал писать статьи о программировании для Palm WebOS. В ходе написания, собственно, статей, появилась потребность в обучении на каких-то реальных примерах и как раз один из моих знакомых рассказал о том, что запускает сервис файлообмена для мобильных устройств. Файлы планировалось загружать на сервер и отсылать URL загруженного файла по SMS. Такой вот нехитрый способ обмениваться, например, фотографиями с мобильного телефона.К этому моменту уже была готова Web-based версия сервиса и я предложил написать к нему еще и приложение для Palm WebOS. На тот момент мой опыт разработки для Palm WebOS был без малого 8 рабочих дней (я заканчивал 8ю статью из этого цикла, статьи писал по одной в день). Для того, чтобы по-бвстрому слепить приложение для WebOS у меня ушло около 15ти часов. И еще около двух часов чтобы написать PHP-скрипт, который бы использовался для отправки файлов этим приложением и выдавал результаты в формате JSON.

После того, как WebOS версия была закончена, возник вопрос о разработке подобных клиентов для других мобильных платформ. Довльно быстро были сделаны версии для Windows Mobile и Maemo. Версия для Windows Mobile работала как shell extension для Inbox и меню контактов и просто открывала сайт в Internet Explorer c уже заполненным полем получателя. Версия же для Maemo работала аналогично с версией для WebOS – отсылала файл на сервер и получала JSON-ответ от скрипта ну и дальше по обстоятельствам.

Затем очередь дошла до Android. О да, это еще та эпопея…

Во-первых, версий Android’а, доступных и повсеместно используемых на рынке целых три – 1.5, 1.6, 2.0.

Для всех этих трех версий используется различное API для работы с контактами и то что успешно работает в версии 1.5 совсем отказывается что ли-бо выполнять в версии 2.0. Так же история обстоит и с API для отправки SMS.

Как эти проблемы решались в техническом плане я расскажу в отдельном посте (планирую, по крайней мере). Сейчас же могу сказать только то, что все пришлось делать через Reflection. Криво-косо, но оно работает, к тому же даже вполне вменяемо.

Дальше… Отправка файлов. Для этой цели пришлось использовать библиотеку httpmime и apache-mime4j с сайта Apace. Хвала Супермарио, но Java-таки кросс-платформенна 🙂 – JAR файлы с сайта Apache чудесно заработали и для Android без каких-либо лишних теложвижений.

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

На реализацию, тестирование, подготовку, различные доделки-переделки ушло ну… недели две рабочего времени минимум. Может больше.

Дальше… Графика. А точнее иконка. Почитав описание Android Application Icon Guidelines я понял что моей мозговой активности явно недостаточно чтобы слепить что-то удобоваримое. И я решил заказать графику (ну вот да, иконку) на фрилансерском сайте, а точнее на free-lance.ru

На самом деле хотелось дешево и сердито, а полоучилось.. ну, не дешево, и даже не сердито. Просто получилось! На проект откликнулось двое фрилансеров. Первый предложил 4000 рублей (не знаю сколько это денег, я в русских тугриках не специалист. Но что-то мне подсказывает что это больше 100 баксов ибо в уме почему-то всплывает цифра 30 – приблизительно столько просят за одного американского президента). 100 баксов это как-то… печально, учитывая что разработку я финансирую из своего кармана, а президентов я как бы и не рисую, а зарабатываю трудом праведным (вполне). Второй фрилансер (барышня) предложила слеить мне иконку за 19 баксов. Ок, более менее приемлемо (хотя и не “за еду”, как я рассчитывал). К тому же обещано было, что иконка будет сделана за сутки (круть, люблю когда быстро). Я предложил что да, если будет сделана за сутки, то доплачу еще 10% (как по мне, вполне человеческий способ стимулирования. На мелких проектах, конечно, эффект мало заметен, но обычно вполне неплохо работает когда сроки важны).

И о чудо! В три часа ночи иконка сделана! Это прям праздник какой-то! Мне последние два раза очень везет на фрилансеров. Получил я в результате PNG файл 48×48 и EPS-файл с вектором.

Положил я этот PNG файл в папку drawables своего проекта, но фак! Почему-то он не виден на эмуляторе! Как была зеленая с роботом, так и осталась! Детальное изучение проблемы под микроскопом показало что для различных разрешений экрана нужны иконки разного размера (ну и скажите мне, где это написано в гайдлайнах?). После манипуляций с фотошопом, на которые мозговой активности у меня, все же, хватило, были созданы PNG-файл размером 36×36 и 72×72, которые затем перекочевали в нужные папки ресурсов.

Пересобрал и о, да! Иконка в порядке. Можно постить на Android Market!

Но не тут-то было…

При попытке загрузить сборку Android Market мне объяснил что я не прав и аргументировал это тем, что неймспейс в моем приложении начинается с com.android, а так делать нельзя. Странно, почему я это узнаю ПОСЛЕ а не ДО загрузки сборки? Пришлось исправлять…

Затем мне объяснили что я еще более неправ, потому что я как-то неудачно родился не в США, а в Украине. Для того, чтобы иметь возможность постить платные приложения, нужна учетка в Google Checkout, а зарегистрировать ее можно только (если мне память не изменяет) в 7ми или 8ми странах. Украины, естественно, в списке нет. Ну вот это уже вобще свинство! Я столько работал, чтобы вот так все бросить на пол-пути? Ну уж нет! Индейцы не ищут легких путей! И пошел я… нет, не нафик, пошел я на сервис SlideMe, который является альтернативой Android Market и также имеет свое приложение-клиент, с помощью которого можно покупать другие приложения.

К счастью, на SlideMe более лояльно относятся к разработчикам из других стран и я довольно быстро завел себе там учетку и разместил приложение. Единственное что меня немного смущает, в описании сервиса они говорят, что для получения выплат надо  будет заполнить кое-какие документы для налоговой США, но это потом. Сейчас же для меня главное то, что приложение приняли и оно доступно для заргузки, а еще больше приятно то, что оно доступно для покупки 🙂 Таки вот оно! SMSMyFile – отправляем файлы через SMS!

Порадовал тот факт, что на SlideMe можно не только указать описание приложения, а еще и выложить скриншоты, а главное видео! За 5 минут сварганил видео с помощью CamStudio (бесплатная кстати, я ею и скринкасты все записываю) и выложил на YouTube. Ссылку – на SlideMe.

Для того, чтобы получать платежи со SlideMe, надо указать как минимум карту, на которую вы будете получать оплату. Здесь мне помогла MasterCard, полученная, в свое время, от RentACoder. Она, в последнее время, меня везде спасает 🙂

Карточку, к тому же, надо верифицировать. У меня пока сделать этого не получилось, пришлось писать в службу поддержки. Вот сутки уже жду ответа…

Если вы хотите продавать свое приложение с помощью SlideMe, надо сделать некоторые изменения в коде:

  • Добавить JAR-файл в проект (доступен для загрузки на SlideMe)
  • Добавить Activity в проект (код для вставки доступен там же)
  • Добавить пару строк в манифест приложения – зарегистрировать там Activity и пару привелегий для приложения.

Более подробно об этом можно узнать здесь. На внесение изменений у меня ушло 5 минут, что, на самом деле, очень классно.

ОК, со SlideMe закончили. Следующий на очереди AndAppStore.

AndAppStore – еще одна площадка для продажи Android-приложений. Регистрация там тоже несложная. Получать оплату можно через Google Checkout (будь он неладен) и PayPal.

Все классно, но бесит одно – процесс подготовки приложения к публикации ну очень муторный…

Сначала надо создать профайл для приложения на сайте, потом сделать API Key для приложения, получить Application ID, затем сгенерировать какой-то приватный ключ.

При запуске приложения надо получить имя пользователя, затем каким-то хитрым образом раскодировать лицензионный ключ… в общем все как-то муторно и до конца я со всем еще не разобрался (хотя предлагают скачать демо-приложение и исходники, чейчас как раз в них ковыряюсь, может прозрение наступит). Все как-то сложно, не для плоских умов. В общем, публикация на AndAppStore еще в процессе.

Сервис позволяет указать описание для приложения (чистый текст, без HTML) и загрузить скриншоты. Какие еще плюшки – будет видно дальше.

Итак, два сервиса нашел, но меня никак не покидало чувство, что с Android Market’ом я “что-то делаю не так”. Пошел еще раз регистрировать приложение… Повводил значения ао все поля, долго смотрел на форму регистрации и ссылку на Google Checkout… Затем, все же, пошел на форму регистрации Merchant Account’а в Google Checkout. На эту форму тоже смотрел долго пока, наконец, меня не осенило…

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

В качетсве адреса указал адрес банка, выдавшего мне карту от RentACoder’а. Ну и номер самой карты. И о чудо! Зарегистрировался!

Это позволило мне добавить приложение в Android Market. Цену для приложения указал символическую – $0.99 (а что, все так делают).

Android Market позволяет указать короткое описание приложения (50 символов), обычное описание приложения (300 символов – мало вобще-то) и загрузить скриншоты. Скриншотов должно быть обязательно два (или вобще ни одного). Еще можно загрузить промо-картинку 180×120.

Итоги

  • Потрачено на регистрацию: 1 сутки
  • Зарегистрировался в: SlideMe, Android Market, AndAppStore
  • Получилось запостить приложение в: SlideMe, Android Market
  • Продаж в SlideMe за первые сутки: 0
  • Продаж в Android Market за первые сутки: 10
  • Возвратов в Android Market за первые сутки: 4
  • Левелап получен: да 🙂

Приложение

smsmyfile-1.0.0-screenshot

Previous ArticleNext Article
Технический директор IT-Dimension, компании-разработчика кросс-платформенного программного обеспечения

This post has 17 Comments

17
  1. Познавательно и с эмоциями, куда же без этого:-) Спасибо.

  2. Спасибо, очень познавательно! Есть вероятность, что нужно будет пройти тот же путь.

  3. На карту, которую регали в Android Market деньги пробовали переводить или они сразу туда поступают после покупок? И еще вопрос: каким образом деньги на PayPal вам переводят? Насколько я знаю ни Россия, ни Украина
    платежи не принимает.

    Спасибо за ответ.

  4. 1. В Android Market (а точнее в Google Checkout) регистрируется банковский счет, а не карта. У Payoneer есть услуга Virtual Bank Account – вот я его использовал. Оплата перечисляется автоматически каждый день (с задержкой где-то в 2е суток).
    С PayPal тот же финт ушами. Virtual Bank Account стоит $20 в год.

  5. Спасибо, наконец-то кто-то додумался как выводить деньги с Android Market. Теперь тоже закажу себе карту Payonner. Если не возражаешь я тебе потом напишу, если вдруг что не будет получаться, ты ведь уже бабло получаешь.

  6. Спасибо за отличный пост. А за остальные версии приложений тоже деньги брали? Каков был доход от них относительно андроида?

  7. Вопрос по карте, я заказал карту Пэйонер от Odesk, ща жду пока придет и потом нужна будет активация, вопрос, услуга Virtual Bank Account появится после активации карты? А то пока я еще ничего не вижу кроме последних четырех цифр карта, а адрес банка откуда брать? Придет в конверте вместе с картой?

  8. Я думаю по поводу Virtual Bank Account лучше отписать в службу поддержки и попросить активировать. Она не сразу доступна.

  9. Спасибо за отличный пост. А за остальные версии приложений тоже деньги брали? Каков был доход от них относительно андроида?

    Для WebOS приложение бесплатно (по крайней мере сейчас). С WebOS очень много пользователей пришло, вполне возможно, что из-за бесплатности приложения.
    Для WM тоже пока бесплатная версия, как shell extension – когда сделаем stand-alone программулину, то думаю выложить на Windows Marketplace for Mobile

  10. Опиши лучше путь в пальмовский магазин. Пытался зарегистрироваться – в списке нету России. И что делать? Как снимать деньги? Платформа то интересная.
    P.S – спасибо за инфу

  11. Обязательно опишу. Сейчас как раз регистрацией в нем и занимаюсь. Там все еще более хитро

  12. буду очень ждать. А с вами как можно связаться?

  13. Не могли бы вы, помочь, начинающему разработчику, и написать каким образом вы работали с SMS из-под Android 1.5??? Заранее спасибо!

  14. Скажите пожалуйста, насколько будет ораничена ежемесячная сумма выплат если пользовать Ваш метод?? спс

Leave a Reply

Your email address will not be published. Required fields are marked *

A.

Android Icon Design Guidelines

Недавно появилась очень интересная информация для разработчиков мобильных приложений на платформе Android. Это Icon Design Guidelnes – документ, описывающий правила создания иконок для Android-приложений. Этот документ содержит инструкции по созданию иконок для Launcher, меню, строки состояния, списков, а также описание цветовых палитр, которые должны использоваться при создании иконок.

Android Launcher Icon

Кроме, собственно, инструкции по созданию своих иконок, документ содержит информацию по использованию стандартных иконок, которые идут в поставке Android OS.

А еще там есть Android Icon Templates Pack – набор готовых иконок и стилей для Photoshop и Illustrator, которые помогут создать иконки для Android-приложений.

У.

Установка Android SDK 1.0 на HTC Touch/Vogue

Давно уже пора счастливым обладателям ряда телефонов от HTC (в частности на процессорах MSM7500, к примеру Touch) начать наслаждаться прелестями Андроида не в эмуляторах, а буквально в своих руках — на экранах своих же телефонов. Как? Совершенно не сложно!

Основную работу по портировании андроида на плафторму в данный момент ведет вот этот товарищ. На его же странице можно скачать архив с последней сборкой Андроида (а инструкции по установке читайте чуть ниже).
Еще один вариант — скачать установочный .cab файл вот с этой страницы. Тут все просто — запустили файл и готово. Далее андроид запускается из Start->Programs->harret. Минусы этого варианта — каб файл собирается из того, что выкладывают по предыдущей ссылки — что частенько является свежее и стабильнее.

Оба метода установки абсолютно безопасны для вашей Windows Mobile 6.1 и текущих данных на телефоне, так что можете спокойно проводить эксперименты. Основное требование — 256 мб свободного места на карточке после копирования файлов.

Установка вручную:

  • Скачать http://it029000.massey.ac.nz/vogue/android-new.zip раззипить.
  • Разархировать вручную все три .gz файла (initrd.gz, system.gz и data.gz). Удалите оставшиеся *.gz файлы.
  • В итоге мы получим initrd, system.img, data.img
  • В файле default.txt поменять «initrd.gz» на «initrd»
  • Как-нибудь скопируйте все получившиеся файлы с компьютера в корневую директорию SD карточки (к примеру через Bluetooth)
  • Запускайте андроид — SDCard/harret.exe, и жмите Run.

Телефоны работающие с этой сборкой:
Несколько моделей от HTC, работающие на процессоре MSM7500:
HTC Libra 100: HTC S720, HTC 5800, Verizon SMT5800 / XV5800,
HTC Titan 100: Verizon XV6800, HTC/PPC 6800, HTC P4000
HTC Vogue 100: HTC Touch P3050
HTC Vogue: Verizon Touch XV6900
HTC Iris 100: HTC S640
HTC Touch Diamond

(информация с www.pdadb.net)
Нет гарантии что на этих телефонах эта сборка андроида заведется — она заточена именно под Vogue, но попробывать определенно стоит.
Для менее удачливых обладателей HTC Elf (он же европейский Touch с процессором OMAP850) обладающих базовыми знаниями ARM Linux — проходите, читайте, пробуйте 🙂

Что в итоге можно получить:
Вполне себе работающую систему, очень похожую на то что показывали нам в видео о G1.

Maps — полноценный гугл мапс. Довольно отполированный — я не нашел никаких недочетов. Разве что у моего не было street view. В остальном — отменно работает. Пользоваться, лично мне, приятнее чем на браузером айфона — нет необходимости двумя пальцами менять зум 🙂 А еще режим My Location показывает точечку какую-то в Поло Альто, она на тот момент ехала по дороге. Интересно — чья-то жизнь!

Браузер — очень приятно пользоваться. Шустрый, с классным и функциональным зумом, интересными находками в интерфейсе. Действительно приятные эффекты. Поддержка большого количества окошек–табов (имплементация примерно как в мобайл-сафари).
В принципе нареканий нет. Странички типа главной Лепры (большая и тяжеленная страница с кучей больших картинок) не тормозят, плавно скролятся по движению пальцем, зумятся, и так далее. Интернетом пользоваться приятно и интересно!

Оно посылает смски, они доходят — ура!

В моей сборке что–то не так с извещениями. К примеру, приходит смска — включается вибрация и больше ее не выключишь кроме как перезагрузкой. То же самое с входящими звонками. Всё исходящее — работает нормально. Звуки тоже, так что проблема именно в вибрации не вызванной напрямую пользователем.

Так же у меня там были установлены следующие приложения: камера (как в эмуляторе, так же не работает), калькулятор, ssh клиент (ура!), девелоперская информация и настройки, глобус с тенью ползущей, будильник (очень классный, с разными «скинами»), аудио плеер, смотрелка картинок.

Так как почему–то не работает sd карточка (странно!) — музыку и смотрелку картинок тестировать нечем.

Из глюков — тач–клавиутура выглядит не очень (но пользоваться вполне можно) и вибрирует при нажатии на кнопочки, что довольно странно и уверен будет очень скоро исправлено. Шрифты не всегда помещаются на кнопочки. Ну а кроме того что описал выше — особых багов в системе пока не заметил.

Еще тут говорят что на эту сборку можно ставить приложения без особых проблем — а их в сети уже буквально сотни и сотни.

Взято с хабра