Бомба для Android Market. Первый опыт

в 18:21, , рубрики: android, android development, android market, Google Play, Разработка под android, фриланс, метки: , , ,

У кого из вас, после появления смартфона возникала идея создать собственное приложение для него и покорить топы Android Market или AppStore?
Сколько читателей Хабра, после прочтения очередной статьи о разработке, вскакивало из-за компьютера и быстро ходило по комнате? Потому что адреналин и мысли бурлили, и не было сил сидеть? Или начинало скачивать Андроид или iOS SDK, чтобы начать свой первый проект?
Мое знакомство с Андроидом произошло задолго до того, как у меня появился первый смартфон. Я давно пишу на Java и использую IDE Eclipse. Поэтому, кода узнал о том, что Google создал ОС для мобильных устройств, тут же скачал SDK, построил и запустил в эмуляторе свой первый HelloWorld. Но дальше этого ритуального действия дело не пошло. Потом, спустя несколько лет появился он, мой первый смартфон.
Покупая его, я уже задумывался о том, что обязательно захочется создать для него что-нибудь свое.

Бомба для Android Market. Первый опыт

В этой статье я хочу рассказать вам свою историю. Историю создания приложения для Андроид, общения с фрилансерами и выпуска приложения на Маркет. Те, кому все это интересно, добро пожаловать под кат.

Идея приложения для Андроид появилась у меня после того, как мне рассказали про одну настольную игру. В этой игре заводится механическая бомба-игрушка и берется карточка с вопросом. После этого бомба запускается, а игроки должны по очереди называть слова на заданную тему, пока бомба не взорвалась.

Бомба для Android Market. Первый опыт

Сначала была идея реализовать подобную игру с взрывающейся бомбой и вопросами под Андроид. Но, как это не редко бывает, в процессе разработки появились новые идеи, и приложениние вместо одной игры стало включать в себя несколько. В итоге оно превратилось в «швейцарский нож» для вечеринок с друзьями. Но об этом позже. А пока что, с идеей простой игры я приступил собственно к ее реализации.

ПРОДИЗАЙН

Создав список заданий в XML и прикрутив пару Activities, я понял, что не хватает главного, а именно хорошего дизайна. Но мой предыдущий опыт показал, что рисовать я умею только диаграммы. А хороший дизайн, как известно, это залог успеха приложения. Я принял решение найти себе графического помощника на одном известном сайте российских фрилансеров. Нет, не так. На российском сайте фрилансеров. Так будет точнее, потому что встретившиеся мне фрилансеров жили и работали где угодно. И в России, и в Венеции, и в Тайланде. Описав, что мне нужно, а именно, несколько картинок для мобильной игры, я опубликовал объявление и стал выбирать. Разброс предложений меня приятно удивил. Хотя цены и отличались в несколько раз (от 500 до 4000 рублей), но большинство работ я мог себе позволить, несмотря на то, что собирался платить из собственного кармана. В итоге я выбрал одного из кандидатов.
Соображений, которыми я руководствовался, было несколько:

1. Портфолио мне показалось интересным
2. Незаоблачная цена
3. В том же городе, что и я
4. Девушка

Теперь я понимаю, что пункты 3 и 4 нужно было не принимать во внимание.
Общение наше шло не очень гладко, некоторые мои замечания были проигнорированы, но в итоге я получил главное меню с кнопками «Играть» и «Настройки» и сам игровой экран, на котором была изображена бомба с часовым механизмом. Сделав два Активити и прикрутив графику, повозившись с анимацией вращающейся стрелки, я получил сове первое работающее приложения. Задания показывались, бомба тикала и взрывалась.

Бомба для Android Market. Первый опыт

После этого пришло разочарование. Графика перестала радовать, и даже наоборот, стала раздражать меня. Игра стала казаться слишком простой, чтобы выкладывать ее на Маркет. Последний гвоздь в крышку гроба моего первого приложения вогнал тот факт, что первые же картинки, которые я нашел в поиске Гугла по словам «воздушные шарики», оказались картинками из моей игры. А я наивно предполагал, что все нарисовано специально для меня!
Более того, в первом задании фрилансеру было написано: изображения должны быть созданы с нуля, а не взяты из клип-арта. Я чувствовал себя немного обманутым, но не собирался класть мышку и клавиатуру на полку.

После того, как я понял, что будет из себя представлять новая версия моей программы (об этом будет рассказано ниже), я обратился к сайту по поиску фрилансеров во второй раз. Описав свою задачу, я получил некоторое количество откликов и выбрал нового кандидата для сотрудничества. Как выяснилось в процессе работы, между нами несколько часовых поясов, что впрочем не мешает взаимодействию. Выбор я производил по тому, насколько мне нравится портфолио, отсеивая фрилансеров с ценой, сильно выбивающейся из общей массы (наверное, они рисуют хорошо, но дорого). Отправив задание на пару экранов и получив результат, я понял, что тут дело пойдет гораздо лучше. И, не смотря на то, что у фрилансера не было опыта создания приложений для Android или iOS, он быстро понял, что мне требуется, и работа закипела.

Бомба для Android Market. Первый опыт

ПРОПРИЛОЖЕНИЕ

Я стал думать, как сделать приложение полезнее и привлекательнее. Вспоминая, как весело проходят вечеринки с друзьями за игрой в Мафию или Крокодила, я решил сделать приложение универсальным помощником для любителей таких игр. Таким образом появилось несколько разделов:
1. База игр для вечеринок с описаниями.
То качество игр, которые можно найти на сайтах и программах для мобильных устройств оставляет желать лучшего. В основной своей массе игры сводятся к заданиям «выпей больше», «облапай девушку друга» или «опозорься перед гостями». Поэтому в приложении игр не так много, но качество их высокое. Все описания написаны мной. Большинство игр я проверил на собственной шкуре.
2. Игра «Бомба» c заданиями. Про нее я уже говорил выше.
3. Бутылочка. Думаю, правила объяснять никому не надо. Бутылочка не просто крутится, но и показывает задания. Рассчитано на самую юную аудиторию :)
4. Крокодил. Это моя любимая игра. В приложении база слов и фраз, разделенных на два уровня сложности.

ПРОРАЗРАБОТКУ

Самую первую версию, в которой была только игра бомба и неудачный дизайн, я делал на «голом» Андроиде. В новой версии горение фитиля и взрыв бомбы состоял из двух десятков кадров. Покадровую анимацию такого набора картинок мне сделать не удалось. Приложение падало в эмуляторе в момент взрыва (заканчивалась память). А на телефоне запуск второго этапа анимации просто не запускался. В итоге, разделив фазу горения и взрыва на две части, я решил скрывать первое изображение и показывать второе и запускать его анимацию. Примерно в это время я узнал об AndEngine. Попробовав использовать эту библиотеку, я понял, что смогу реализовать графические части приложения гораздо проще и быстрее. Программа стала «весить» на 600 КБ больше, но зато я переписал анимацию бомбы и сделал вращение бутылочки. Так два из моих Activity стали наследниками BaseGameActivity.

Одной из фишек приложения была загрузка информации с сервера по HTTP. Мне хотелось, чтобы новые игры, задания для Крокодила и прочие данные прилетали к пользователю не после обновления программы, а почти сразу после того, как я добавлю их в базу на сервере. По началу я сделал сайт на WordPress, куда начал публиковать описания игр для вечеринок. А в приложение они загружались при помощи чтения RSS потока. Кому интересно, подробнее про парсинг можно почитать здесь. В дальнейшем, когда понадобилось получение других данных, я сделал сначала на Google App Engine (Java занал, поэтому было быстрее всего), а затем на php+MySQL (которые мне пришлось освоить в объеме, необходимом для решения этой задачи). Захостил вместе с сайтом о программе в виде одной странички на Majordomo. Этого хостера я могу поругать, но не в рамках этой статьи :) В итоге, приложение раз в сутки обращается к серверу и запрашивает новые данные. Если они есть, то в виде XML отсылаются обратно в приложение. Если пользователь живет с выключенным 3G и Wi-Fi, то с экрана about он может вызвать такое обновление самостоятельно, предварительно включив сеть.

Несколько слов о среде разработке:
Для написания кода я пользовался Eclipse. А для отладки запускал приложение в эмуляторе. Но потом обнаружил, что на телефоне, подключенном по USB, отладку можно вести так же успешно, а сама программа запускается в несколько раз быстрее. В дальнейшем я использовал эмулятор только для проверки приложения на других размерах экрана.
Картинки от дизайнеров приходили в виде cdr файлов. Использовать крякнутый Корел совсем не хотелось, но нужно было как-то делать из вектора PNG. На помощь пришел бесплатный векторный редактор InkScape. По началу я открывал кореловские файлы в InkScape, что получалось не всегда успешно. Затем стал просить присылать SVG, которые лучше поддерживались этим редактором. Им, на ряду с Gimp, я и продолжил пользоваться.
Все исходники хранились в Codespaces под SVN. После того, как тот сервер, где был мой код, упал на неделю, я переехал на GitHub, в закрытий платный аккаунт, а недавно на bitbucket, где вроде бы все тоже, но бесплатно, или за меньшие деньги.

ПРОПРОДАЖИ

Я решил выпустить только платную версию. Несмотря на то, что в большинстве статей негативно отзывались о доходах от платных приложениях, я все же решил попробовать. Тем более, что тип приложения предполагает, что им будут пользоваться от случая к случаю. То, есть когда нечем заняться вместе с друзьями, или на дне рождения, или на вечеринке… Есть такой гордый тип приложений, лежат себе тихо в телефоне и ждут момента, когда они будут полезны. Поэтому, ожидать ежедневной многочасовой работы, и, соответственно, показов рекламы, не приходилось. К тому же, я сам не люблю рекламу, и, если и кликаю на нее, то чаще всего по ошибке. И в добавок ко всему, у меня сложилось ощущение, что в AdMob, которую все рекомендуют, крутится только одно объявление «Обновите Скайп», которое ведет к какому-то трояну :) Поэтому, я сделал шаг навстречу цивилизованному рынку и установил минимальную цену $0,99 за свой скромный труд.

Ее покупают! Эта мысль радостно пронзила мой мозг, когда я увидел имена незнакомых людей и зелененькие кружочки рядом с ними в Google Checkout. И стал часто нажимать кнопку обновления в браузера. Так прошла неделя.
Бомба для Android Market. Первый опыт
Как говорил создатель пива, пельменей и кредитных карточек, это настоящий кайф — получить свой первый заработанный в собственном бизнесе рубль. За неделю у приложения было 7 продаж, и я примерно прикинул, что они идут по одной в день. В дальнейшем, оказалось, что продажи происходят нерегулярно: то густо, то пусто. Выпуск обновления стимулирует их, а смена категории (я пробовал переносить из категории «Игры/Другое» в «Приложения/Развлечения»)
Попытка рекламировать через AdMob с треском провалилась. Потраченные на рекламу деньги не были скомпенсированны соответствующими продажами. Позже я прочитал разумную мысли о том, что рекламировать имеет смысл бесплатное приложение а не платное. Так как реклама показывается только в бесплатном приложении, то переходить по ней будут в основном халявщики, которые ничего не купят. Примерно так и случилось.
Другой раскруткой приложения я не занимался, единственное, что сделал, это группу ВКонтакте, посвященную играм для вечеринок, где указал ссылку на свой сайт.
Очередным приятным моментом было появление положительного отзыва. Значит, то, что я делаю, кому-то нужно и полезно.

ПОСТСКРИПТУМ

Приложение живет на Android Market. К сожалению я не могу дать промокоды для Хабраузеров, так как в Android Market (теперь уже Google Play), в отличии от AppStore, их просто нет. В планах добавление таких игр, как Фанты, Мафия (распределение ролей) и периодическое пополнение базы игр и заданий.

Сейчас я в процессе разработки нового приложения (и уже не в одиночку). У нас накопился некоторый опыт работы с AndEngine, использование в приложении SVG, работу с ресурсами и организацию приложения в виде Activity и нескольких сцен. Если Хабросообществу будет интересно, то я напишу про это отдельную статью.

Автор: gflower

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js