Разработка
Как я попал в Топ App Store с простым приложением курса валют
Я хочу рассказать о том, как создал вполне заурядное и совсем не инновационное приложение, которое объективно стало лучшим в своём роде и даже некоторое время пребывало на самой вершине топа. Это не история успеха и не руководство к действию. Я просто хочу рассказать, как у меня получилось сделать самое популярное приложение в своём сегменте.
Валентин Шамардин, разработчик мобильного приложения «Курс валют», поделился своим опытом разработки на Хабре. С его разрешения мы публикуем эту увлекательную историю.
Я хочу рассказать о том, как создал вполне заурядное и совсем не инновационное приложение, которое объективно стало лучшим в своём роде и даже некоторое время пребывало на самой вершине топа. Это не история успеха и не руководство к действию. Я просто хочу рассказать, как у меня получилось сделать самое популярное приложение в своём сегменте.
Основные тезисы следующие:
- Если вы чётко осознали, что на рынке нет достойного решения вашей реальной проблемы, нужно всерьёз задуматься о создании такого решения;
- Графический интерфейс пользователя — это самая важная часть приложения;
- Даже самое простое приложение может стать очень популярным;
- Даже самое простое приложение может приносить прибыль;
- Не стоит тратить деньги на отзывы в AppStore;
- Реклама в приложениях это не так уж плохо.
Вот, пожалуй, и всё для начала.
Как я решил сделать приложение
Мы с женой собрались в отпуск за границу. В очередной раз предо мной встала задача покупки валюты по выгодному курсу. Разница цены доллара или евро в 1 рубль даёт 1000 сэкономленных рублей за каждую 1000 купленных долларов или евро. Поэтому я каждый день тратил некоторое время на мониторинг курса валют ЦБ РФ и коммерческих банков Москвы на сайте exocur. Курс Центрального Банка задавал общую тенденцию, а в коммерческих банках можно было произвести настоящий обмен валюты. Если валюта дешевела на протяжении нескольких дней, я шёл в банк с самым выгодным курсом за покупкой валюты.
Жена использовала ПК, браузер и Яндекс, что для меня было диковато, ведь мобильный телефон позволяет обновлять информацию, не включая компьютер и вообще ты ж жена программиста. Почему-то только в прошлом году я догадался посмотреть, что предлагает AppStore для решения моих проблем. Вы знаете, в различные периоды жизни у меня было несколько разных идей, попытки реализовать которые я оставлял, найдя десяток готовых сервисов или приложений. Но в этот раз я и не думал создавать приложение, просто хотел решить свою проблему. И я даже не мог поверить — в AppStore нет приличного приложения для отслеживания курса валют! (Здесь и далее я выражаю только собственное мнение по отношению к чужому труду, и оно может отличаться от мнения других людей. Я лишь описываю свои эмоции).
Такое странное положение вещей я замечал лишь среди калькуляторов для айпада, там тоже всё плохо. Стандартный Stocks имеет ужасный интерфейс. Например, для получения курса доллара к рублю нужно ввести недружелюбную строку RUB=X, а евро к рублю — EURRUB=X. Другие приложения либо просто платные, либо ограниченно бесплатные, но за каждый чих просят денег, либо с рекламой. Какие-то приложения не обновляются больше года и застряли в эре скевоморфизма, другие — бесплатные, но нестабильно работающие, как пишут в отзывах, «студент сделал курсач».
Я сразу понял, что вот он, момент. Я хочу, чтобы приложение показывало динамику курса (график) и актуальное значение, ну и калькулятор для подсчётов. Я уже вижу все 2 или максимум 3 экрана приложения. Я точно знаю, что приложение будет лучшим, потому что искренне верю в то, что существующие аналоги никуда не годятся. Я полон энергии и решительности.
Конвенции
Решил, что передо мной стоит не самая сложная задача, но к ней необходимо подойти со всей серьёзностью. Поэтому я, начитавшись Хабра и бизнес-книг, выделил основные правила на время разработки.
Работа
- Приходить на работу рано;
- Во сколько бы я ни пришёл, уходить в 17:30, максимум 18 часов, чтобы прибыть домой бодрым. Если возникнут сомнения, желание бесплатно переработать, вспомнить, что для меня важнее и засунуть сомнения подальше;
- Каждый будний вечер выделять час-полтора, а лучше 2 для работы над проектом;
- Не работать после 22, ну или хотя бы 23;
- Не снимать трубку от коллег по работе, когда меня нет на работе;
- Узнавать у родственников, что им будет от меня нужно на выходных и договариваться, в какое время я буду заниматься своими делами.
Разработка
- Работать в git;
- Проектировать систему красиво и идеологически правильно. Чтобы такой код не стыдно было показать будущему работодателю, чтобы код был гибким и понятным;
- Никаких interface builder’ов;
- Интерфейсом должен заниматься дизайнер. Я — не дизайнер.
С IB я, наверное, погорячился, но не переживаю. Это всё-ж таки вкусовщина. Нужно уметь работать и с кодом, и с IB. К помощи дизайнера я обратился не сразу. И это — большая глупость. Каждый должен заниматься своим делом. Моё дело — кодить. Ну и придумывать разные штуки. А рисовать я не умею.
Общие требования
- Никакой рекламы;
- Приложение должно быть лёгким и быстрым;
- Приложение должно быть минималистичным и решать одну задачу — показывать динамику курса валют;
- Приложение нужно сделать быстро. Если где-то я забуксую, нужно упростить/забить: доработаю в очередном обновлении;
Отсутствие рекламы — моё конкурентное преимущество. Размер исходника — тоже. Не знаю, много ли людей обращают внимание на размер, но я считаю, что приложение должно предоставлять возможность быть загруженным и в метро, и на улице, и на 3G, и с Edge. Я много раз сталкивался с невозможностью загрузить приложение не дома. Возможно, неправильно утверждать такое по отношению к играм, но курс валют размером 10 МБ — это не нормально. Минимализм свойственен iOS7 и iOS8, здесь на меня повлияло приложение Yahoo Погода.
Как я его делал
Закон Парето сработал и со мной. До первого релиза было потрачено около полутора месяцев. До сих пор я никому не рассказывал — стеснялся. Основное потраченное впустую время ушло на попытки самостоятельно накидать и реализовать дизайн. Глупая затея. Ещё пару дней я ждал от дизайнера картинку для экрана запуска, которую в итоге сделал сам за 5 минут. Ещё куча времени ушла перестановку вьюшек местами. Одним словом, нужно сразу обращаться за помощью к профессионалу. Тем более раз уж я собрался сделать лучшее в своём роде приложение.
Я обратился к знакомой дизайнеру за помощью, объяснив, как я вижу дизайн приложения, а сам занялся построением классов для сетевого взаимодействия, моделью данных, парсерами и т.д. Всевозможные идеи, которые приходили мне в голову, я старался как можно быстрее записывать в текстовый файл. Баги тоже записывал, чтобы ничего не забыть. Через некоторое время дизайнер приготовила несколько вариантов иконки. Результат был лучше моих ожиданий, и это добавляло энтузиазма. И нетерпения. Дизайна основного экрана я так и не дождался.
Я неоднокаратно нарушал собственные договоренности. Работал не каждый вечер, пару раз завис до глубокой ночи. Но я не могу сказать, что редкие нарушения правил сильно снижают эффективность. Если у вас болит голова, вечер лучше провести на прогулке. А если вы уже думаете о своём проекте и в туалете, и по пути на работу, и перед сном, что ж, дайте себе поработать.
Для отслеживания падений я интегрировал Crashlytics. Для сбора статистики использовал Mixpanel. Что делать со статистикой я тогда не знал. Просто хотел знать, как часто пользователи запускают приложение. Совет: забейте на статистику, если вы не знаете, что с ней делать. Когда придумаете, что вы хотите узнать про пользователей, тогда и добавите.
Несколько вечеров я потратил на изучение того, как реализовать некоторые детали дизайнерского интерфейса. Потом вспомнил про свои конвенции и понял, что эти детали мне дорого обходятся. Отложил их реализацию.
У меня родилось несколько идей по кастомизации приложения. В том числе я не знал, какой цвет выбрать для фона, какой период выбрать для графика, отображать ли даты на графике. Решил предоставить пользователям возможность выбрать эти настройки для себя. Но реализация таких настроек требовала времени. Тогда решил отложить эти задачи до следующего обновления.
Релиз и результаты
В какой-то момент решил, что минимально допустимый функционал реализован и можно нажать кнопку для сабмита приложения в магазин. Когда релиз случился, я выложил иконку в Instagram, сделал соответствующие посты во «Вконтакте» и Facebook. Написал сообщения со ссылками друзьям и знакомым разработчикам. Попросил родственников написать 5-звёздочные отзывы.
Первая версия существовала примерно месяц и была загружена около 4 тыс раз. В рейтинге категории «Бизнес» я оказался выше других бесплатных конвертеров. Это вдохновляло. Однако чужих отзывов было с гулькин нос. Мой курс валют отображался в новых приложениях в AppStore, что увеличивало загрузки.
Crashlitycs и друзья с шаловливыми ручками нашли пару падений в стиле range check error. К тому же у меня ещё оставалось множество нереализованных фич. В следующем обновлении я доработал пользовательский интерфейс, но уже вылетел из новых. Приложение стало красивее, а загрузки уменьшились.
Также я решил добавить возможность пользователям писать мне письма с вопросами и предложениями. Создал почтовый аккаунт на Gmail и добавил учётку к себе на телефон. Это дало возможность очень оперативно отвечать людям на вопросы, отмечать жалобы и предложения и повышать лояльность пользователей. В частности, многие выражали недовольство редкостью обновления курса. Для таких пользователей я добавил пункт «О программе», в котором описал, как работает приложение и объяснил, что курс ЦБ обновляется один раз за рабочий день.
Признаюсь, никогда особо не интересовался рейтингом приложений в App Store, но после релиза собственного приложения в течение нескольких месяцев, наверное, ежедневно проверял свой, а заодно и чужой рейтинг. За это время я увидел много приложений, которые откуда ни возьмись вырывались на 1 место топа категории «Бизнес», получали массу отзывов, а через 2-3 дня исчезали из топа навсегда. Наверное, это проплаченные отзывы, думал я.
Поинтересовался, сколько стоит такое удовольствие. Выяснил, что примерно 1$-3$ за 1 установку плюс 1 отзыв. Я не раз слышал о том, что нужно любыми силами попасть в Топ, что Топ — это замкнутый круг, из которого сложно выйти. Что ж, это брехня. После релиза ваше приложение попадает в категорию «Новые» — и это уже его продвигает. Если результат вас не удовлетворяет, платные отзывы, по моему мнению, последнее, о чём стоит думать. Вылететь из топа совсем не трудно. Уж лучше заплатить за обзор в интернете.
Встроенные покупки
Давно обратил внимание, что в топе кассовых находится Viber, который продаёт стикеры. Мне казалось это странным, но бесспорно работающим решением. Я решил, что можно сделать платным возможность устанавливать цвет темы для приложения. Заодно заблокировал настройку периода для отображения графика и настройку отображения дат на графике.
Беспокойство небольшим количеством отзывов в App Store помогло мне придумать схему. Продавать эти 3 настройки за 66 рублей, а если пользователь оценит приложение, то ему будет предоставлена 50% скидка. Гениально, да? В Apple завернули мою супер идею, пригрозив забанить за нечестную накрутку рейтинга.
Мне не хватало серьёзности по отношению к своему продукту. Казалось, что и 33 рубля — это дорого. Так что для разблокировки этих 3 настроек требовалось заплатить 33 рубля. Такая встроенная покупка приносила от 36$ до 64$ ежемесячно. Если честно, я надеялся, что будет получаться хотя бы 20 тысяч рублей.
Последующие версии в течении около 3 месяцев загружались по 2000-3000 раз в месяц. Я был огорчён таким результатом, утешая себя мыслями, что это всего лишь конвертер.
Реклама
В какой-то момент на меня вышло рекламное агентство с предложением отображать у себя в приложении рекламу. Я не хотел портить своё приложение рекламой, но, немного подумав, посчитал, что это может приносить примерно 3000 рублей в месяц. И вообще что-то я мало экспериментирую. 3000 руб — немало по сравнению с доходами от встроенных покупок и очень мало по сравнению с зарплатой и стоимостью хотя бы проживания.
В очередном обновлении добавил ещё 2 встроенные покупки: отключение рекламы за 33 рубля и полный доступ за 66 рублей, который агрегировал две 33-рублёвые покупки. SDK рекламного агентства работало ужасно. У них отображалась какая-то заглушка, а показы не трекались. Но! Доход за 1 месяц превысил 150$, а за второй — 200$! Это был успех! Я понял несколько важных вещей. Во-первых, те, кому приглянулось приложение, готовы заплатить и 66 рублей. А может и больше? Во-вторых, реклама, если её сделать не очень назойливой (у меня она отображается при запуске приложения, а не при каждом подъёме из фона), тоже приносит свои плоды.
С рекламодателем и его SDK я разобрался и вскоре стал получать прибыль с рекламы. Если пользователи не перестают запускать приложение, их количество с каждым днём только увеличивается, следовательно, увеличивается и количество показов рекламы. Это означает, что за рекламу вы будете получать прибыль по очень грубой оценке не меньшую, чем за предыдущий период. В результате к концу года реклама стала приносить от 1500 до 3500 рублей ежедневно.
Взлёт
В ноябре началась стремительная девальвация рубля. Это подогрело интерес ко всем аналогичным приложениям в магазине и к моему приложению в частности. Я оказался на первом месте в топе бесплатных категории «Бизнес» и стал маячить в топе кассовых. В декабре скорость изменения курса рубля зашкаливала. Зашкаливали и загрузки приложения. Сначала я попал в Топ 100 бесплатных всего App Store, затем заметил, что ежедневный доход превышает 100$. Потом знакомые стали шутить, что у людей горе, а мне хорошо. Взлёт был поистине ошеломительный! Картинки вместо тысячи слов:
Март-ноябрь
Март-декабрь
Замечу, что к приложениям из топа у пользователей особое отношение. Баги и недочёты рассматриваются чуть ли не как личные оскорбления. Многие популярные приложения (VK App, приложения Яндекса, Facebook) получают сотни, тысячи колов и гневных отзывов. Вот и моё приложение со средней оценкой 4.5 звёзды стало лишь 3.5-звёздочным. Вышесказанное не означает, что можно расслабиться или что рейтинг не ничего не значит. Клиент практически всегда прав. И многие колы и двойки моему приложению содержат обоснованную критику. Просто в Топе всё серьёзнее. Здесь нет права на падения или глюки.
Перспектива
Я не бизнесмен и не маркетолог. Но иногда общаюсь с ними. Один такой знакомый озвучил свои замечания. Покупки должны предлагаться пользователю без отрыва от контекста. Отключение рекламы нужно предлагать при показе рекламы. Разблокировать настройки — при попытке нажать на заблокированную ячейку. Были и другие советы в сторону повышения конверсии.
Вывод банален: общайтесь и учитесь у успешных бизнесменов.
Кроме того, пользователи давно просят меня сделать виджет. Пуши практически работают, но товарищ, помогающий с серверной частью, забуксовал. Я уже подумываю в сторону специализированных сервисов. В общем, пуши будут.
Некоторые пользователи просят курс сырья (нефть, газ). Есть, над чем задуматься.
Кроме того, получен бесценный опыт развития приложения с нуля и до вершины (пусть и не финансовой), который можно применять в других проектах.
Итоги
У меня была простая проблема. Существовавшие решения меня не устраивали и я создал своё решение, которое стало лучшим. Решение простейшее, можно сказать, примитивное. Но очень полезное. Очень приятно осознавать, что ты сделал что-то полезное, что-то для людей.
У меня сформировалось мнение, что если у вас есть проблема, а существующие решения вы находите недостаточно удобными или откровенно неудачными, это повод задуматься над собственным велосипедом. Тут главное чётко понимать, почему существующие решения настолько неудачны, что вам пора показать всем, как решать такие задачи.
С релизом я поспешил, не уделив должного внимания дизайну. Попадание в раздел «Новые» даёт ощутимую помощь.
Я изменил своё отношение к рекламе в приложениях. Она позволяет простому разработчику получать хоть небольшую, но прибыль. Важно не переборщить.
Встроенные покупки, при умелом использовании, способны приносить деньги, достаточные, как минимум, для самоокупаемости, а в перспективе и для ощутимого довеска к вашим доходам.
Да и само приложение, даже самое простое, развиваясь может приносить ощутимый доход.
В результате мое приложение больше месяца удерживает первое место в Топе бесплатных категории Бизнес, 2 дня занимал первое место во всех категориях. Мне даже предлагали продать своё приложение. О приложении написали 2 микрообзора, в одном из которых назвали одним из лучших в прошедшем году. Даже появился один клон, о котором в данный момент я, ругаясь, веду переписку с Apple.
Жизнь показывает, что умение правильно продавать, за правильную цену, в правильный момент, может принести прибыль даже самому простому приложению.
-
Интегрированные среды разработки2 недели назад
Лучшая работа с Android Studio: 5 советов
-
Новости4 недели назад
Видео и подкасты о мобильной разработке 2024.43
-
Новости3 недели назад
Видео и подкасты о мобильной разработке 2024.44
-
Исследования2 недели назад
Поможет ли новая архитектура React Native отобрать лидерство у Flutter в кроссплатформенной разработке?