Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Когда-то давно я думал, что вот напишу приложение, выложу, а дальше оно как-нибудь само наберёт популярность, взлетит в чарт, принесёт денег. Так бывает, но готовиться нужно к тому, что придётся заниматься «выводом на рынок и продвижением», и на это потребуются время и силы.
В прошлой статье я рассказал, как идея превратилась в продукт, а сегодня покажу, что сделал, чтобы он дошёл до своих пользователей.
Для продвижения нужен хоть какой-то план. О том, что делать в теории, уже написано много раз. Давайте посмотрим, что у меня получилось на практике.
Первый тест и кастдев
Приложение оформилось, но хотелось понять, насколько оно полезно другим — надо было дать кому-то попользоваться. В Твиттере предложил знакомым посмотреть, как оно работает на их проектах, только с одним условием: они поделятся результатами визуализации. Откликнулись ребята из Яндекса, HH.ru, Перекрёстка, Reveal.cam, Тинькофф и ещё несколько человек.
Кастдев оказался полезен с двух сторон: появился запрос на фичи (например, добавить легенду про цвета) и показал полезность программы. Можно релизить.
Пользовались приложением и разработчики в Додо Пицце. Так, например, оно помогло при ресёрче для App Clip: смотрели, сколько кода мы можем поместить в него, что можем ещё выкинуть, что случайно попало в билд через транзитивные зависимости.
Исправил самые частые проблемы, поправил приоритеты для будущих задач и приступил к релизу.
Предрелизная подготовка
На подготовку к релизу смело закладывайте неделю — предстоит много разной работы по оформлению страницы в App Store.
Название
Самый надёжный способ найти покупателя — показаться ему в результатах поиска. Поиск в App Store должен попадать в ключевые слова, а лучше всего это работает, когда нужное слово есть прямо в названии. Раз мы визуализируем билд с помощью графика, то Build Graph вроде выглядит неплохо и это примерно то, что люди могут искать.
Ещё один вариант — попробовать сделать так, чтобы люди случайно находили приложение. Самый простой — добавить к названию дополнительные слова. Build Graph for Xcode вполне выполняет эту задачу (и даже проходит ревью у Apple).
В названии могли бы быть и другие слова: chart, dependency, log, но звучными был именно Build Graph, а эти ушли в дополнительные ключевые слова. Добавил ещё синонимов про скорость компиляции и слов из популярных соседних приложений. С этим можно будет поиграться в будущем и посмотреть, что лучше работает.
Иконка
Сначала попробовал нарисовать сам, первый вариант был такой :D Полная ерунда, но это позволило выгрузить билд в TestFlight. Понял, что у меня много других задач, лучше сэкономить время.
Предложил дизайнерам на работе попрактиковаться в рисовании иконок для Mac-приложения. Ребята воодушевились, поспрашивали про приложение, его цель и пользу для людей и ушли на денёк хакатонить дизайн.
Первый же макет попал метафорой в точку.
Скриншоты
Для скриншотов насобирал основных фич — даже удивился, сколько их получилось в итоге. Поддержал сквозным ходом с линией. Кажется, такое оформление идёт всему приложению и можно поддержать его везде.
Возможно, к следующему разу будет проще написать UI-тесты, которые сгенерируют нужное количество скриншотов относительно одного проекта.
Цена
Чтобы понять, какую назначить цену, нужно определиться с аудиторией приложения.
Это программа для профессионального использования и для самых больших проектов. Очевидно, у ребят должны быть деньги и можно не дешевить.
Скорее всего, приложение будут покупать компании, а не индивидуальные разработчики.
Аналогов нет, опенсорс-решения намного слабее.
Инстинктивно кажется, что если поставить цену меньше, то больше людей скачает приложение, при этом общий доход может поменяться в любую сторону. Но раз мы выяснили, что аудитория довольно узкая, то в этом нет особого смысла: те, кому приложение действительно полезно, купят его при любой цене. Поиграться с ценообразованием всё равно надо.
Приложения для Mac исторически более дорогие, чем приложения для айфонов. Моё только запускается и фич немного, но оно уже приносит сильную пользу, поэтому установил цену в $30. Small Business Program уменьшает комиссию с 30 до 15%, этим надо пользоваться.
Высокая цена приводит к тому, что даже при небольшом количестве покупок получается неплохо зарабатывать, что мотивирует поддерживать приложение:
Самой интересной моделью для приложения было бы дать возможность скачать бесплатно и посмотреть граф с какими-то ограничениями: так человек увидит пользу для себя и если заинтересуется, то сможет заплатить за дополнительную функциональность. Это даст хорошее количество установок на входе и возможность допродаж существующим пользователям.
Прикручивать встроенные покупки было некогда из-за ситуации в мире, поэтому я поторопился с релизом и сделал приложение просто-платным, а на запуске даю «триал» в виде бета-тестирования через TestFlight. Тестировщики мне же всё равно нужны.
Скорее всего, монетизация будет меняться: компаниям не очень удобно покупать лицензии через AppStore, а продажи через ключи и эквайринг на сайте ещё надо прикрутить.
Опенсорс
У каждого пет-проекта наступает момент, когда создателю просто надоедает им заниматься, и он идёт делать что-то другое.
Спасти проект от такой смерти может опенсорс, чтобы все могли поддерживать и накидывать ишью. Чтобы идти в эту сторону, надо будет разобраться с лицензиями, но вряд ли это хорошо скажется на монетизации. А вот если придумать систему плагинов, чтобы каждый мог дописать визуализацию для своей билд-системы, то проект может ждать интересное будущее: адаптацией под новые версии билдов смогут заниматься все, при этом аудитория вырастет.
Ревью и релиз
Мне было интересно, хватит ли десяти лет опыта в разработке, чтобы пройти ревью с первого раза. Должен признаться, что нет.
Причин отказа было несколько:
вылет на старте. Я запрашиваю доступ к файлам в DerivedData, но не обработал сценарий, когда пользователь разрешения не даёт. Это был чуть ли не первый написанный код — обработкой негативного сценарий тогда не занялся, а потом забыл;
в приложении могут быть только необходимые entitlements. Когда я добавлял Firebase, то дал доступ и для client, и для server, на что мне и сделал замечание ревьювер. Оставил только client.
Ревью хотелось пройти побыстрее, поэтому, даже просыпаясь ночью, я проверял почту и правил замечания. Пройти ревью за первую ночь не успел, но за следующую приняли без замечаний.
В итоге от первого коммита 10 октября до релиза 7 марта прошло 5 месяцев. Не могу сказать, что я сильно активничал: последний месяц программа почти не развивалась и зарелизилась лишь волевым усилием, когда понял, что разработка застопорилась в отвратительном состоянии: и дальше не двигается, и пользы не приносит, хотя может.
Зарелизил я на следующий же день: рассказал у себя в Твиттере, в канале Dodo Mobile и закинул в iOS Good Reads. Маркетолог скажет, что надо больше активностей и все за раз, но у меня хватило сил только на такой запуск.
Планы на маркетинг
App Store
Самая простая продажа, когда люди заходят в App Store, видят программу и покупают. Варианта два: либо они заметили приложение на главной странице, либо смогли найти через поиск. Важнее всего для поиска название приложения, с ним мы уже разобрались. Что ещё влияет на продвижение?
Для поиска важно количество скачиваний и оценки. Если бы приложение было бесплатным, то можно было бы попросить друзей и коллег поставить первые оценки, остальную работу сделают будущие скачивания. Для платного приложения это проблема, ведь бесплатно подарить можно лишь 100 промокодов, а они пригодятся для других задач. Критически важно добавить в приложение SKStoreViewController, чтобы запрашивать оценки у тех пользователей, которые купили приложение.
Публичный тест дал возможность попробовать приложение бесплатно: спустя месяц в публичном тестировании участвует 200 человек. Можно будет рассказывать им о скидках или придумать какой-нибудь способ мотивировать к покупке.
Подборки в App Store
Можно податься в разные подборки: например, у Xcode есть подборка с набором инструментов для разработки, а в App Store на Mac есть целый раздел для разработчиков. Чтобы попасть в такую подборку, надо будет написать напрямую в Apple. Пока отложу это на несколько версий попозже, когда всё будет стабильно работать (смотрите, какое у меня искажение на откладывание, не надо так).
Можно попасть в подборку приложений Setapp. Но для этого нужен сайт, юрлицо и т.п. Займусь этим после статей, сайта и нескольких исправлений ключевых вещей, когда приложение будет в отличной форме. Впрочем, откладывать по надуманным причинам — зло, которое мешает инди-разработчику.
Сайт
Он нужен, чтобы программа находилась в вебе, чтобы можно было давать ссылку, чтобы подробно рассказывать о преимуществах приложения.
Я мало что понимаю в написании сайтов, поэтому сел накидывать первые варианты в Фигме. Тут же понял, что хочется тёмную тему, и чтобы скриншоты переключались под цвет окружения. Попробовал накидать разные варианты компоновки (правый позже станет десктопной версией). В это же время впервые появляется идея снять видео, в котором показываю и рассказываю про программу, как было при презентации Hey.
Минимально мне надо показать логотип, название, скриншот, дать описание и мои контакты.
После того как настроил сайт и написал простенькую заглушку, захотелось большего, например, рассказать про все фичи приложения. Немного flex, picture и медиа-условий, всё очень просто.
Мне нравится идея, что приложение может аккумулировать вокруг себя всю тему про ускорение билда. Оно пока не умеет активно сообщать о проблемах, но юзер-стори по задаче есть, поэтому собираю ссылки на статьи и другие инструменты, которые могут помочь.
В конце адаптирую сайт для десктопа и красуюсь максимально большой картинкой для 5k мониторов. Просто потому что могу.
Уже запланировал переделку, снова по юзер-стори: надо взять граф неоптимизированного приложения и прямо на сайте показать, как я пользуюсь приложением, какие выводы делаю по графу, как правлю и что получается в итоге. Из этого же можно сделать отдельную статью, про это же можно снять видео. Самое сложное — создавать картинки, а форматов под них может быть очень много.
Посмотреть на сайт. Обязательно попереключайте тёмную тему и порезиновите его :-)
Активности
В App Store приложение описал, для поисковых систем как-то показались, пора заняться активностями по привлечению людей. Теперь надо попасть в поле зрения нужных людей. Удобно, когда аудитория небольшая и все «места обитания» ты и так знаешь.
Статьи
Хорошей точкой для входа могут быть статьи про ускорение времени компиляции и многомодульность: они живут долго, хорошо ищутся в интернете, люди их читают, а если в конце будет ссылка на приложение, то это может создать хороший входящий поток. Писать надо на английском на Medium, а прямо сейчас вы читаете статью на Хабре.
Я запланировал как минимум три статьи:
Как писал приложение;
Как продвигал приложение (она перед вами);
Как читать граф, какие проблемы мы увидели и как решили.
Можно записать видео, где в реалтайме показать, как я пользуюсь программой, как анализирую граф и какие выводу делаю. Будет отличным материалом для сайта, но стоит делать на английском.
Рассылки
Для iOS-разработки есть еженедельные рассылки, там часто бывает реклама приложений. Можно попробовать предложить авторам, авось получится.
Я подал заявку Dave Verwer, в конце каждого письма есть ссылка Suggest a link. Ответил быстро, но приложение как-то странно заработало на его проектах и он пока не решился опубликовать. Надеюсь в новой версии получится исправить критичные баги, у Дейва получится построить интересный граф и в рассылке приложение появится.
В русском сегменте стоит посмотреть на популярные каналы в Телеграме про iOS-разработку. Например, вот пост в iOS Good Reads и больше 5.5 тысяч просмотров.
Сам я ничего не делал, но оказался в дайджесте mbltdev.ru. Если бы составил список заранее и написал авторам, то смог бы понять источники переходов, но я про это совсем забыл.
Твиттер
С распространением может помочь и Твиттер: нормальный тред про ускорение может хорошо поретвититься, но писать надо на английском, так охват выше. Авторов, которые могут ретвитнуть, можно искать среди статей про время компиляции. Ну и своих знакомых попросить поретвитить.
В Твиттере стоит и отдельный профиль завести: можно будет аккумулировать все статьи про модульность и занять целое направление про скорость билда. Для людей будет ценность не только в программе, а во всей теме, что может притягивать.
Знакомства
Можно точечно писать хедам разных компаний: программа для них — полезный инструмент, могут рассказать о ней разработчикам и купить несколько лицензий для компании.
Проблемы
Всему продвижению ужасно мешают внешние условаия: Твиттер заблокирован, активности там мало, новые профили создавать нельзя, а значит и доступ к иностранной аудитории отваливается. В рассылку меня могут не добавить, потому что я разаботчик из России, Setapp — украинская компания, а дополнительный эквайринг не получится подключить или он будет недоступен для зарубежных коллег. Мир тесен, лучше торговать.
Планы и идеи
Первую важную точку я прошёл: приложение появилось в App Store и можно начать заниматься продвижением. Сначала обновления, скорее всего, будут исправлять проблемы по фидбэку от пользователей (например, просят возможность менять размер шрифта). Планов на мелкие доработки навалом: хочется добавить полную навигацию с клавиатуры, проработать доступность, ускорить парсинг логов до десятых секунды.
Есть планы и на большие фичи.
Хочется дать возможность раскрашивать граф, чтобы -отделить внешние зависимости от внутреннего кода или фичевые фреймворки от базовых.
Хочется сделать сквозной процесс по работе с билдами. Я могу мониторить DerivedData и смотреть, сколько билд занимает в сумме за день, чтобы накапливать статистику во времени и тем самым наглядно показывать пользу от работы приложения. Или можно показать, какие связи и модули появились за последний квартал или год — должно быть очень удобно для долгосрочной работы.
Было бы круто сделать внутри приложения TODO-лист с задачами по оптимизации. Это может приводить к прикольному процессу, когда после анализа билда у вас автоматически генерируется ряд задач на оптимизацию, а последующие прогоны самостоятельно анализируются и задачи закрываются.
Научиться работать с очень большими проектами, когда граф вылазит за пределы экрана и становится уже неудобно.
Вопрос из зала: сколько стоит такая разработка?
Я не измерял время, которое потратил на приложение. От начала до конца прошло 5 месяцев, работал вечерам по 2-3 часа и всего пару раз в неделю. Суммарно, наверное, набегает на 300-500 тысяч рублей, если учитывать и сайт, и статьи, и прочее.
Важно оценить и то, чем я заплатил лично: не пошёл в зал, не вышел погулять, не поиграл с сыном, не отдохнул после работы. Но и что-то нематериальное получил: проект в копилочку, строчку в резюме, удовольствие от запуска и зарабатывания денег не зарплатой, историю в своей жизни.
Получится или нет — пока неизвестно, но если получится, то я обязательно напишу об этом ещё. Подписывайтесь в Телеграме на Dodo Mobile или на меня в Твиттере.
Скачать Build Graph for Xcode