Pull to refresh

ModeBot

Reading time6 min
Views6.6K


В данном посте хочу рассказать об истории рождения собственного детища-приложения для ОС Android.
Сознательно останавливаюсь на эмоциональной и организационной, а не технической составляющей процесса. Если почувствую интерес хабравчан к техническим деталям — посвящу этому отдельный материал.
Данный пост также ни в коем случае не является рекламой и пиаром, поэтому в пост сознательно не включены ссылки и графические материалы приложения с включенными в них ссылками и QR кодами.

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


Часть 1-я: Беременность


Забеременел я внезапно.

Но сначала предыстория.

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

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

При этом периодически возникали «промахи», порой я забывал выключить телефон (в результате чего мог продолжить утро, играя в куклы с дочерью), а еще чаще я забывал включить звук телефона утром и пропускал дневные звонки, когда фоновый шум уже не позволял услышать Ж-Ж-Ж-Ж от виброрежима.

Первая мысль была перепоручить кому-нибудь следить за состоянием моего телефона. Но ни супруга, ни тем более моя трехлетняя дочь не испытали восторга или энтузиазма по этому поводу.

И тут ко мне пришло озарение — это же Android, а значит эту задачу можно поручить ему!

Не долго думая, я полез в дебри Google Play. От увиденного я испытал культурный шок. Нет, приложений под мою задачу можно было приспособить несколько, но это означало поселить к себе в телефон либо монстра, который очень аппетитно смотрел из магазина на батарею телефона (от чего она, как мне показалось, заранее немножко села) и с которым можно договориться проведя час-другой в переговорах-настройке. Либо же это был набор однотипных страшненьких дизайном приложений, внешний вид которых вселил в меня неуверенность хочу ли я вообще такую программу.



Хочу.

Но все же не такую.

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

С этого момента можно считать, что беременность идет полным ходом.

Итак формализуем требования к будущему детищу:

  • Лаконичный и понятный интерфейс (хотелось бы интуитивный, но это в процессе использования только определится)
  • Отсутствие сложных сценариев для пользователя. В идеале возможность выполнять основные операции 3–4 нажатиями.
  • Минимальный аппетит к ресурсам телефона, а в частности к батарее.


Ну что ж, каким оно будет я уже начинаю понимать, пора придумывать детищу имя.

Ringer mode manager, Sound automate — первые варианты были просто предназначены для отпугивания потенциальных пользователей.

Еще пару дней раздумывания и вот оно! ModeBot. Кратко, ёмко, имеющее предпосылки к Android и субъективно приятно.

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

Часть 2-я: Рождение



Роды были тяжелыми.

Весь процесс был в новинку. На тот момент я имел большой опыт разработки маленьких и больших, десктопных и веб-приложений, системных и бухгалтерско-прикладных программ. Но так получилось, что Java и Eclipse, до этого момента существовали отдельно от меня.

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

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

То что по планам должно было произойти за пару дней, заняло около месяца работы по вечерам и урывками по выходным.

Ну что же — впереди нас ждало тестирование, и развитие приложения до стабильного состояния.

Часть 3-я: Учимся ходить



Ребенок падал.

А когда наконец пошел, то пытался побежать и снова падал.
А когда научился бегать, то мог убежать не в ту сторону.

Но в итоге удалось достичь поставленной цели. В основу программы легла простая концепция одиночных команд. Каждая команда звучит так «В такое-то время установить такой-то режим». В противовес многим похожим программам, которые работают по принципу установки периода перехода телефона в виброрежим, система одиночных команд оказалась более универсальной и простой в использовании. С ее помощью можно комбинировать такие сценарии как «Беззвучный режим -> Виброрежим -> Звуковой режим» и прочие. И интерфейс получается элементарно простым и понятным.



Управление заданиями упрощено и стандартизовано. Область каждого задания разбитта на 3 части. Все действия выполняются кратким, либо долгим нажатием на эти области.

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

Прошел примерно месяц с начала разработки и у Алексея как раз истекли его 2 дня. Не успев поиронизировать по этому поводу, я понял, что не стоит.

Подавив стойкую нелюбовь к Android-телефонам он сидел за изучением гайдлайнов на официальном сайте Google и в итоге предоставил мне не концепт, а полный набор графики в различных разрешениях и банер для размещения в Google Play.






На тот момент мой малыш уже крепко стоял на ногах, проворно выполнял порученные задания и в то же время никак не докучал и не проявлял себя, когда он не был нужен.

Теперь путь лежал только в одном направлении — Google play.

Часть 4-я: Растем и развиваемся



Первая встреча с большим миром была циничной.

Сначала я хотел сделать программу бесплатной, но зная по опыту, что энтузиазм сам по себе не вечен, а вместе с его пропажей останавливается и развитие программы принял решение добавить монетизацию. Размещение в приложении рекламы противоречит самой сути ModeBot — незаметно и с минимальным потреблением ресурсов выполнять свои задачи. И я покупаю аккаунт разработчика и делаю публикацию по минимальной цене в 1 доллар.

День, два, три, месяц — скачиваний нет. Хорошо, делаем вывод, что само по себе признание не приходит.

На сайте 4pda в рамках поддержки разработчиков утром публикую обзор приложения. И практически онлайн слежу за комментариями и скачиваниями.

В течение дня — 50 скачиваний. На тот момент для меня это было просто гигантским числом. К концу дня, наметив дорогу в магазин за шампанским, чтобы отпраздновать сие событие, я вижу свежевыложенный apk на форуме того же 4pda.

Поход в магазин отложен.

По итогам этого и следующих дней число скачиваний apk на форуме в 6 раз превысило число скачиваний из Google Play. Покупки приостановились, несмотря на выход на 8-е место в ТОП в категории персонализация. Позднее категория была изменена на Инструменты.

Отзывы в маркете и на форуме практически все очень высокие. Приложение оправдало функциональные ожидания.

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

Ну что же, резонно. На основе утекшей версии рождается ModeBot Free. В основную же версию программы добавляется «Белый список» и защита через проверку на серверах лицензирования Google и перевод на английский язык.

Публикация на тематических американских форумах (xda-developers.com, android.net и пр.) практически не принесла результата. На данный момент зарубежных скачиваний около 5%. Публикация Вконтакте набрала лайки, но не переходы, похоже что там люди ставят их автоматически.

На данный момент мой Андроидо-малыш уверенно ходит в «детский сад». Повышается стабильность работы, снижается потребление ресурсов и добавляются новые функции. Однако любые изменения вносятся только если они соответствуют первоначальным принципам — легкость, ясность и стабильность.



Количество скачиваний пока небольшое, но стабильное, аккаунт разработчика окупился.
Есть активные поклонники программы из разных стран, которые дают хорошую обратную связь.
На данный момент рейтинг программы 4,58. Более 80% установок являются активными.

Ну что же, готовимся «пойти в школу» — ведь мы только начали свое развитие.
Tags:
Hubs:
Total votes 38: ↑23 and ↓15+8
Comments10

Articles