Продолжение истории о создании Patrolife — «самой крутой и удобной системе персонального gps мониторинга».
Пользуясь случаем хотим поблагодарить Хабрахабр за программу поддержки стартапов.
Oб изобретательстве велосипедов
Смирившись с суровой реальностью, мы взяли в руки Гугл. С тех пор, как мы констатировали отсутствие путных вариантов на рынке, прошло довольно много времени и ситуация могла измениться. Вернее даже, она не могла не измениться, учитывая где, когда и с какой скоростью мы живем.
На этот раз все выглядело гораздо оптимистичнее: трекеров стало больше, они стали более функциональны и компактны. В конце концов, для нашей тестирования системы был избран GL-200 производства Queclink. Несколько экземпляров оного и были приобретены.
Вскоре такой выбор нас порадовал: по своим техническим характеристикам эта штука оказалась вполне достойной возложенной на нее миссии.
Трекер достаточно миниатюрный, чтобы поместиться в карман. Периодом отправки данных можно управлять дистанционно. Да и время работы аппарата оказалось вполне приемлемым. В нашей системе можно дистанционно установить различные периоды отправки данных: «только по требованию», 30 сек., 2-5-10-30 минут и 1-3-6-12-24 часа. С периодом «30 сек.» трекер работает около 10 часов. С периодом «10 минут» — чуть более 10 дней. Ну и так далее.
На трекере даже есть кнопка SOS, которая поддерживается и обрабатывается нашей системой, но она, к сожалению, не очень удобна, и в экстренной ситуации нажать ее будет проблематично. Во всем остальном аппарат показал себя с положительной стороны, обнаружив все признаки того велосипеда, который мы начали изобретать еще два года назад. Посему мы мысленно сказали вездесущим китайцам «спасибо» и докупили еще несколько штук – уже для себя, как и задумывалось в самом начале пути.
Иногда Вселенная так хочет помочь, что дарит готовые велосипеды, изобретенные по вашему запросу. И это, надо признать, не самый плохой вариант сотрудничества с ней.
О пробуксовках, упорстве и Дне Победы
Наступил апрель 2011 года. Наше внимание переключилось на разработку приложения для Айфона. Эту ответственную задачу поручили группе программистов из одного южного российского городка. Мы хотели, «чтобы программа имела, по возможности, весь функционал веб-интерфейса и, вдобавок, выполняла функции GPS трекера, то есть с необходимой периодичностью высылала свои координаты на сервер».
После обсуждения ТЗ руководитель группы программистов порадовал прогнозом: всего-то неделя на кодирование, еще одна на отлов багов — и все будет в лучшем виде. И мы, наивные аки дети, поверили в заявленные две недели. Как будто с фрилансерами никогда не работали.
Закончился апрель. Потом май. За маем — июнь. Июль. Август. Наступил сентябрь. Пожелтели листья, первоклашки подарили букетики учительницам и заняли места за партами. В сентябре все, что у нас было по части приложения — это очень нестабильно работающий блок, отвечающий за отправку данных в бэкграунде. И ни одной картинки интерфейса. Все это время проект был в состоянии бесконечных пробуксовок, сопровождаемых комментариями типа «вот-вот доделаем» и «уже практически готово».
В конце концов, мы поняли, что живем по разным календарям. Вероятно, в южном российском городке царил вечный день сурка, в пределах которого сроки становятся несгораемыми, а проекты невыполнимыми в принципе. Конечно, это было большое разочарование. Потерять столько времени, так и не получив результата — это же саботаж какой-то!
От безысходности мы снова связались с разработчиками из Киева, которые делали для нас UI веб-системы. И каким-то чудесным образом оказалось, что они еще и на машинке вышивать программировать под iOS умеют! Мы взбодрились, а маховик проекта снова сдвинулся.
После активных скайп-обсуждений, подготовки, комментирования и переделки мокапов дизайн приложения был, наконец, утвержден и работа началась. Мы регулярно получали бета-версии программы, ставили их на свои телефоны, телефоны жен, друзей и тестировали, тестировали, тестировали…
К этому времени вызрела и мысль о монетизации проекта. На счет продажи gps трекеров речи пока не шло, поэтому мы сконцентрировались на монетизации приложения. Монетизировать решили по Freemium модели. Бесплатный вариант приложения давал возможность видеть только два устройства — свое и одного друга. Встроенная покупка Про-версии снимала данное ограничение. В веб-интерфейсе никаких ограничений на количество просматриваемых устройств не предусмотрено. Кроме того, платными были и СМС-уведомления – 5 центов за 1 уведомление. В общем, все выглядело, как нам казалось, достойно, и можно было делать следующий шаг в большой мир.
16 марта 2012 года приложение было отправлено на ревью в Аппстор. Состояние “Waiting for review” продолжалось 10 календарных дней. Затем оно сменилось на “In review” и еще через четыре часа на … “Rejected”. Не скажу, что это нас очень сильно удивило. Мы действительно сознательно нарушили один из пунктов Guidelines, который запрещает использовать функции SDK для целей, для которых данные функции не предназначены.
Чуть больше месяца заняли переделки и тестирование, чтобы привести приложение в полное соответствие требованиям Эппла и, чтоб два раза не вставать, добавили «пару новых фич». 27 апреля 2012 на ревью была отправлена исправленная версия. Стандартные 10 дней ожидания, запуск процесса Review. И ранним утром 9 мая, когда вся Москва еще досматривала сны, а во дворах между машинами шаркали метлами дворники, наконец, пришло долгожданное уведомление о том, что приложение одобрено.
О том, как развеять иллюзии в полете
Запах успеха пьянит и кружит голову. Однако суровая реальность обладает замечательным эффектом мгновенного отрезвления. Поэтому перед встречей с ней лучше заранее подстелить соломки и морально подготовиться.
Первый испытательный «полет» было решено сделать не очень высоко — только на территории российского Аппстора. Софт-ланч был назначен на 15 мая. Хотя программа и была двуязычной, на публикацию в Америке решили пока не замахиваться. Мы чувствовали, что для начала нужно увидеть реакцию пользователей, получить фидбэк и понять самим, на каком уровне мы находимся. И, как показало время, это было мудрое решение…
Наступил теплый весенний день 15 мая 2012 года. Приложение стало доступно в Аппстор. Начались первые немногочисленные скачки. Наши друзья опубликовали в своих Фейсбуках информацию о появлении приложения, количество скачек росло, мы вошли в первую десятку категории Навигация «Топ-бесплатных» русского Аппстора. По мере популяризации программы мы получали долгожданную обратную связь от пользователей и одновременно с этим наши глаза открывались все шире…
Три года работы над проектом не прошли бесследно для нашего восприятия. Нам казалось, что в интерфейсе вообще нет неинтуитивных элементов. Реальным же пользователям, первыми из которых стали наши бывшие друзья, совсем так не казалось. То, что мы считали очевидным и понятным с первого взгляда, вызывало массу вопросов. Например, как «показать свое устройство другу»? Также не все понимали, что наш любимый элемент UI — панельки устройств — можно листать вправо-влево.
Но это было еще не все. Окончательное прозрение наступило после первой попытки провести «маркетинг» программы. Мы обратились с запросом на один большой и известный сайт, посвященный ай-продукции и программному обеспечению для нее. Достаточно быстро договорились о подготовке и размещении объективного ревью нашей программы на данном сайте.
Вскоре к нам на почту посыпались комментарии и вопросы от владельца сайта и от его ревьювера. Комментариев было достаточно много и, надо признать, они были действительно объективными. Люди не понимали, как пользоваться программой. А технические проблемы, связанные с внешними ограничениями (например, значительная погрешность при определении места по станциям сотовой связи), для них выглядели как косяки программы. Мы же воспринимали эти ограничения как неизбежное зло, к которому сами уже привыкли.
Проверка жизнью подтвердила обоснованность наших опасений: мы смотрим на свою программу изнутри – со стороны сервера, в то время как обычные люди смотрят на нее оттуда, откуда и должны смотреть пользователи. И ничего не понимают!
Рецензия на сайте так и не была размещена, а мы получили первый независимый качественный фидбэк. Если убрать лирику, он сводился к тому, что наша программа — «сырье» и ей, а также и рецензии на нее, не место на солидном сайте. Это был второй, контрольный снаряд. Наш полет закончился штопором и стремительным возвращением на землю.
Целую неделю мы сидели в обломках своих надежд, зализывая раны. И пытались осознать, куда же мы, собственно, потратили три года своей жизни и внушительное количество денежных средств из семейных бюджетов (так как все это время бутстрапили на свои кровные).
Наверное, в этом месте у нас были все шансы опомниться, остановиться и заняться более серьезными и благодарными делами. Но мы, конечно, не стали этого делать…
O том, какой толк бывает от хорошей встряски
Придя в себя, мы занялись редизайном программы. Объективная (хотя и местами жесткая) критика помогла увидеть то, что раньше не попадало в поле нашего зрения.
Изначально мы пытались дать пользователю практические полную свободу и возможность для самореализации (например, в части создания гео-зон). Но теперь стало понятно, что это только все усложняет, а самореализовываться в рамках нашей программы почему-то никто не стремится. Поэтому в перегруженных функционалом модулях произошли значительные изменения, и «возможности самореализации» были ограничены до разумных пределов.
Мы пришли к выводу, что программа должна быть больше похожа на соцсеть, нежели на пульт дистанционного управления трекерами и телефонами.
Самым главным и принципиальным изменением концепции было следующее: в первой версии системы пользователь мог в одностороннем порядке «расшарить» свое местоположение другому пользователю. Для этого он должен был в соответствующем поле ввести имя аккаунта второго пользователя. Если же это у них было взаимно, то и расшаривание должно быть взаимным – каждый из них вводит имя аккаунта своего vis-a-vis. Это долго и муторно, — решили мы. В новой версии системы мы решили применить подход соц-сетей: один пользователь направляет другому предложение дружить (инвайт) и если второй его подтверждает, то они оба видят местоположение друг друга. Инвайт можно отправить на любой известный имэйл друга. Если он еще не зарегистрирован в Патролайф, то по ссылке в инвайте он сможет пройти простой процесс регистрации и после установки приложения между ним и приславшим инвайт автоматически установится дружба. Если инвайт был отправлен на зарегистрированный в Патролайф имэйл, то он придет непосредственно в приложение. А что бы совсем упростить процесс мы добавили технологию Bump: теперь можно подружиться просто стукнув два телефона друг с другом. К огромному сожалению (нашему, а не команды Bump) Гугл купил Бамп и с 31 января следующего года сервис будет закрыт. В связи с этим в недавнем обновлении iOS приложения нам пришлось этот способ дружбы убрать.
В общем, мы пошли по нормальному (и уже проторенному нами) пути развития всех версий № 2, в которых урезается лишний функционал, все упрощается и облегчается. На бумаге это, конечно, выглядело очень легко и вдохновляюще. Но очень быстро пришло понимание того, что сервер придется переделывать в третий раз. Наши питерские коллеги, скрипя зубами, снова взялись за «ядерные» реконструкции. Переработка ядра сервера заняла… много времени она заняла. Процесс апдейта приложения для айфона был, естественно, приостановлен до момента готовности сервера.
Несмотря на отсутствие обновлений программы в Аппсторе ее продолжали качать. Кто-то умудрялся самостоятельно разобраться со старым функционалом и даже научиться использовать его возможности.
После того как сервер был готов, на наши — уже практически седые — головы свалилась очередная напасть. У киевских разработчиков ios приложения появился солидный клиент с неоспоримыми аргументами в виде больших денег, который буквально выкупил все их свободное время на многие тысячелетия вперед.
Хотя работа над приложением и возобновилась, но шла она очень медленно, что расстраивало нас неимоверно. Нытьем, катаньем, обещанием светлого будущего, славы и вечной жизни мы уламывали киевлян уделить хотя бы немного времени нашему проекту. Втиснуть нас в окна форточки между заказами от приоритетного клиента получалось, увы, не всегда.
В процессе тестирования приложения мы заметили, иногда рука сама тянется нажать куда-нибудь, что бы написать сообщение своему другу, за которым следишь. Это вылилось в разработку ТЗ на встраивание чата в приложение, ТЗ на чат-сервер и четыре-пять недель согласования дизайна чата. В результате был написан собственный чат-сервер с возможностью передачи текста, файлов (на текущий момент не реализовано на стороне приложения) и пуш-уведомлений о входящих сообщениях.
В январе 2013 года вторая версия Patrolife появилась в Аппсторе.
И, конечно, тоже не обошлось без проблем. Сначала ее пару раз зареджектили по недоразумению. И нам пришлось «доносить до разумения» некоторые моменты, заново объясняя ревьюерам, как и что работает. А после того, как она все-таки была допущена в Аппстор, обнаружился еще один «сюрприз». Оказалось, что в программе остались девелоперские сертификаты для пуша, а не боевые, и пуш-сообщения в приложении из Аппстора не работали.
В общем, мы постепенно и упорно двигались к цели. В дороге потряхивало. Но от таких мелочей нас уже даже не укачивало.
To be continued….
Закрома:
Приложение для Андроид (в процессе разработки, еще не опубликован)
Приложение для IPhone
Автор: Patrolife_startup