Friday, November 18, 2011

Интервью с Максимом Петровым: откровенно о мобильной шароваре

На RSDN промелькнула ссылка на интересное интервью с автором одного популярного андроид-плейера. Интервью показалось мне очень интересным, поэтому я решила выложить перевод. К сожалению, мне не удалось связаться с самим Максимом Петровым дабы показать ему перевод и получить одобрение на его публикацию, поэтому, если вы, Максим, имеете какие-то возражения или замечания, пожалуйста, свяжитесь со мной через этот блог!

Перевод интервью, опубликованного здесь (http://www.androidpolice.com/2011/04/15/interview-and-faq-with-maxim-petrov-the-creator-of-poweramp-for-android/)



PowerAMP для Андроида появился из ниоткуда и сразу же привлек внимание тысяч пользователей, впечатлив своими функциями, отличным дизайном и отсутствием багов. Он быстро набрал популярность и сегодня это один из бестселлеров Андроид маркета, имеющий ретинг 4.6 - 4.8, и это при цене в 4.99 доллара, что недешево для приложений подобного типа.

Мы встретились с Максимом Петровым - разработчиком плейера - и обсудили такие вопросы, как разработка приложений для Андроида, сам плейер, маркет и все, что с этим связано. Интервью брал Артем Руссаковский, Максим после внес незначительные исправления (Максим говорил по-английски).

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

Android Police: Привет, Макс, спасибо, что нашел в своем плотном графике немного времени на разговор с нами. Представься, пожалуйста.

Maxim Petrov: Привет, меня зовут Максим Петров, я разработчик (единственный) программы PowerAMP. Рад, что мы наконец нашли время для интервью, мой график действительно очень плотный - начиная с того дня, как я начал разработку под Андроид. Мне 30 лет, я живу в Московской области, Россия.

Android Police: Отлично. Как ты зарабатываешь и чем вообще живешь? Расскажи нам немного о себе.

Maxim Petrov: Конечно. Я профессиональный разработчик, начал зарабатывать этим, когда мне было около 20 лет. Прежде, чем я перешел к разработке на Андроиде, у меня был некоторый опыт, и на самом деле я работал над программами в самых разных областях, начиная от веб-программирования и кончая облачными вычислениями для поисковых движков. Правда, ни разу не имел дела с мобильными приложениями.
Но поскольку я разбирался в различных языках и технологиях, это не было проблемой.
Я программировал на Java (конечно же), С#, разных веб-ориентированных языках, Руби и даже на низкоуровневом С, ассемблере (хотя платформа ARM была для меня в новинку и мне пришлось научиться очень многому в области низкоуровневой оптимизации для этой платформы). Думаю, я начал программировать на Java где-то в 2004 году.

Android Police: Почему ты внезапно перешел на платформу Андроид? Почему не на iOS или на любую другую мобильную платформу?

Maxim Petrov: Я никогда не собирался основывать мобильный стартап, но у меня был телефон, и именно Андроид, а не iPhone, поэтому я сперва обратил внимание на эту платформу. У Гугла не было своего приложения для проигрывания музыки, это было очевидно.
Думаю, что если бы это был iPhone, а не Nexus One, то я бы программировал для платформы iOS. Впрочем, знаете, для iOS написано множество хороших приложений (они были и год назад), все ниши уже заполнены, а политика Apple очень строгая (не уверен, что версия моего плейера для iPhone была бы когда-нибудь одобрена в Appstore).
Начать писать под Андроид несложно - просто загружаете SDK, устанавливаете драйвер adb и можете начинать программировать - для своего мобильника, для друзей (используя их в качестве бета-тестеров), намного легче начинать именно с Андроида, но я сравниваю лишь на основе того, что я читал про разработку для iOS, так как сам ничего не писал под iPhone.

Android Police: Какое впечатление оставила у тебя разработка под Андроид?

Maxim Petrov: Разработка под Андроид (на самом деле, вообще любая разработка) - это не вопрос знания конкретного языка программирования, язык это просто инструмент, так что добавить еще один инструмент в ваш ящик с уже имеющимися не проблема (я перешел на Андроид/Java/C прямо после Ruby - а это совершенно разные языки).
Если у вас есть опыт программирования на любых других языках, вы можете начать писать под Андроид очень быстро, ну по крайней мере начать делать какие-то прототипы, хотя вы будете сталкиваться со множеством проблем (например, установка SDK, нехватка документации, баги в самом фреймворке и SDK/Eclipse, ну и конечно позиция разработчиков ядра Андроида "вы этого сделать не сможете, даже не пытайтесь".
Инфраструктура разработки для Андроида еще очень незрелая, в то время, как конечный пользователь никогда не заметит незрелости платформы (на самом деле сама платформа уже довольно развитая), с точки зрения разработчиков еще очень многого не хватает, причем давно.

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

Например, исходники Honeycomb еще не опубликованы, и поэтому тут же встает куча вопросов типа "Как они активируют ту кнопку меню в нижней статусной строке?"

Android Police: Объясни пожалуйста, что ты имел в виду, когда сказал "вы этого сделать не можете, даже и не пытайтесь"?

Maxim Petrov: Андроид имеет множество функций, связанных с интерфейсом пользователя, которых нет по крайней мере в официальном API или же они представлены неполностью. Например, блокировка экрана. Многие приложения позволяют настраивать (вернее, на самом деле, замещать) блокировку экрана, но вам придется выйти за пределы официальной версии API, чтобы заставить эту фичу работать правильно, чтобы учесть все особенности работы на разных устройствах и т.д.
Конечно, разработчики ядра предложат вам не делать ничего такого (в группах Google, например), но на самом деле получается, что либо вы это делаете, либо пролетаете (потому что у конкурентов это есть).

Android Police: Сколько времени тебе понадобилось на то, чтобы выпустить первую версию, которая появилась словно из ниоткуда и в момент впечатлила все сообщество? Как там было с первым релизом на маркете?

Maxim Petrov: Я начал работу весной 2010-го, и за 6 месяцев дошел до билда номер 68 - первая бета. Может, первые пару месяцев я работал не полный рабочий день, но, как только я увидел, что получается, я начал уделять этому все больше и больше времени.
Можно затратить и в два, и в три раза больше времени на первый релиз, хотя, конечно я потратил довольно много времени только на изучение нового для себя и экспериментируя с разными подходами.

Например, код неонового эквалайзера, который вы найдете в нынешней версии PowerAMP, появился на пятой итерации (шестой не было, так как эта версия была довольно тормозная).
Насколько я помню, мне понадобился месяц, чтобы первую бету превратить в версию, опубликованную на маркете. Я бы выпустил ее и раньше, но мне показалось, что люди жить не могут без скробблинга (рекомендательная система), загрузки изображений альбомов и т.д.

Android Police: А вот тут начинается самое интересное :-] Что ты почувствовал, когда нажал кнопку сабмита и опубликовал приложение на сайте маркета? Чего ты ждал и на что надеялся? Стали твои мечты реальностью? Мог ты себе когда-нибудь представить, что твое приложение станет одним из самых популярных платных программ, представленных на маркете Андроида?

Maxim Petrov: Популярность программы меня удивила, еще до публикации на маркете (когда была только бета). Мои первоначальные ожидания были раз в десять меньше. Но выпуск бет показал, что мое приложение - это то, что нужно многим, несмотря на большое количество других музыкальных приложений (примерно тогда же вышел Winamp, и это просто убило надежду, что в этой области можно чего-то добиться).
Так вот, людям нужны были эти фичи и я просто не мог остановить разработку, поэтому первые релизы имели достаточно много функций. Но в любом случае существуют ограничения, поэтому я тщательно отбирал то, что войдет в релиз, и отбрасывал остальное. Должен заметить, правильный баланс найти непросто - чтобы добавить как можно больше функций, но при этом сохранить простоту интерфейса пользователя, удобство, а также окончательный размер приложения.
Во многих регионах PowerAMP является лучшим платным приложением, в других входит в первые тройки-пятерки. Никогда не думал, что моя программа достигнет таких высот, и я действительно этому рад. Но я знаю, что рынок мобильных приложений (не только Андроида, но и рынок вообще) меняется очень быстро, особенно в последнее время. Вам нужно запускать приложение как можно быстрее просто чтобы удержаться на плаву.

Android Police: Можешь ли ты поделиться с нами статистикой загрузок? Сколько в среднем ты стал зарабатывать в день (месяц) с тех пор, как вышел платный релиз программы?

Maxim Petrov: Да, конечно.

PowerAMP Триальная версия (закачки с маркета)

* 3,133,312 всего
* 1,169,260 реальные установки (37%)

Полная версия (закачки с маркета)

* 204,130 всего
* 181,237 реальные установки (88%)

Триальная версия вышла 1 ноября, полная версия - 9 ноября 2010 года, так что это данные начиная с того времени. Интересно, что эта статистика не отражает реальных цифр - было довольно много жалоб на эту тему на форуме разработчиков для Андроида.

[Далее следуют картинки с графиками, которые мне почему-то не удалось разместить здесь, так что пожалуйста, обращайтесь к оригинальному сайту.]

Android Police: Быстро подсчитав в уме, и исходя из пессимистических соображений (если учитывать только реальные установки), мы имеем ($904k) * 70% = $633k только за 5 месяцев, что в среднем означает 127К в месяц чистого заработка.


Android Police: Почему ты использовал различных издателей для бесплатного приложения, а лицензию к платному можно получить только на Маркете? Почему цена лицензии указана в гонк-конгских долларах?


Maxim Petrov: Сначала я работал с американским издателем, который брал от 20, потом 10% (я договорился о снижении комиссионных). Сейчас у меня собственная акционерная компания и я не пользуюсь услугами посредников.
Гугл имеет большие ограничения по странам, из которых принимаются прямые платежи по банковским трансферам. И России в этом списке нет, а Гонг-Конг есть. По сути вы не можете продавать в маркете прямо из России. Можете зарабатывать на рекламе, но только если вы имеете меньше 5К в месяц. Если же вы заработаете больше, то ваш бизнес станет нелегальным ввиду отсутствия некоторых документов от Гугла.

Android Police: Как ты продвигал PowerAMP?

Maxim Petrov: Первые версии продвигались сами, каким-то волшебным образом. Я экспериментировал немного с продвижением изменений в версии месяц назад, но настоящее продвижение и реклама (если не считать факта, что продукт продвигает сам себя) - это то, чего мне сейчас не хватает.
Я планирую потратить на это некоторое время в ближайшем будущем. Просто если мне нужно заняться чем-то другим, то придется сократить время, отпущенное на разработку, а это именно то, чем я занят сейчас (кроме того, я получаю несколько сотен писем в день, так что поддержка пользователей тоже требует времени).
Разные финансовые вопросы, бухгалтерия - это все на аутсорсинге, а остальное делаю я сам.
Я также подумываю о том, чтобы перевести на аутсорсинг и поддержку пользователей, просто потому, что 95% запросов можно отнести к определенным категориям, и, следовательно, их можно разрешить очень быстро. Очень важно иметь правильно настроенную фильтрацию е-мейла. На все запросы, требующие ответа, я стараюсь реагировать в течение 24 часов.


Android Police: Кро занимался дизайном? PowerAMP имеет просто великолепный интерфейс (по моему мнению) - именно этим меня привлекло твое приложение.

Maxim Petrov: Я довольно хорошо владею Фотошопом и те скины, что программа имеет сейчас, полностью созданы мной.

PowerAMP поддерживает скины и уже сейчас содержит 4 встроенных скина. Это определенно расширит возможности поддержки тем - на самом деле функциональность для загрузки скинов уже реализована. Правда, я еще пока не решил, какая версия должна ее включать - 1.0, или, может быть, подождать до выхода версии 2.0.
Еще с 90-х годов сложилась "традиция", в соответствии с которой музыкальные плейеры имеют свой, уникальный стиль (такой, например, как у Winamp и других плейеров для Windows), хотя iTunes и Foobar2000 этой традиции не следуют. Я решил, что у PowerAMP будет уникальный стиль, но, должен признать, не всем это по вкусу. Так что в будущем для программы появится "чисто андроидный, стандартный" стиль.
Я бы добавил другие скины, но уже сейчас программа имеет размер 3Мб (а на девайсах получается еще в 2 раза больше), что является ограничивающим фактором. Но для загружаемых скинов таких ограничений не будет. Я надеюсь, что с появлением этой функциональности люди будут создавать и добавлять собственные скины (конечно, я предоставлю все ресурсы и инструкции).
Кстати, версия 2.0 будет бесплатным обновлением с версии 1, а не отдельно устанавливаемым приложением (просто обновление будет значительнее).

Android Police: Появится ли в будущем версия PowerAMP, оптимизированная для использования на Honeycomb?

Maxim Petrov: Аудио движок, библиотека и другие невизуальные компоненты программы уже отлично там работают. Появятся скины, оптимизированные под планшет. Я запланировал это для версии 2.0 (бета должна выйти в конце весны 2011 года), но движок для скинов уже готов, так что, скорее всего, он будет добавлен в PowerAMP немного раньше.

Android Police: А теперь несколько вопросов от наших читателей. Появятся ли у программы в ближайшем будущем какие-нибудь крутые фишки?

Maxim Petrov: Да, будет настоящее проигрывание без пауз, перекрестное микширование (и другие виды микширования) - вот главные нововведения, которые скоро появятся в следующей версии (1.4).
Полный "ту-ду" лист достаточно велик (вернее, был) - он обновляется в "режиме реального времени" на моем форуме.

Android Police: Возможна ли загрузка дорелизных билдов?

Maxim Petrov: Такие билды публикуются на форуме, обычно они доступны за неделю до релиза.

Android Police: Планируешь ли ты встраивать покупку лицензионного ключа в само приложение?

Maxim Petrov: Нет, не думаю, что будет хорошим решением для PowerAMP. Хотя я собираюсь немного упростить процесс покупки лицензии. У программы множество пользователей, которые уже купили лицензию. И любые манипуляции с системой лицензирования могут привести к проблемам для таких пользователей.
Кроме того, система покупок прямо из приложение не имеет возможности визуально отображать статистику по продажам.
Впрочем, для какого-нибудь нового приложения я бы использовал встроенное лицензирование. Для PowerAMP - тоже, но тогда эта система еще не была доступна.

Android Police: Ты когда-нибудь думал о том, чтобы выпустить версию, поддерживающую рекламные объявления?

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

Android Police: Когда можно ожидать эспорта-импорта плейлистов?

Maxim Petrov: Эта функциональность запланирована для версии 2.0. Новая версия будет распознавать некоторые форматы плейлистов (например, m3u) и экспортировать в них данные.

Android Police: Есть ли у тебя какие-нибудь планы интегрировать программу с облачным хранилищем или удаленным сервисом? Облачный сервис от Амазона, удаленные хранилища, Dropbox, Subsonic, Shoutcast и так далее?

Maxim Petrov: К сожалению, насколько я знаю, Амазон не обеспечивает доступ или API к своему музыкальному облаку для сторонних разработчиков.
PowerAMP может проигрывать удаленные диски напрямую, если они правильно подключены (как папка во внешнем хранилище, но не в корне).
У меня есть планы интегрировать плейер с потоковым сервисов Audiogalaxy (и, возможно, с другими потоковыми провайдерами вроде этого), но не знаю точно, когда это будет реализовано.
В планах также поддержка Shoutcast, но это сейчас не главное. Проблема в том, что потоковые службы требуют постоянного соединения по Wi-Fi/3G, а также очень сильно и быстро сажают батареи, от чего ценность приложения заметно снижается. Но облачные сервисы вроде Amazon Music Cloud (с файлами, кэшируемыми локально) - это отличная идея, и я бы хотел, чтобы Амазон открыл свои библиотеки API сторонним разработчикам.

Android Police: Ты можешь сделать простую кнопку для выхода из приложения, чтобы останавливать его работу, когда оно запущено в фоновом режиме?

Maxim Petrov: PowerAMP не работает в фоновом режиме во время паузы, так что в кнопке выхода нет смысла.

PowerAMP выполняет остановку (нужно нажать и подержать кнопку Play/Pause) - что останавливает процесс проигрывания музыки (то же самое происходит, когда саундтрек установлен на паузу).
Именно так сейчас работают приложения для Андроида - фактически здесь нет отдельных приложений, каждое состоит из нескольких компонентов: действия, сервисы, слушатели вызовов (listeners) и т.д. У каждого свой собственный жизненный цикл, и компоненты, входящие в PowerAMP, созданы на основе правил и рекомендаций API, их хотя поведение может быть изменено с помощью расширенных настроек программы.

Android Police: Будет ли программа иметь возможность для загрузки и просмотра слов?

Maxim Petrov: В настоящее время PowerAMP позволяет просматривать слова, извлеченные из ID3 тэгов, версия 1.3. будет показывать их в области показа обложки альбома (их можно и скрыть). Есть также поддержка для сторонних приложений - они могут передать текст прямо в облость обложки PowerAMP. Думаю, со временем в этих приложениях будет реализована поддержка самого PowerAMP.
Что касается слов, распространяемых по лицензиям - то это стоит очень и очень дорого. Я думаю об этом, но сейчас стоимость лицензий слишком высока.

Android Police: Думаешь ли ли о том(или может быть, уже это реализовал), чтобы использовать файлы плейлистов, которые нельзя потерять как файлы базы данных sqlite?

Maxim Petrov: Sqlite требуется в том случае, если вы не хотите, чтобы ваши плейлисты, содержащие тысячи песен, открывались в течение нескольких минут. Но, как я уже упоминал, версия 2.0 сможет осуществлять экспорт/импорт в/из распространненых форматов (хотя программа будет по-прежнему обращаться к базе данных).

Android Police: Можешь ли ты дать несколько советов тем, кто хочет создавать успешные приложения? На какие грабли могут наступить начинающие разработчики?

Maxim Petrov: Постарайтесь создать по-настоящему качественные приложения, а также прислушиваться к вашей аудитории. Тестируйте приложение на как можно большем количестве устройств, так как главная ошибка заключается в том, что приложение просто не работает, и все из-за того, что разработчик поленился протестировать обновление (пример - недавнее обновление для Samsung Galaxy S 2.2.1, которое ломало настройки приложения после его переустановки).

Android Police: Отлично, а теперь поговорим о менее серьезных вещах. Какое твое любимое приложение или, может быть, игра для Андроида?

Maxim Petrov: Ну вообще-то я не особо играю на смартфоне, но Angry Birds вне конкуренции. Что касается приложений, то их довольно много: Launcher Pro, Power Control Plus, RealCalc, OS Monitor, CatLog, ES File Manager, Yandex Maps - те, которыми я пользуюсь постоянно.

Android Police: И вот еще что - как насчет три-пятьдесят (очень популярный вопрос)?

Maxim Petrov: Да, это именно столько, сколько Google платит мне за каждую покупку PowerAMP. Точнее, 3.49, где мой цент, Google? :)

Android Police: Хочешь сказать что-нибудь еще для нашего интервью?

Maxim Petrov: Спасибо, Артем, за интервью, и спасибо сайту Android Police, это очень хороший сайт.

3 comments:

  1. Жалко что он не озвучил все трудности продвижения приложения в топ. Хорошо что есть такой сервис как http://apppromo.net/ который готов заняться продвижением и раскруткой вашего приложения

    ReplyDelete

  2. I do not understand the Russian language, I had to translate)
    But what I realized is that I would be very tired of this question attack. It also takes a lot of time!
    Richard Brown virtual data room pricing

    ReplyDelete
  3. I will talk about how accidentally clicking on the link good casino on net I got rich winning a good amount

    ReplyDelete