Pull to refresh

История одного android-приложения

Reading time5 min
Views41K

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

Зачем


Вначале моим основным мотивом было простое желание попробовать писать под android, хотя позже это переросло в нечто большее. К тому же, в то время, аналогов да и вообще приложений для Беларуси было очень мало. А тут ещё и очередной валютный кризис. Вот и зародилась идея.

Идея


Сделать виджет для получения актуальной информации о курсах валют в Беларуси. Тогда ещё был популярен один ресурс полулегального обмена валют. С загрузки этой информации всё и началось. Потом, конечно, были добавлены разные банки Беларуси, России, Украины, а изначальный источник, со стабилизацией валютного рынка, канул в лету.

Механизм


Учитывая моё желание писать под android, а не для backend-сервера, было решено использовать общедоступные источники информации с малым потреблением трафика. Как бы бесперспективно это не звучало, оказалось — вполне реально. Просто нужно потратить время на переписку и договориться с владельцами ресурсов, а также подстроить код приложения под каждый ресурс.

Источники


Каждый источник загружаемой информации — это отдельная история. Кто-то хочет денег, кто-то запрещает использование, хотя даже и не планирует разрабатывать android-версию, кто-то после моего обращения быстренько стряпает своё приложение, иные тянут переписку по несколько недель с нулевым результатом, однако есть и положительные примеры: некоторые сразу разрешали и даже изменяли для моего удобства собственный API!
Если обобщить, самыми отзывчивыми оказались украинские ресурсы: я нашел сразу несколько вариантов интеграции, причем с явной ссылкой на сайте и приемлемой документацией. Второе место — Беларусь — хотя и с трудом, часто при помощи отслеживания AJAX запросов, но тоже можно было найти способ. Ну и, к сожалению, хуже всего — Россия — не только полное отсутствие документации и приемлемых способов интеграции, но даже банального ответа на письма. Если кто-нибудь покажет мне приемлемый российский источник информации — буду очень благодарен.

Примерная оценка рынка


Хоть как-то оценить объём целевой аудитории перед публикацией помогла вот эта статья. Ну а перестроить статистику для Беларуси было не так уж сложно. Тогда получилось около 500k устройств. Даже 5% этого рынка кажутся вполне достаточными для публикации приложения.

Сообщество


Не ожидал такой высокой активности, правда! Отзывы на маркете, письма на ящик разработчика с предложениями по улучшению, самое главное, живой форум с отзывчивыми участниками. Огромное им спасибо! Это очень помогает и мотивирует к дальнейшей разработке.

Конкуренты


Вскоре после запуска появились первые конкуренты (тема всё-таки была актуальна). Разработчики толкали неразобранный html в поле вывода текста или загружали web-информеры для сайтов через WebView. Сейчас, конечно, эти приложения уже неактуальны. Однако и у них было чему поучиться: они натолкнули меня на мысль расширить функционал экраном поиска лучших курсов — то есть не только показывать актуальные курсы конкретных банков, но и выбирать лучшие курсы из предлагаемых по городу.

Аналитика: поворотный момент


С самого начала ощущалась нехватка информации о поведении пользователя. Поэтому был подключен Google Analytics и это дало интересный результат: оказалось, всего треть пользователей использует основной функционал (виджеты), остальные — только открывают экран с лучшими курсами. Значит надо сменить вектор разработки: уделить больше внимания экрану лучших курсов. Основные улучшения с тех пор касались, в основном, более востребованных функций.

Ещё поворот: курсы на карте


Однажды вечером, стоя на улице и судорожно соображая, в какой из ближайших продуктовых магазинов пойти, чтобы успеть до закрытия, и не слишком далеко нести сетки, и не проиграть по ценам, я вдруг понял, что человек, желающий обменять валюту, мучается почти теми же вопросами.
Так почему же не реализовать некую карту обменников, привязанных к местности с возможностью видеть курсы в них (например, как на табло в самом обменнике)?
Как найти, привязать, собрать, обновлять данные — это тема для еще одной статьи, скажу только, что в итоге всё сложилось.
image

Снова конкуренты


Спустя несколько месяцев после публикации на одном из конкурсов новых android-приложений (то есть моё приложение не подходило по времени создания) мелькнула и даже заняла призовое место одна работа с очень близким функционалом.
Да ещё и достаточно крупный локальный портал решил написать аналогичное собственное приложение.
Никого не собираюсь обвинять в плагиате (идея ведь лежит на поверхности), наоборот, мне даже приятно осознавать, что первым увидел нишу и реализовал решение для неё.
Тем более, несмотря на достаточно сильную конкуренцию, приложение остаётся в первой десятке в категории “Финансы” уже достаточно долго, обладая, при этом, фишками, которые до сих пор не реализованы у конкурентов.
Честно говоря, когда стало известно о появлении конкурентов, я даже немного обрадовался: значит идея стоящая и будет развиваться.

Продвижение и статистика


Тут ничего особенного: были написаны несколько уникальных статей, есть форум, статья wiki. Сильно помогло увеличить количество отзывов ненавязчивое диалоговое окно с предложением оценить приложение на маркете.
Единственный ощутимый скачок загрузок был только после публикации обзора на 4pda по программе поддержки разработчиков (тогда это ещё было бесплатно).
image

Цикл разработки


По прошествии некоторого времени у меня сложился следующий процесс.
Замечания, предложения, сообщения об ошибках собираются из Google Play Store и форума. Активная фаза занимает 2-4 недели. Когда все запланированные функции реализованы, сборка должна пройти следующие этапы:
  • Небольшой smoke junit-тест
  • Контроль энерго- и трафикопотребления
  • Alpha-тест
  • Beta-тест на форуме и в G+ группе
  • Публикация на Google Play Store

image
Волны новых версий: далеко не все пользователи периодически обновляют свои приложения, а некоторые вообще никогда. Около 50% устройств обновляются за первые 2 недели после выпуска новой версии, потом темпы обновления значительно снижаются.

Исходный код


Если кому интересно, он открыт и находится у гугла. Буду благодарен за ревью и рекомендации.

Выводы


Не претендуя на истину в последней инстанции, сформулирую кратко, что я знаю шестьсот сорок рыбок спустя
  • Знай своего пользователя: что он делает в приложении? как долго? насколько часто? Для этого есть достаточно инструментов. Возможно, ты движешься не туда.
  • Не стоит недооценивать сообщество: среди пользователей найдутся те, кто захочет тебе помочь — просто так, особенно, если будешь внимателен.
  • Не бойся конкуренции. Это то, что сделает приложение качественнее и, возможно, покажет, что оно лучше, чем ты думал.
  • Спроси (помощь, доступ, разрешение) и, возможно, получишь то, что хочешь. Ведь если не спросишь — точно ничего не будет.
Tags:
Hubs:
Total votes 65: ↑59 and ↓6+53
Comments24

Articles