Содержание статьи
Google Play
Существует несколько виртуальных магазинов приложений для Android, но по-настоящему популярным остается только Google Play. Если ты ищешь Android-приложение, оно обязательно будет в этом репозитории.
Услышав о пропаганде монополии Google Play, в эту статью стремительно врывается Евгений Зобнин со своей старой, а точнее — классической статьей «Отвязываем смартфон от всевидящего ока Google».
Как и в любом джентльменском клубе, в Google Play есть свои правила поведения. Так, продажа встроенного контента обязана быть организована через In-app Billing API — компания будет выступать посредником, забирая себе процент от уплаченных пользователями денег.
Из этого правила есть и небольшие исключения: разработчик может брать деньги с пользователей напрямую, если он будет продавать что-то очень реальное, вроде еды или авиабилетов.
In-app Billing v. 3
Google активно работает над своими продуктами: непопулярные закрываются, а востребованные регулярно получают обновления. Для In-app Billing уже доступна третья версия, которую мы сегодня и будем использовать. И, как это принято у крупных компаний, предыдущие версии API быстро перестают поддерживаться. Если у тебя есть продукт с интегрированной старой версией In-app Billing, рекомендую быстрее обновиться.
Надо сказать, что обновление получилось довольно интересным. Самое главное, теперь продать пользователю можно только два вида контента: подписку или единовременную покупку.
- Подписка. Пользователь будет постоянно платить за пользование приложением, внося деньги каждый месяц или раз в год. Интервалы платежей настраиваются разработчиком, и тут есть где продемонстрировать талант маркетолога.
- Единовременная покупка. Это возможность один раз получить с пользователя деньги за какую-то фишку твоего приложения: доспехи для персонажа, дополнительные функции или отключение рекламы. При этом для единовременных покупок введен параметр «потреблен» (consumed) — индикатор того, получил ли пользователь оплаченный контент или нет. Как только услуга будет предоставлена, тот же товар можно будет продать еще раз.
Кроме обновленных правил продаж, Google обещает в новой версии API еще более надежную и стабильную работу механизма обмена данными между Android-приложением и сервером Google, принимающим деньги пользователя. Звучит все это довольно сложно, но скоро ты поймешь, что получать деньги в действительности не так трудно.
Гении копируют
Сейчас будет приятный сюрприз для начинающих разработчиков: компания Google приготовила множество небольших приложений, показывающих, как правильно использовать возможности экосистемы Android. И это очень полезно: обычно после чтения документации появляются вопросы, а ответы ищутся где-то на стороне. Демки Google всегда содержат самый актуальный код, в отличие от форума Stack Overflow, где в топе часто болтаются устаревшие, а иногда и просто плохие советы.
Работу с In-app Billing мы начнем с небольшого приложения TrivialDrive, его исходники можно получить буквально тремя кликами в Android Studio: File → New → Import sample. Это небольшая игра с продажей контента, а исходники снабжены подробными комментариями.
Чтобы разработчик точно не запутался, как правильно работать со встроенными покупками, Google самостоятельно формирует большую часть клиентского кода. Это довольно мудрое решение: учитывая деликатность финансового вопроса, все приложения в Google Play должны работать четко и без ошибок, а лучше самой компании код никто не напишет. Рекомендую пробежаться глазами по комментариям в примере — их довольно много, и все они по делу.
Регистрация
Продавать контент через In-app Billing возможно, только если твое приложение выложено в Google Play. Если у тебя еще нет аккаунта разработчика, немного тебя расстрою: регистрация стоит 25 долларов. Впрочем, это будет хорошим стимулом не бросать программирование, а написать качественное приложение и окупить затраты.
В дополнение к обычной предрелизной подготовке — созданию описания, скриншотов и заполнению разных формочек — требуется еще подготовить контент для продажи. Для однозначной идентификации приложения нужен открытый ключ RSA, он уже сгенерирован и ждет в разделе «Инструменты разработки».
Раздел «Контент для продажи» будет пока еще недоступен — предполагается, что разработчик должен сначала написать подходящее приложение. Но это усложнит понимание процессов, поэтому добавляй в манифест-файл разрешение Billing и скорей заливай созданный APK.
<uses-permission android:name="com.android.vending.BILLING" />
Процесс регистрации товаров для продажи несложен, нужно только определиться с ценовой политикой. Здесь рай для уловок продажника: можно создавать разные цены в зависимости от регионов, устанавливать льготный период подписки и прочее.
У каждого товара будет идентификатор, его принято называть SKU (stock keeping unit) или идентификатором товарной позиции. Он должен быть уникальным, и его нельзя будет поменять в дальнейшем. Вообще, в этом разделе лучше сразу все сделать без ошибок — к примеру, активированную подписку в дальнейшем убрать будет нельзя.
Продаем свое
Конечно, изучением демки сегодня дело не ограничится, но в новый проект из нее перейдет достаточно многое. В будущее приложение нужно полностью скопировать две папки: aidl и util. Код, который за нас уже написали создатели API, значительно упростит взаимодействие с серверами Google.
При изучении исходников TrivialDrive сразу заметен один недостаток: набор товаров жестко зашит в коде, а это не очень практично. Я решил это исправить: в новом приложении товары будут храниться в виде списка, который можно формировать динамически. При этом у каждого элемента будет свой ценник и продажи будут совершенно независимы.
UI
Начнем с фасада приложения — верстки его визуальных элементов. Они могут быть произвольными, главное, чтобы пользователи за них платили. Я воспользовался разметкой RelativeLayout и списком RecyclerView. Оформленная подписка — это стабильный доход каждый месяц, добавим такую возможность тоже.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»