Android в Китае и много магазинов
Благодаря разбирательству Epic vs. Apple стала доступна публике внутренняя презентация Google “Android in China”. Эту презентацию в качестве одного из доказательств представила Apple — очень уж яркая картина там описана.
Представьте себе — Китай, самая крупная страна мира по населению, с прекрасным проникновением мобильных сервисов, которое при этом еще и растёт год от года, но в ней нет Google Play. Собственно, вообще нет сервисов Google. Android, разумеется, позволяет создание альтернативных магазинов приложений и свято место пустым не осталось.
Всего в Китае насчитывается несколько сотен апсторов под Android, правда, действительно стоящими оказываются самые крупные 20. Они, как правило, делятся на принадлежащие крупным интернет-компаниям — например, WeChat, Alibaba, Baidu, Tencent, — и производителям смартфонов, как Huawei, Xiaomi, Oppo и так далее. И вот как на самом деле выглядит эта картина мечты.
Прежде всего, у каждого магазина свои требования к разработчикам. Например, разный формат скриншотов и описаний, допустимых в магазине. Некоторые магазины ограничивают возможные варианты платежей в приложении, некоторые не обращают на это внимания. То есть даже ограничив свой выбор топ10 магазинов, разработчику придется проделать немало работы, чтобы опубликовать и поддерживать приложение.
При этом многие магазины собирают приложения из других магазинов. То есть опубликовав приложение, разработчик практически теряет контроль над его дистрибуцией, он не может ни выпустить определенную версию в определенное время для всех своих пользователей, ни вовремя исправить критическую ошибку.
Правда, магазины предоставляют возможность заявить свои права на существующие приложения — но это требует найти его, подать заявку, переподписать бинарник, например, — короче, тоже работа.
В итоге разработчики находят другой способ — они выкладывают приложение на собственном сайте и оставляют магазинам возможность его публиковать. Что и происходит в случае с популярными приложениями. Еще можно нанять специальную компанию, которая предоставляет сервис публикации и апдейтов приложения в магазинах.
Кстати, если интересно, раньше комиссия магазинов составляла 70%, как правило, но в последние годы это соотношение меняется — например, у Huawei оно составляет классические (для остального мира) 70:30 (разработчик/магазин). Но это редкий случай — например, Tencent выплачивает мелким разработчикам 60% прибыли, а вот крупным приходится довольствоваться 50%, а то и 30 процентами.
Все эти магазины активно сражаются за пользователя — кстати, есть еще магазины, принадлежащие операторам сотовой связи, но они не так популярны. И, как понятно, война идет с использованием всех доступных средств — например, производители смартфонов сплошь и рядом осложняют установку сторонних магазинов или приложений через сторонние магазины на смартфон. Фактически, такая установка равноценна установке APK-файла на обычный Android — вам надо согласиться с тем, что вы в здравом уме собираетесь установить небезопасный файл, сделав больше кликов, чем обычно.
Знаете, чем отбиваются магазины интернет-компаний? Просят при собственной установке доступ к Специальным возможностям системы (Accessibility) и после этого сами прокликивают эти предупреждения, фактически получая возможность делать вообще всё, что угодно.
Что остается делать разработчикам? Кроме хостинга своих приложений самостоятельно, они активно используют такие вещи, как массовое использование WebView и динамическую загрузку кода.
Но это еще не всё. Ведь чем ценен, например, iOS AppStore, кроме хостинга и распространения приложений? Сервисом нотификаций. И push нотификации поддерживаются каждым из китайских магазинов. И это еще одна война.
Каждый из магазинов присылает свои нотификации — например, об обновлениях программ. Они сражаются за внимание пользователя. Но это еще ладно — как легко догадаться, производители смартфонов стремятся не пропустить такие нотификации конкурентов. Что делают конкуренты и крупные разработчики? Перестраивают систему уведомлений, держа в памяти резидентную программу, которая просто всегда находится в онлайне и ждет нотификаций. Со всем соответствующим эффектом для аккумулятора и потребления данных.
Что в ответ делают производители смартфонов? Предлагают пользователю включить режим оптимизации аккумулятора и регулярно очищают память, убивая все сервисы конкурентов.
Которые в ответ применяют практику chain-starting — если пользователь запускает одну программу, использующие их SDK, она будит все остальные на этом же SDK и те опять готовы к приему уведомлений.
Это еще не весь хаос. Из-за отсутствия контроля за дистрибуцией разработчики оказываются незащищенными перед пиратством. Поэтому там популярна обфускация кода, достигающая огромных размеров. Фактически, при 20-30 и более магазинах разработчик вынужден и сам хостить приложение, и самостоятельно строить систему нотификаций, и бороться с пиратами.
И ко всему этому присоединяется WeChat, который настолько большой, что о собственной дистрибуции может не волноваться — его точно поставят все, — поэтому он несколько лет назад запустил Mini Program — фактически веб-приложения внутри своего мессенджера. В этом случае разработчику — который и так вынужден активно использовать WebView, — достаточно сделать приложение внутри WeChat и забыть о проблемах с кучей сторов.
И, конечно же, все сторонние сторы теперь борятся еще и против WeChat. Конечно, это под силу производителям смартфонов, поскольку WeChat все же использует системные API. Например, они могут следить за вводом с клавиатуры и реагировать на него до WeChat, или фиксировать весь голосовой набор текста.
Короче, всё это выглядит как прекрасный материал для демонстрации сторонникам большого количества магазинов в iOS с явным укором «Вы что, хотите, как в Китае?»
Более сжатая версия с некоторым количеством слайдов есть в твиттере Бена Эванса.