Хабрахабр

За что Android-разработчики ненавидят Google

Компания поддержала любовь разработчиков к Kotlin, сообщество в целом одобряет нововведения платформы, а на официальную IDE не обрушивается такой шквал критики, как в iOS-мире — чего ещё желать-то? Если посмотреть на мир Android, с первого взгляда кажется, что между разработчиками приложений и Google царят мир-дружба-жвачка.

В последние месяцы всё чаще обсуждались ситуации, из-за которых часть Android-разработчиков жёстко критикует компанию. Но это только часть картины. В чём дело и что это за ситуации, которые страшно злят одних разработчиков, но остаются незаметными для других?
Для примера переведём пост из сабреддита /r/androiddev, появившийся в сентябре:
Дело доходило до массового призыва «давайте давить на Google через Евросоюз и медиа, раз по-хорошему там не понимают».

Я подал апелляцию, и она была отклонена. «Я получил письмо о том, что мой аккаунт разработчика удалён и мне не следует пытаться создать новый, а вместо этого надо найти новый способ дистрибьюции моего приложения. Я не получал никаких предупреждений, и моё приложение не удаляли до уничтожения моего аккаунта, так что понятия не имею, о каких нарушениях идёт речь. Причиной было указано просто «Ряд нарушений правил», ничего конкретнее.

Оно было бесплатным, без рекламы и внутренних платежей. У меня было только одно дурацкое приложение с картами таро, которое я сделал, чтобы попрактиковаться в размещении приложений в Google Play. Оно точно не оскорбительнее десятков других приложений с картами таро. Там не было ничего оскорбительного, кроме некоторых изображений на картах (люди, заколотые мечами).

Есть ли хоть что-то, что я могу сделать, кроме как выбрать другую сферу деятельности?» Большинство попадавшихся мне постов об удалении аккаунта разработчика довольно удручающие.

Подобные посты возникали и раньше, но в последние полгода их на Reddit было особенно много — настолько, что в этом стали видеть тенденцию. Если просуммировать претензии из них, список получается таким:

  • При борьбе с приложениями-нарушителями под раздачу по ошибке попадают ничего не нарушившие приложения и аккаунты.
  • Помимо этого, Google Play ещё и удаляет те аккаунты, которые считает «связанными с нарушителем» — так что из-за личного проекта разработчика могут пострадать аккаунты его работодателя или коллег.
  • Описания нарушений бывают невнятными, и тогда ничего не понятно: что вообще вменяется в вину, действительно ли ты виноват, как это можно исправить или оспорить.
  • А когда всё же пытаешься оспорить и подаёшь апелляцию, получаешь шаблонные отказы без проблеска живой речи. Непонятно, видел ли вообще живой человек твою апелляцию, или всё сделала автоматика. А если кто-то и видел, невозможно связаться с этим человеком и прояснить ситуацию.
  • При этом популярные приложения от крупных компаний могут рассчитывать на нормальное отношение (понятно, что если вдруг Facebook по ошибке удалят, то это будет исправлено быстро и вручную). А вот инди-разработчику без команды юристов, даже если у него миллионы установок, остаётся только биться в стену и завидовать Фейсбуку.

То есть можно долгие годы совершенствовать полезное Android-приложение и зарабатывать им на жизнь, ничего не нарушая, а потом Google внезапно и без предупреждения лишит основного источника заработка, в который вложены годы труда. А когда попробуешь восстановить справедливость, даже не станет слушать, оставив общаться с роботами.

Слова «да я ничего не нарушал» нередко можно услышать от нарушителей. Конечно, прежде чем преисполняться праведного гнева, надо сделать поправку на то, что мы не можем проверить истинность всех заявлений разработчиков.

А кроме того, обратимся к ещё одной истории:
Но даже если разработчики лукавят, вряд ли они все дружно обманывают, когда говорят «в этой системе не достучаться до живого человека».

«11 октября Google удалил моё приложение Always On AMOLED из Play Store из-за ошибки в их системе DMCA.

<...> Вот эта DMCA-жалоба — как сами можете увидеть, она никак не связана с моим приложением, его даже нет в том списке приложений, которые Flipkart требует удалить. Судя по всему, компания Flipkart направила DMCA-уведомление с требованием удалить несколько клонов их приложений, и по ошибке вместе с ними удалили моё.

5 миллионами установок и рейтингом 4. Это явная ошибка, из-за которой удалено приложение с 7. Разумеется, я попробовал связаться с Google <...> четырьмя днями позже получил стандартное (вероятно, сгенерированное ботом) сообщение «мы изучили вашу апелляцию, но по-прежнему не можем восстановить ваше приложение в магазине»». 3.

Эта история отличается от многих других тем, что она закончилась хорошо: возникла шумиха, о ситуации написал известный сайт Android Police, в Google это заметили, и приложение было восстановлено в магазине. Повод порадоваться? Скорее повод понять, что это означает:

  1. Раз в Google признали ошибку, то тут нам не требуется верить разработчику на слово, и теперь мы знаем доподлинно: да, действительно происходят случаи, когда оказываются удалены ничего не нарушившие приложения.
  2. Раз в Google на апелляцию прислали шаблонный отказ, который позже тоже оказался ошибочным, то теперь мы знаем доподлинно: да, система апелляций действительно не работает так, как должна (похоже, что из-за чрезмерной автоматизации).

В общем, очевидно, что проблема есть. Вряд ли она очень распространённая: статистики нет, но интуитивно предположу, что с ней сталкивается заметно меньше одного процента Android-разработчиков. Однако для столкнувшихся это настолько болезненно, что ситуация всё равно выглядит нездоровой.

Картина вырисовывалась такой: компания хорошо знает о проблеме, но игнорирует её, при этом продолжая говорить на презентациях о своей большой любви к разработчикам. К тому же, хотя /r/androiddev явно читают многие гуглеры, и порой они отвечают Android-разработчикам на некоторые вопросы, возмущённые посты о Play-произволе оставались без какой-либо реакции.

Некоторые стали бояться «я могу оказаться следующим» и порой даже удалять из Google Play свои некоммерческие приложения, чтобы из-за них случайно не задело основные коммерческие. Неудивительно, что у многих это вызвало сильный негатив. Старожилы замечали «вообще говоря, годы назад всё было ещё хуже», но это не меняло ситуацию. Количество критики в комментариях росло, а её градус повышался.

Во-первых, если не сидеть на Reddit, а просто заниматься разработкой, то вполне можешь никогда не узнать о существовании проблемы. В то же время среди других Android-разработчиков всё это вообще не становилось темой для обсуждения. В итоге возникла ситуация, когда одни Android-разработчики кипят гневом, а другие в ус не дуют. А во-вторых, если ты не инди-разработчик, а работаешь на компанию и просто пишешь код, то проблемы с её Play-аккаунтом — не твоя головная боль (если «за компанию» с её аккаунтом не удалят твой).

Он читается прямо-таки как революционный манифест; основной посыл — «Хватит это терпеть, давайте объединимся и пойдём биться за свои права, обращайтесь в Еврокомиссию и привлекайте внимание прессы». У тех, которые кипят, апогеем стал программный пост «The Future of Android Development». В /r/androiddev нечасто можно увидеть пост с 200 апвоутами, а вот в этом случае число апвоутов превысило 2000 — то есть обращение очень срезонировало в сердцах.

Компания хочет собрать в одном месте много Android-разработчиков? А вскоре после этого проходил Android Dev Summit, и в нём увидели подходящую площадку для давления на Google. Звучали слова вроде «не давайте всяким developer advocate отвечать вам, что это дела другого отдела и их хата с краю. Вот там и призовём её к ответу, превратив мероприятие из милого уси-пуси в суровый разговор по делу. Developer advocate призван быть нашим сторонником внутри компании, он должен сделать всё возможное, даже вмешиваясь в работу другого отдела».

На Android Dev Summit проходила традиционная сессия вопросов и ответов Fireside Chat, и в список дающих ответы гуглеров включили ответственного за Google Play, чтобы он прокомментировал ситуацию. Посмотрев на такое, в Google решили сыграть на опережение, подготовиться к мероприятию и в кои-то веки высказаться. Можете посмотреть это сами (начиная с 41:12), а можете прочитать сокращённый перевод ниже.

— Ещё до мероприятия у сообщества возникали вопросы вроде «По каким принципам вы удаляете приложения» и «Куда мне обращаться, если моё удалено», мы тут позвали Пола, он сейчас об этом расскажет.

Безопасность пользователей — это очень-очень важно. — Иногда мы удаляем приложения. Поэтому мы благодарны вам за приложения. Мы магазин, и нам нужны приложения и пользователи. Мы очень стараемся минимизировать число ложных срабатываний системы. Есть нарушители, и у нас есть правила для защиты пользователей. И думаю, в ближайший квартал вы можете ожидать улучшения в нашей системе защиты. А если ошибаемся-таки, можно подать апелляцию, мы смотрим на каждую. Мы делаем всё, чтобы у вас оставалась ваша работа, а у пользователей безопасность.

Моё личное оценочное мнение: это не ответ, а уход от ответа, старательно притворяющийся, что никакой проблемы не существует. Нет, на самом деле у сообщества не возникал вопрос «по каким принципам вы удаляете приложения» — у него возникал вопрос «доколе будет продолжаться этот трэш». Нет, на самом деле никто не интересовался тем фактом, что «можно подать апелляцию» — интересовались тем, какого хрена апелляции не работают. Слова о скором улучшении вроде как должны обнадёживать, но когда в них нет никакой конкретики, они тоже звучат булшитом — «улучшением системы» можно назвать любой закрытый тикет. В итоге все острые вопросы остались неотвеченными, и ощущение такое, что и здесь Android-разработчики вместо живого человека пообщались с нейросетью: «оставайтесь на линии, ваше приложение очень важно для нас».

Истории об удалении аккаунтов/приложений не прекратились, а кроме того, нашумела другая ситуация. С Android Dev Summit прошло полтора месяца — что происходит теперь?

Есть стандартные условия, а также можно отправить запрос «сделайте исключение для моего приложения, оно не подходит под уже описанные условия, но для него эти права требуются по таким-то причинам». Ранее Google сообщил, что теперь приложениям для доступа к звонкам и SMS недостаточно согласия пользователя — нужно ещё, чтобы этот доступ был обоснован функциональностью самого приложения. Но на практике оказалось не так гладко. Всё это в целом звучит разумно.

6) призвано автоматизировать различные смартфонные задачи, поэтому запрашивает доступ к звонкам/SMS, чтобы автоматизировать работу с ними. Приложение Tasker (больше миллиона установок, оценка 4. По утверждению его создателя, он отправил запрос об исключении («вы в условиях не учли приложения-автоматизаторы, но им же это явно нужно»), а спустя 40 дней (!) получил отказ (вероятно, от живого человека, но сформулированный формальным языком и не оставляющий возможности обсудить ситуацию).

Безопасность — это важно, но нельзя ли ради неё добавить крупное предупреждение, а не отнимать у людей то, чем они хотят пользоваться?» Разработчик публично возмутился: «Работа с SMS — одна из самых популярных функций в моём приложении, люди ради этого платят мне деньги, и теперь Google хочет отнять у меня заработок, а у пользователей нужную им возможность.

И в итоге, заметив происходящее, Google добавил в список «exceptions» пункт «task automation»: приложения-автоматизаторы официально стали считаться подходящими для того, чтобы запрашивать доступ к звонкам/SMS. Подавляющее большинство читателей оказалось на его стороне, поднялась большая шумиха.

Хотя эта ситуация отличается от случайного удаления, есть много параллелей:

  • Разработчик внезапно обнаруживает, что по его добропорядочному приложению нанесён удар, ставящий под угрозу основной заработок.
  • Разработчик пытается исправить ситуацию через предназначенный для этого канал и получает формальный отказ.
  • Однако, когда поднимается шум и происходящее замечают живые люди в Google, они решают, что вообще-то отказывать не надо было.

То есть схожие проблемы дают о себе знать и здесь. И даже после того, как ситуация с Tasker разрешилась, у разработчиков приложений с доступом к звонкам/SMS остались вопросы и претензии: например, недавно появился пост с заголовком «Call/SMS permissions fiasco — Google why do you hurt us so?»

Google — компания, которая вкладывает много ресурсов в развитие Android, в том числе и в удобство разработчиков. Тут и вправду можно задаться вопросом «почему ты так с нами». Почему тогда в другой ситуации, когда некоторым разработчикам ещё хуже (AS хотя бы перезапустить можно), компания не спешит менять ситуацию и делает вид, что проблемы нет? Когда Android Studio стала вызывать утечки памяти, её команда прямо признала проблему и пообещала предпринять меры.

Компания Google вообще известна тем, что у неё всё печально с поддержкой, не только когда речь идёт об Android. Снаружи невозможно знать наверняка, но вспоминается вот что. И когда разработчик, отправивший апелляцию, получает автоматизированный отказ, это не особо отличается от того, как стучатся лбом в стену пользователи других гугловских продуктов.

Это настолько существенно, что некоторые жалуются: «Я понимаю, что поддерживать такой магазин стоит дорого, но я охотно платил бы $100 в год, как iOS-разработчики, если бы за это мне гарантировали вменяемые жалобы и хорошее рассмотрение апелляций». Но есть отличие в том, насколько это отсутствие вменяемой поддержки болезненно: когда речь идёт о безосновательной потере основного заработка, этот вопрос куда острее, чем «я что-то нажал и всё исчезло».

Любопытно, что недавно запустился платный пользовательский сервис Google One, и в числе того, что даёт подписка, подчёркивают «Экспертов Google» — по сути, как раз человеческую поддержку.

Google, раз для пользователей вы такое сделали, можно тогда и для Google Play сделать хотя бы платную нормальную поддержку, раз уж от бесплатной столько головной боли?

Мы в курсе страстей, бурлящих в мобильной разработке, потому что проводим конференцию Mobius. Минутка рекламы. Если для вас это звучит интересно, обратите внимание: ближайший Mobius пройдёт в Петербурге 22-23 мая, билеты уже в продаже, и с 1 января они подорожают. Но сама она не про страсти, там вместо этого суровые технические доклады с кодом и конкретикой (можете убедиться по видеозаписям на YouTube).

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть