ModeBot



    В данном посте хочу рассказать об истории рождения собственного детища-приложения для ОС 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% установок являются активными.

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

    Комментарии 10

      +4
      Хабракат на самом интересном месте :)
        0
        Как раз на неделе искал, в итоге остановился на RingSheduler, еще было SmartProfiles, из мощных находил MyProfiles и ProfileScheduler.
          0
          Надеюсь эта будет лучше! (не успел дописать)
            0
            Надеюсь, хотя цели обскакать конкуренов нет.
            Хочется, чтобы приложением было просто приятно пользоваться, как самому, так и другим людям.
            Обычно андроид приложения часто раздуваются функционалом в ущерб простоте и удобству.
            Второй телефон у меня яблочный, там подход часто противоположный.
            Вот и хочется объединить эти подходы, не простым копированием — а переосмыслением.
          0
          Установил фри версию.
          Годнота! Благодарности!
          Только подскажите как удалить пункт расписания?
            0
            Простое нажатие на переключатель активности — отключить пункт.
            Долгое нажатие — удалить.
            0
            Мне кажется на этом скриншоте иконки событий слишком яркие, большие и не очень вписываются в концепцию дизайна, но это моё имхо :)
              0
              Размеры иконок «вымучены» с учетом того, чтобы пользователь не целился и не всматривался, кроме того у всех элементов в строке активная зона больше чем сами элементы — чтобы увеличить вероятность попадания пальца в нужный элемент.

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

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

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.