Pull to refresh

Очередная история собственного проекта или «Мотивируй меня!»

Reading time 9 min
Views 14K
Эта публикация — история развития моего собственного маленького проекта от зарождения идеи до первой рабочей версии, выложенной в Google Play, которую я попытался разбавить полезными советами. Посвящается всем, кого (как и меня самого) чужой пример способен вдохновить на собственные пусть и небольшие подвиги.

История моего проекта начинается не с идеи, а с сильной мотивации — со случая, из-за которого я захотел во что бы то ни стало выпустить свой собственный проект. Всему виной оказался старый друг, бывший одногруппник, который несколько месяцев назад попросил написать для него небольшое приложение на Android (Саня, если читаешь это, большое тебе спасибо!). Пара недель — и приложение выложено, деньги получены, но на душе остался неприятный осадок. Учились вместе, выпустились вместе, особо глупее я вроде не был, но он пытается развивать и продвигать свои проекты, а я трачу время на чужие. Почему? Взвесив все за и против, я пришел к выводу, что тоже на кое-что способен и решил доказать это на деле (хотя бы самому себе).

Решение заняться собственным проектом принято – полдела сделано, осталось только сгенерировать идею и реализовать ее (пустяк). Часа 4 ближайшего вечера я потратил на то, чтобы понять, что конкретно буду делать. Условия были поставлены вполне очевидные – проект должен быть простой (чтобы можно было потянуть в одиночку и чтобы заряда бодрости до конца хватило) и хотя бы потенциально полезный людям (объясните мне, зачем писать приложение, которое нафиг никому не нужно?). Как водится, за все часы усиленного обдумывания меня не посетила ни одна светлая мысль, но стоило только лечь спать, как пришла идея с кучей деталей и даже способом монетизации. Хорошо, что блокнот был под рукой, и я пересилил себя и сделал необходимые пометки (иначе утром бы гарантировано ничего не вспомнилось). В такие моменты невольно начинаешь верить советам типа “всегда носи с собой блокнот и ручку, чтобы записать идею” из пошлых статей об успехе.

Итак, барабанная дробь! Мобильное приложение для показа мотивирующих цитат через определенный промежуток времени! Да, ничего принципиально нового – все те же цитаты из мотивирующих пабликов и умных книжек. Но если задуматься, в чем проблема мотивирующих групп в социальных сетях? По-моему, именно в том, что они в социальных сетях. Вместо того, чтобы получить порцию мотивации и заняться делом, подписчик продолжает листать группу или же уходит в другую и начинает смотреть фотографии котиков. Не очень способствует достижению цели, не так ли? А что если сделать так, чтобы цитаты сами приходили раз в полчаса/час и не давать пользователю возможность листать оду цитату за другой? Может что-то и получится.

Что ж, идея есть и она признана потенциально не бесполезной. Нужно как можно быстрее браться за дело, пока не перехотелось. По этому поводу даже кто-то правило 72 часов придумал. Трудно говорить на счет его справедливости, но на собственном опыте проверено – чем дольше откладывать свою идею, тем меньше вероятность вообще начать что то делать (не говоря уже о том, чтобы довести до конца).

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

Для своего проекта я выделил следующие требования:
  1. Возможность выбирать промежуток времени, в котором будут появляться цитаты и задержку между двумя появлениями. Сомнительно, что кого-то можно положительно мотивировать, разбудив цитатой вроде «Время не любит, когда его тратят впустую»;
  2. Возможность выбирать темы цитат. Yandex Wordstat показал, что наиболее популярна мотивация на успех, саморазвитие, спорт и похудение. Очень вероятно, что пользователя будет интересовать только одна из указанных тем, так зачем же ему показывать все? Правда реалии оказались таковы, что пришлось объединить успех и саморазвитие в одну тему, а спорт и похудение в другую. Всему виной невозможность четко разграничить темы и небольшое количество цитат, попадающееся в сети;
  3. Возможность добавлять собственные цитаты. Подозреваю, что я не в состоянии найти все возможные цитаты. А некоторые из тех, что найду и отброшу, посчитав неинтересными, могут оказаться полезными другим людям. Добавление собственных цитат должно исправить это положение, а так же продлить жизнь проекту, если я перестану следить за обновлением цитат;
  4. Часть цитат должна сохраняться на устройстве пользователя, а часть на сервере. Таким образом, приложением можно пользоваться и без подключения к интернету, а для того, чтобы доставить новый набор цитат пользователю, не нужно выпускать обновление.


Этим набором требований я и ограничился. Тогда этого казалось вполне достаточно, но теперь уже кажется необходимым – добавить обновление локальной базы цитат, чтобы без подключения к интернету пользователь мог видеть максимально свежие цитаты. Но, как я уже говорил выше, нельзя давать волю внутреннему перфекционисту. Поэтому, эта хотелка осталась для следующей версии (как и многие другие).

Свое тех. задание тут выкладывать не буду в целях экономии места.

На следующем шаге я занялся самой сложной (для меня) проблемой – дизайном. Про людей, у которых проблемы с музыкальным слухом говорят “медведь на ногу наступил”. Не знаю, кто и на что мне наступил, но разрабатывать дизайны я категорически не умею. Единственная надежда была на вошедший в моду минимализм и flat дизайн.

Правильно подобрать цвета помог отличный сервис Color Scheme (подозреваю, что при желании можно найти кучу аналогов). Он не только помогает подобрать цвета по основному выбранному цвету, но и показывает пару примеров оформления сайта в выбранной цветовой схеме. Ну а по готовому дизайну сайта не составляет проблем нарисовать нечто подобное для мобильного приложения. Иконки были либо позаимствованы из Bootstrap, либо выполнены его в минималистичном стиле. И, конечно же, я не побрезговал советом, который дал однажды знакомый дизайнер. Звучит он просто: «Ни в коем случае не играй со шрифтами! Ничто так сильно не выдает неопытность дизайнера, как неправильно подобранный шрифт».

Так же, не стоит забывать, что вашим приложением будут пользоваться люди и оно должно не только красиво выглядеть, но и быть удобным и понятным в использовании. Строго рекомендуется скачать и посмотреть топовые приложения из google play, ближайшие аналоги вашего детища (если они есть) и посмотреть, как оформлен тот или иной функционал. Необязательно повторять чужие идеи, главное сделать не хуже, чем у коллег по цеху.

Наиболее частые ошибки в этом плане – добавление перелистывания страниц и удаления смахиванием без малейшего намека на то, что этот функционал в вашем приложении предусмотрен. То есть, пользователь переходит на экран, где можно перелистывать страницы, но не видит ни одного намека на это – простой экран с текстом, картинками, элементами управления. Как он должен догадаться, что от него требуется сделать жест «перелистывание»? Уже давно есть библиотеки, добавляющие индикаторы страниц в самых разных представлениях, в крайнем случае, можно просто демонстративно с анимацией перелистывать с n-ой страницы на первую, но, тем не менее, многие этот аспект просто игнорируют.

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

В плане визуального оформления вот что у меня в итоге получилось:
image

image



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

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

Во-первых, минимальная поддерживаемая версия android. Я пошел на поводу у стадного инстинкта и решил, что мой проект будет поддерживать все android устройства, начиная с версии 2.3. Из-за этого пришлось разгрести несколько дополнительных проблем (в моем случае не так уж и много, но в больших проектах затруднения могут быть гораздо серьезнее). Стоит ли усложнение проекта (а следовательно, времени его разработки, веса приложения за счет support библиотек) тех дополнительных пользователей, которых мы можем привлечь? Решать не мне, но просто для информации: на данный момент активных пользователей с андроидом 2.3.3 – 2.3.7 насчитывается около 5.6%, и это число с каждым месяцем уменьшается (пруф).

Во-вторых, использование сторонних библиотек. Не стоит изобретать велосипеды, не стоит писать свою реализацию готового функционала из чистого интереса. Может так статься, что после такой небольшой подзадачи вы просто выдохнетесь и не доведете проект до конца (а ведь в данном случае, именно это и является нашей главной задачей). Гуглите, используйте готовые библиотеки, если они есть, заимствуйте код из open-source проектов (не бездумно конечно). Делайте все, чтобы уменьшить время на разработку. Так же стоит поступать и при коммерческой инновационной разработке. Чем быстрее вы покажете публике свою разработку (пускай даже полу рабочий прототип), тем быстрее получите обратную связь и поймете, интересен ли кому-либо ваш проект (читай: потратите меньше денег на неперспективную разработку).

Параллельно с разработкой мне нужно было, чтобы кто-то набрал базу мотивирующих цитат. За помощью попытался обратиться к fl.ru. Задачу поставил в стиле «собрать по 500 цитат на каждую тему, источник не важен, совсем затертые фразы отбрасывать». Рассудил, что 500 цитат на каждую тему будет более чем достаточно для старта (как поступить потом – вопрос десятый), если в сети вообще возможно найти 500 РАЗНЫХ мотивирующих цитат. Ценники, которые выставили местные, просто порадовали — от 1 000р до 20 000р. Причем, половина ответивших тут же куда-то слились и не отвечали ни на какие вопросы.

Здраво рассудив, что на простую работу – листание пабликов во вконтакте и чтение цитат (большая часть населения страны занимается этим бесплатно) можно взять какого-нибудь школьника/студента-первокурсника за гораздо меньшую цену, я решил отказаться от господ фрилансеров. С тех пор нисколько об этом не жалею. Цитаты получил, символическую сумму заплатил, и я и студент довольны как слоны.

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

С монетизацией все просто. Сомнительно, что кто-то решится отдавать свои кровные за нечто напоминающее банальный цитатник. Поэтому, выход один – реклама. Единственный приемлемый для моего приложения (попробуйте нажиться на рекламе в приложении, которое почти всегда закрыто) и наименее раздражающий способ внедрения рекламы – бонусы за просмотры. Пользователю чего-то остро не хватает в приложении, а для того, чтобы это получить, нужно либо подождать несколько часов, либо посмотреть рекламный ролик и получить желаемое мгновенно. Обычно пользователь предпочитает второй способ. А раз он сам решил, что готов посмотреть рекламу ради бонуса, она его не так сильно раздражает.

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

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

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

В первую очередь интересовало, как люди начнут пользоваться моим приложением, возникнут ли у них вопросы или осложнения. Тут главное — помнить о цели, с которой отдаешь приложение на тестирование. Если хотя бы 3 из 5 опрошенных совершают одну и ту же ошибку при пользовании приложением, то эта ошибка разработчика, а не пользователя. Этот этап был пройден без проблем.

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

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

В первую очередь, как бы ни банально это звучало, это опыт. Я имею в виду не опыт решения технических проблем (хотя и он, безусловно, был), а опыт независимой разработки. За пару месяцев мне пришлось побывать в несколько упрощенных ролях ПМ’а, дизайнера, работодателя и контент-менеджера. Еще через некоторое время, у меня появится первый опыт в продвижении продукта. Даже если вы не собираетесь уходить от работодателя и начинать свое дело, этот опыт поможет лучше понимать все процессы, происходящие во время развития проекта. По крайней мере, вы будете терпимее относится к смене требований и внедрению нового дизайна.

Во-вторых, вы получаете еще одно приложение себе в портфолио (а уж если оно первое в вашем портфолио, то тут и говорить не о чем). Да, оно может быть не очень сложным и безуспешным в плане привлечения пользователей и денег, но оно полностью ваше. Идея, дизайн, код – проект от начала и до конца реализован вами. Если вы это сделали, то вы, хотя бы слегка, технически подкованы. Если у вас получился хороший дизайн и приложение удобно в использовании, значит можно не только передавать вам макеты дизайнера, но и проконсультироваться по поводу того, как лучше добавить ту или иную деталь (до сих пор помню безуспешные воины в стиле "- Это не пойдет, либо не влезет, либо будет слишком мелко! -Просто сделай, а там посмотрим".). Ну и наконец, если вы без мотивации в виде денег реализовали проект, то, что же вы можете создать за деньги?

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

У меня все, спасибо, что прочитали этот длиннопост. Надеюсь, хоть кому-то он оказался полезным. Если кому-нибудь будет интересно, позже дополню его экспериментами с продвижением их результатами.
Tags:
Hubs:
+9
Comments 14
Comments Comments 14

Articles