Многие бегуны с утра измеряют пульс покоя. Если с утра он повышен, значит ты дал лиху — перетренировался. Я не бегун, но тоже измеряю. На апсторе есть удобная программа для измерения пульса по лицу, которая идеально мне подходит.

Но около года назад я отложил свой айфон в сторону, взяв андроид. На следующее утро я неожиданно понял — я больше не могу измерять пульс по лицу не вставая с постели. Я обыскал весь Google Play, но не нашел ничего похожего. Почему таких приложений нет в андроид?

Я тоже задался этим вопросом, тема мне показалась довольно интересной и решил написать свое приложение, заодно и разработку под андроид попробую.

Получить пульс по лицу — непростая задача. Соотношение сигнал-шум просто ужасное: если цветовое разрешение камеры имеет 256 градаций на цвет, то амплитуда полезного сигнала будет меньше 1 (минимального шага): 0.08 — 0.30. Понятно, что результаты измерения будут сильно зависеть от железа: камеры, встроенных алгоритмов постобработки изображения и вычислительной мощности.

К началу лета я написал приложение и протестировал на всех доступных устройствах — получалось приемлемо. Пришло время для тестов на людях и тут в мое поле зрения попала статья о новой возможности Google Play — внутреннем тестировании (internal test track). Я решил попробовать.

Как это выглядело в моей голове


  1. Закачиваю приложение, даю ссылку тестерам, выясняю работает ли приложение вообще
  2. Выхожу на модераторов Гугл, предлагаю фичеринг (подборка от редакции русского Google Play разделе “Новые программы”)
  3. Ориентируюсь по обстоятельствам

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

Как все было на самом деле


Я загрузил приложение на Google Play. Нажал «опубликовать», но ничего не произошло. Тут я очень быстро перешел от первого пункта к третьему, но не тем путем, которым хотелось. Оказывается, для внутреннего тестирования на 2 человека вам нужно:

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

Сам того не подозревая, я “придумал” политику конфиденциальности Ecquire. Что, по моим субъективным ощущениям, тоже повлияло на дальнейшие события.

Политика конфиденциальности Ecquire

Видимо, все эти приготовления были просто необходимы, чтобы протестировать прототип с парой друзей (“Internal test: Quickly distribute your app for internal testing and quality assurance checks.”). В Apple App Store, насколько я знаю, для тестирования прототипа можно обойтись только пунктом про загрузку приложения на сервер.

После отправки я получил отказ в публикации приложения для внутреннего теста. Это было немного неожиданно, но не накладно — я исправил недочеты в описании по своему разумению. Переотправил — его быстро приняли. Разослал ссылки тестерам, работа закипела.

Неожиданные препятствия


Вечером того же дня мне пришла анонимка письмо с угрозами:

письмо целиком

Ваше приложение приостановлено.
Приостановлено — не забанено, подумал я. И был прав. «Приостановлено» значит не просто забанено, а выпилено из магазина вместе со всеми пользователями, оценками, описаниями, которые вы сочиняли, и графикой, которую вы сохраняли. Также ваш аккаунт помечается как недобросовестный для будущих проверок.

Надежды на фичеринг резко утихли. Читаем письмо дальше
Ecли это повторится — мы удалим ваш и все связанные гугл-аккаунты, которые найдем.

Это повергло меня в шок. Гугл, остынь. Я просто хочу отправить свое приложение друзьям, чтобы они смогли протестировать его. Это внутренний тест на 2 человека. А ты хочешь удалить мои аккаунты? Я привязал аккаунт разработчика к основной почте, пользуюсь gmail, диском, youtube, многие сервисы привязаны к этой почте — ты бы хоть предупредил при создании аккаунта разработчика.

О проверке медицинских приложений


Я стал внимательно вчитываться.


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

Да нет, в Google Play более 100 пульсометров, часть из которых вообще не работает, а часть предлагают приложить палец к экрану, чтобы измерить пульс и давление.

Например, приложение Проверка артериального давления: тест сканирования или Регистратор артериального давления. Последний еще и рекламируется в Google Play. Ниже скриншот первой программы, при нажатии на «Save» давление и пульс сохраняются в дневник.


Еще один способ обмана
Кстати, в процессе написания статьи, я обратил внимание на еще одну замечательную особенность этих приложений: кнопка, к которой нужно приложить палец, находится на том же месте, где сразу после измерения возникает кнопка «установить приложение» на рекламном баннере.

Нужно связаться с поддержкой.

Общение с поддержкой


Через специальную форму я отправил вопрос: “в чем, собственно, проблема?” Сотрудник Google, отвечавший мне, почему-то решил, что вопрос — это апелляция и сообщил, что проблема до сих пор присутствует.


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

Далее он сообщил, что я попрал честь платформы, разместив свое приложение. А именно:

Приложение имитирует работу системных приложений андроид или других


Ну что ж, это мой прокол, дизайн и вправду получился очень похожим на системные утилиты андроид.


Приложение обманывает пользователя


Что скрывалось за пунктом “обман пользователя” было решительно непонятно. Тут надо заметить, что поддержка часто отвечает общими фразами вида “проблемы с метаданными”, оставляя возможность разработчику самому догадаться, что не так с приложением.

Попытки узнать это натыкались на “ничем не могу помочь”. Мои идеи, как сделать так, чтобы приложение соответствовало правилам, были встречены тем же. Диалог не строился.

Я подумал, что качество приложения было слишком низким для внутреннего теста. Если для внутреннего теста нужны production-ready политики и страница в магазине, логично предположить, что само приложение к этому моменту тоже должно быть production-ready.

В любом случае, поддержка не отвечала, и я начал тестирование собственными силами. Правил мелкие баги, улучшал производительность. Добавил “не для медицинского использования” на страницу в магазине и на непропускаемый первый экран приложения.

Публикуем «второе» приложение


За переписками по почте и разработкой прошел месяц. Учтя все предыдущие ошибки, я отправил новую версию для внутреннего теста в Google Play. По рекомендациям Гугл, мне пришлось придумать новое название и сделать вид, что я заливаю другое приложение, потому что первое было заблокировано навсегда.


Через пару часов мне опять пришел бан. Теперь у меня 2 заблокированных приложения в консоли разработчика. Еще на шаг ближе к удалению моих аккаунтов. Тут я задумался над тем, как замечательно провел последние полгода, медитативно вбивая код в IDE и занимаясь массой других интересных вещей, связанных с разработкой приложения.

Я спросил поддержку: “за что?” В этот раз, сотрудник Гугл написал что-то кроме общих слов. Он рассказал, что измерять пульс по лицу невозможно. Я обрадовался — наконец-то я понял в чем проблема.

Я подготовил для него мини-статью с научными исследованиями на эту тему и картинками и меня тут же разблокировали, но только одно приложение. Второе до сих пор висит мертвым грузом в консоли разработчика, на письма по нему просто перестали отвечать.

Ищем пользователей


Прошел ещё месяц. Я выпустил первую версию в продакшн. И, вот какая оказия, приложение вообще не ищется по ключевым словам. А на периферии Google Play Console слышен шепот: “Никто не может найти вашу страницу? Grow your user base with Google Ads”.


Похоже, ты не оставил мне выбора.

Создаю новую кампанию.
Размещаю объявление.
Reject.
Общий посыл (на основании моего исследования):


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

Почему же иногда программирование это магия


Я решил рекламироваться на альтернативных платформах myTarget и Маркет-платформе Вконтакте, в надежде наткнуться на понимание.

Вконтакте

Наверное, есть тип людей, для которых все что выходит за рамки их быта, магия. Именно так восприняли мое обьявление Вконтакте.


Они отклонили объявление, обвинив меня в экстрасенсорике, целительстве и ясновидении. Не забыв взять перед этим 500 рублей, чтобы объявление приняли на модерацию.

Когда я послал им выжимки из научных статей и демонстрацию работы со сравнением с эталонными методами, они ответили:

«Это все, конечно, хорошо, но»


Задаток позже вернули через поддержку.

MyTarget

Отличился в хорошую сторону тем, что не стал брать задаток. И в плохую, тем, что мурыжил меня правками, прямым текстом обещая публикацию. Правки закончились, а объявление все не проходило. Когда я прислал модераторам научно-популярное обоснование, MyTarget подытожил:


Выводы


Не занимайтесь магией. Делайте приложения с котиками, их все любят.

UPD. Огромное спасибо сообществу за поддержку, я, честно, не ожидал.



UPD2. К сожалению, приложение пока не доступно в Казахстане, Туркменистане и ряде других стран СНГ. Обновление, подключающее эти страны застярло на модерации с 13 часов по Москве.

UPD3. По просьбам в комментариях. Если приложение не доступно в вашем регионе Google Play, но вам все равно любопытно,

Вы можете скачать его напрямую
Проще всего это сделать так:

  1. Найти в настройках телефона «разрешить приложения из неизвестных источников»
  2. Скинуть приложение любым удобным образом (например, через Телеграм)
  3. Установить, кликнув по скаченному файлу


Файл очень тяжелый, потому что содержит OpenCV под все архитектуры.

Комментарии (97)


  1. Brenwen
    12.08.2019 10:15

    А можно ли это приложение скачать попробовать хотя бы по прямой ссылке?


    1. KirillGerasimov Автор
      12.08.2019 10:22
      +1

      Да, но многого не ждите, чтобы не разочароваться.
      play.google.com/store/apps/details?id=ki.facehrm
      Для точного измерения нужно исключить колебания света (например, youtube) и дрожание камеры.


      1. Brenwen
        12.08.2019 10:49

        «Недоступно в вашей стране». Беларусь, если что.


        1. KirillGerasimov Автор
          12.08.2019 10:57

          Опубликовал в Беларуси и в других странах СНГ. Наверное, пройдет некоторое время, пока эта публикация дойдет до Google Play.


          1. Brenwen
            12.08.2019 11:09

            Открыл ссылку в браузере — там пишет, что приложение не совместимо с моими устройствами (у меня Redmi Note 4X и Mi A2 lite).
            Upd. Уже стало совместимо — установил через браузер.


        1. BalinTomsk
          13.08.2019 00:28

          В Канаде тоже не доступно.


      1. NetBUG
        12.08.2019 12:14

        Нормально. Я читал про этот метод в 2013 году, в статье то ли исследователя из MIT, то ли из какого-то медицинского универа.

        А ответ на вопрос в заголовке — «Gooogle стал слишком большим и боязливым»?


      1. Self_Perfection
        12.08.2019 17:58
        +6

        Отчасти я могу понять реакцию модераторов. Потому что приложение не разъясняет никак принципов своей работы. Вот прочитал описание приложения, приложенное к нему в гугльплее — там лонгрид! Несколько абзацев! Про вспышку, как правильно держать телефон, туда-сюда. Почему это вообще не надувательство, как это может работать?

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

        Почему этот абзац нужен? Предлагаю такой тест: спросите 10 человек, с которыми не обсуждали это приложение раньше, и лучше таких, которые не знаю, что вы программист: «Я слышал, что есть приложение, которое по селфи может сказать тебе, какой у тебя пульс. Как ты думаешь, это реально или надувательство?» Вангую, что 4+ человека сочтут надувательством.

        Ну и где-то в самом приложении должно быть пару абзацев с более подробным объяснением принципов работы и ссылками на исследования или более подробные разъяснения технических аспектов. Это чертовски важно.


        1. KirillGerasimov Автор
          12.08.2019 20:57
          +2

          Спасибо за предложение. У вас хороший слог, можно ли добавить ваш текст в описание приложения?

          Когда я делал страницу в магазине, вообще не понимал как это писать и что нужно пользователю. Мне хотелось поскорее вернуться в IDE и заняться оптимизацией анимации «пульса» во время измерения. Поэтому сделал по образу и подобию других приложений в Google Play.


          1. Self_Perfection
            13.08.2019 02:38

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

            «Множество мелких кровеносных сосудов на поверхности кожи слегка сужается и расширяется от биения сердца, немного меняя цвет кожи. Человеческие глаз не различает эти изменения, но камеры большинства смартфонов достаточно чувствительны, чтобы их зарегистрировать. Отслеживая колебания цвета кожи лица наше приложение может оценить ваш пульс.»


        1. extempl
          12.08.2019 21:18
          +1

          Почему это вообще не надувательство, как это может работать

          Обычно именно это написано везде, где именно надувательство и есть. Давно спам проверяли?
          Понятно, что если подкрепить достаточно громкими ссылками, будет лучше, но…


        1. tim4dev
          13.08.2019 11:57

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


      1. Fedorchik
        14.08.2019 11:06

        А почему в статье нету ссылки на приложение, но есть ссылка на апк?


      1. mkostya
        14.08.2019 11:47

        «This item is not available in your country» — Израиль :(


  1. QtRoS
    12.08.2019 10:20

    Я хочу заметить, что это в общем и целом политика Гугла по всем сервисам, например Youtube — при бане (отключении монетизации и т.д.) не говорить ничего, а только самую общую категорию. Это жутко неудобно, но, думается, корпорацию можно понять — объемы обращений в поддержку наверняка запредельные!
    А само приложение — насколько точно получилось? Я видел что-то наподобие, но там камера была фиксированная, а не фронталка телефона...


    1. KirillGerasimov Автор
      12.08.2019 10:29

      Для точного измерения нужны

      • Хорошее освещение.
      • Достаточно статичный кадр.
      • Статичное освещение.
      • Определенные модели телефонов

      Я провел тест примерно на 10 моделях телефонов. 9 из них выдавали результат +-8 ударов всегда. Но я знаю как работает программа, как держать телефон — у тестеров статистика похуже, около 85%, несмотря на мои разъяснения. Есть над чем работать.


      1. sergeyvolobuev
        12.08.2019 12:43

        Вам в копилку, проверил на двух устройствах: Huawei P9 lite и Asus Zenfone ZB631KL, на хуавей разница вышла в 9 ударов, а на асусе один в один.


      1. gorbln
        13.08.2019 10:37

        Sony Xperia XZ. Фронтальная камера. Разница +- 3 удара. По пальцу один в один. Проверял по-старинке, считал удары.

        Есть баг. Если делаешь несколько измерений, а потом пытаешься выйти из приложения нажатием «назад» — приложение откатывается попеременно в главный экран — экран измерения (причём, на экране измерения присутствует кусок растянутого кружка от кнопки «старт»), потом опять стартовый экран — экран измерения — опять стартовый (и так сколько было измерений) — потом экран с предупреждением — и только потом выход из приложения.

        P.S. Попытался вывести Вас на чистую воду и воспользоваться программой на фотке — не получилось =). Ну, то есть, периодически возникал пульс 120 ударов (подозреваю, что это как-то связано с тем, что фотка была на мониторе), но до конца домерить не получилось ни разу.


        1. Skerrigan
          14.08.2019 03:39

          XZ1 — все подтверждаю (кроме фотографии на мониторе — проверять не думал).


    1. StrangerInTheKy
      12.08.2019 16:39

      Это жутко неудобно, но, думается, корпорацию можно понять — объемы обращений в поддержку наверняка запредельные!
      Думаю, корпорацию совершенно невозможно понять. Это одна из самых богатых компаний мира.


    1. apro
      12.08.2019 18:50

      Я хочу заметить, что это в общем и целом политика Гугла по всем сервисам, например
      Youtube — при бане (отключении монетизации и т.д.) не говорить ничего
      Это жутко неудобно, но, думается, корпорацию можно понять — объемы обращений в
      поддержку наверняка запредельные!

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


      1. karabas_b
        13.08.2019 02:24

        Они не ущемляют ничьи права. Ни в одной стране нет закона, в котором было бы написано что-то вроде «каждый разработчик имеет право на размещение своих приложений в google play».

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


        1. apro
          14.08.2019 14:25

          Они не ущемляют ничьи права. Ни в одной стране нет закона

          ИМХО какой-нибудь закон всегда можно притянуть. Например разработчик плохо видящий, а в причине отказа от размещения например написано "плохо различимая подпись", при желании я думаю можно притянуть такой отказ как дискриминацию.


    1. Paskin
      13.08.2019 07:25

      Есть подозрение что анализ приложений (роликов, ...) делается каким-то «великим и ужасным» AI, «добыть» из которого конкретное описание проблемы трудно даже самой поддержке и в действиях которого не принято сомневаться (корпорация же).


    1. Marcon
      13.08.2019 14:03

      Я хочу заметить, что это в общем и целом политика Гугла по всем сервисам, например Youtube — при бане (отключении монетизации и т.д.) не говорить ничего, а только самую общую категорию. Это жутко неудобно, но, думается, корпорацию можно понять — объемы обращений в поддержку наверняка запредельные!

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


  1. Lex20
    12.08.2019 10:22

    Погуглил, есть что-то про фильтр Эйлера. Возможно для неверующих нужно ещё показать результат работы фильтра. Работники google не правы в том что не запросили обоснований алгоритма


    1. user_man
      12.08.2019 13:12
      +2

      >> Работники google не правы в том что не запросили обоснований алгоритма

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


      1. algotrader2013
        12.08.2019 16:54

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

        Тут, в принципе, сложно придумать рабочий воркфлоу для гугла, который и не пустит опасный для здоровья мусор (который и так как-то проник), и при этом ценные приложения пропустит. И при этом будет приносить прибыль гуглу в итоге.

        Единственное, что могу сходу придумать, это чтобы были сертифицированные паблишеры, которым гугл доверяет, и которые отвечают значимой суммой за это доверие, и чтобы у них было право пушить в стор в обход гугловских индусов. Тогда с ними уже можно было бы договариваться типа «я плачу $1000 разово + 25% от прибыли, а вы таки ревьювите алгоритм, и работоспособность приложения», так, как эти паблишеры держались бы за каждого клиента. Хотя… сколько мелких и не очень мелких жуликов в эту тему впрыгнуло бы…


        1. SemenPV
          12.08.2019 18:14

          Гуглу надо ввети сервис VIP, чтобы за dev аккаунт брали не $25, а например $500 в год за приложение. Тогда затраты на поддержку, ревью и т.п. могут отбиваться и можно будет рассчитывать на нормальный сервис. Первоначальная сумма затрат будет отпугивать спамеров и т.п.

          Плюс иметь VIP магазин, чтобы им пользоваться тоже платить например $50 в год и туда будут попадать проверенные приложения с дополнительной фугкциональностью.


          1. algotrader2013
            12.08.2019 19:08
            +1

            VIP дев аккаунт достаточно, думаю. Магазин это сразу отсекание аудитории.


            1. SemenPV
              12.08.2019 22:04

              Наоборот, все леминги хотят быть VIP. Проблема магазина это то что там миллионы никому не нужных приложений и т.п. Выглядит как помойка. Если будет адекватный магазин, в котором можно будет брать без риска для здоровья (телефона) думаю многие оценят. Особенно если будут какие-то дополнительные бонусы, как у амазона с праймом, то вообще хорошо, люди потянутся.


              1. algotrader2013
                12.08.2019 22:33

                как у амазона с праймом

                Там цена логически обоснована. Сделав один раз доставку, не склонируешь ее бесплатно на 100 миллионов заказов. И, кстати, насколько знаю, прайм сам по себе убыточен, или в 0. Он нужен, чтобы удерживать постоянных покупателей у себя, мотивируя их не пробовать новые магазины.


                Если будет адекватный магазин, в котором можно будет брать без риска для здоровья (телефона) думаю многие оценят. 

                То есть, вип = самоограничение? Можешь скачать только из подмножества того, что доступно "для быдла"?


                все леминги хотят быть VIP

                Да сколько уже примеров было?) Vertu, который прямо квинтессенция VIP, соцсети для миллионеров (но почему-то миллионеры все еще сидят в FB, LI и инсте).


                1. SemenPV
                  12.08.2019 22:55

                  вип = самоограничение
                  вип это когда за тебя делают всю грязную работу.

                  Vertu и т.п. — это luxury.
                  Насчёт миллионеров — в США например считается что в 2018 было 11 миллионов семей которые обладали активами более чем $1KK. Так что просто миллионерам это не надо. Мултимиллионеры сидят там где они продают себя/свой имидж, если это требование бизнеса.

                  Если кто-то типа google предоставит VIP сервис это будет совсем другая история. Не гарантируется что взлетит, но думаю попробовать можно.

                  Я например давно жду что-то типа digital slave, т.е. чтобы у меня был сервис который с помощью автоматов и реальных людей решал за меня многие рутинные онлайн (и может быть часть оффлайн) проблемы. Типа я им скинул задачу и она решается.

                  Там цена логически обоснована.
                  Здесь тоже обоснована, делается работа по отсеву шлака. Ну плюс как в прайм можно давать бесплатно часть digital контента, типа фильмов, музыки и т.п. Им всё равно бесплатно достаётся, а у вас иллюзия что вам дают дополнительную ценность.


                  1. MarSoft
                    14.08.2019 13:55

                    Консьерж-сервис не оно? По описанию вроде похоже, только без автоматов.


                    1. imm
                      15.08.2019 11:43
                      +1

                      Можно раздать консьержам автоматы.


          1. Acuna
            13.08.2019 00:42

            Это вы советуете самой богатой организации в мире (даже поговаривают что века)?


          1. Raspy
            13.08.2019 00:43

            Поздравляю, вы изобрели Apple Store! Покупаете прошлогодний айфон, который чуть дороже сегодняшнего андроид устройства и получаете все вышеперечисленные плюшки.


            1. MilesSeventh
              13.08.2019 10:48

              Качество ревью в AppStore ничуть не лучше. Кушают грибы и видят «скрытые функции» там, где нет даже аналитики, или вообще выносят приложения легким движением руки потому что «такие приложения уже есть в AppStore». При желании при этом можно легко найти фрод и откровенное мошенничество. Пояснения если и отличаются от общих фраз, то составлены малограмотными индусами, с обилием грамматических и орфографических ошибок. Можно попытаться оспорить, но это несерьезно — арбитраж все равно остается за Apple.


  1. aidarchikable
    12.08.2019 10:33

    Приложение предлагает вспышку для измерения пульса по пальцу. И не предлагает ее при измерении задней камерой. Если нужно могу скриншоты прислать в личку. Телефон Nokia 7 plus.


    1. KirillGerasimov Автор
      12.08.2019 10:40

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


      1. aidarchikable
        12.08.2019 10:42

        Всё равно не могу понять чем мне может быть полезна вспышка при измерении польза сканером отпечатка пальца.


        1. aidarchikable
          12.08.2019 12:56

          Разобрался. Изначально подумал что используется ультразвуковой сканер отпечатков пальца в телефоне (из-за иконки). Измерив пульс через палец понял что к чему и как.


        1. Neikist
          12.08.2019 13:02

          Надо каменты обновлять


  1. 1cenova
    12.08.2019 12:24

    Приложение не совместимо ни с одним из ваших устройств. Samsung galaxy s8 и Xiaomi mi 8.


    1. Vishnyakoff
      12.08.2019 12:33

      На S8+ встало прям из гугл плэя. Россия, 9й андроид. Просто загуглил по названию из скриншота


    1. zoroda
      12.08.2019 19:08

      На mi 8 встало без проблем. Работает.


    1. nochkin
      13.08.2019 06:28

      У меня тоже пишет, что несовместимо со всеми устройствами. У меня их штук 10 разных.
      Интересно, что там за требования выставлены такие?


      1. KirillGerasimov Автор
        13.08.2019 07:05

        Особых требований нет, есть лень разработчика полное отсутствие локализации (ну не ожидал я такого интереса). Изначально был запущен только один язык и одна страна. После публикации я добавил СНГ.

        Чтобы пользователи в Германии, например, не недоумевали почему в магазине приложение с русским описанием и интерфейсом, приложение пока не опубликовано за рубежом.

        Для тех, кто готов к «страданиям» я добавил прямую ссылку на apk-файл в конце статьи.


        1. nochkin
          13.08.2019 07:08
          +1

          Понял. Значит, требования по локализации только. Странно, что просто play.google.com мне показал, а на устройстве не было.
          Значит, сообщение об ошибке на Play Store не соответствует.

          Я больше отзыв хотел оставить. Поэтому отдельный .apk не так интересно. Да и обновления приходить не будут ещё.


  1. A114n
    12.08.2019 12:37
    +1

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


    Но зато прикладывая палец к экрану — возможно.

    Как и во всех других сферах главную проблему создают маленькие вахтёры-дегенераты, дорвавшиеся до своей маленькой власти.


    1. user_man
      12.08.2019 13:17
      +1

      >> Как и во всех других сферах главную проблему создают маленькие вахтёры-дегенераты

      Ни в коем случае. Вахтёров нанимает большой дегенерат.


    1. i86com
      12.08.2019 15:03
      +1

      Но зато прикладывая палец к экрану — возможно.

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


  1. shikhov
    12.08.2019 12:47

    Раньше в Google Play было такое приложение, работало нормально: apkpure.com/what-s-my-heart-rate/com.vitrox.facion.gui


  1. Gurturok
    12.08.2019 13:07

    Спасибо. теперь когда меня будут спрашивать: «Почему ыт называешь GPlay помойкой?» буду ссыласть на вашу статью.

    Ecли это повторится — мы удалим ваш и все связанные гугл-аккаунты, которые найдем.

    а вот это надо запомнить, если они как и yandex начнут бороться за «мертвые души».


    1. Neikist
      12.08.2019 13:53

      Я вот чет задумался какими способами они искать эти аккаунты будут. Будет ли достаточным например из отдельного профиля огнелиса заходить? Может еще и vpn юзать? Или нужно чтобы даже гитхаб акк на котором выложены сорцы приложения из их магазина не был связан с личной почтой?
      А то начинает возникать желание перепривязать все свои личные учетки на майкрософтовское мыло вместо гуглового. Так, на всякий случай.


      1. KirillGerasimov Автор
        12.08.2019 14:11

        Когда искал решение своих проблем с блокировкой приложений, натыкался на посты, которые говорят о том, что ищет не очень точно.
        Help! Google terminated my developer account and won't tell me why.

        У человека заблокировали аккаунт, потому что его связали с другим аккаунтом «недобросовестного» разработчика.


    1. petrovichtim
      12.08.2019 13:53

      Есть целый чат в телеграмме, где Вам расскажут восхитительные истории андроид разработчиков


  1. OasisInDesert
    12.08.2019 13:14

    Интересный эпизод.


  1. tim4dev
    12.08.2019 14:10
    +1

    Из каментов под одним видео:

    Google is on Suspension Frenzy! the other day they suspended an app for very strange reason and after months of emails I realized that because I removed the app from India the testers could not test it (and I got an email from Google confirming that!) and they will put any random reason because they cant download the app! and it is still suspended by the way.


  1. VivAmigo
    12.08.2019 14:21

    Вот теперь вопрос. Если я напишу собственный магазин приложений, разрешит ли мне его разместить GPlay?


    1. androidovshchik
      12.08.2019 17:08

      Все равно вы не сможете программно устанавливать чужие приложения без рута


      1. tmin10
        12.08.2019 19:02
        +1

        F-droid просто закачивает их и запускает на установку, вполне удобно.


    1. fRoStBiT
      12.08.2019 17:46

      Нет, это прямо запрещено политикой Google Play.
      Но вообще, насколько я знаю, публичный API для таких приложений в Android есть.


    1. Acuna
      13.08.2019 00:48

      Ссылку на конкретный пункт правил сейчас не скину, но в них прямым текстом написано что приложения, имеющие функционал Google Play, категорически запрещены. А это значит полное удаление аккаунта даже без возможности восстановления. Но это и понятно, никаких сторонних магазинов на Гуглплее нет, иначе их были бы пачки, причем полумертвых, такой балласт ему не нужен.


      1. Arqwer
        13.08.2019 13:12

        Вот бы ФАС обязал снять это ограничение, цены бы ФАСу не было.


        1. opckSheff
          13.08.2019 14:43

          А если не снимут — штраф им в три тысячи рублей! Чтоб неповадно было!


  1. stanislavkulikov
    12.08.2019 14:57

    Может быть я что-то пропустил, но зачем публиковать приложение для теста двумя людьми? Почему просто не передать им apk? Или использовать что-нибудь типа Testflight?


    1. algotrader2013
      12.08.2019 16:45

      Траст, возможно. Если некий не самый близкий знакомый, с кем не общаешься каждый день, присылает apk, и просит установить, нажав галочку «установить из небезопасного источника», то сразу мысль, что, наверное, в лучшем случае, у него просто угнали аккаунт)


  1. magistr7
    12.08.2019 14:58

    а не могли бы дать ссылки на эти научные статьи?


    1. KirillGerasimov Автор
      12.08.2019 15:06

      Да, конечно. Вот достаточно известная статья MIT (2010) — очень короткая и понятная — хороший вариант для знакомства.

      Вот метаанализ (2018), который сравнивает многие известные подходы по дистанционному измерению пульса. В этой статье вы можете найти ссылки на множество других исследований по этой теме.


  1. D01
    12.08.2019 15:25

    А зачем для тестирования приложения парой друзей заливать его в Google Play?
    Это не Apple — отправляется apk через мессенжер и все.


    1. mimimetr
      12.08.2019 20:11

      Думаю, локально тестирование это всё же одно.
      А вот end-to-end так сказать, с имитацией всех этапов — это как раз то, чего хотел автор по-моему, заливая приложение на gp


    1. spaceatmoon
      12.08.2019 20:11

      А зачем для тестирование парой друзей такой бюрократический аппарат?


      1. D01
        12.08.2019 20:32

        Затем, что программа тестирования рассчитана на случайных тестеров, любой может подключиться к тестированию.
        А своим всегда можно поставить apk по ссылке со своего сайта, дропбокса и т.п.


        1. spaceatmoon
          13.08.2019 10:29

          Я думаю тут проблема глубже чем кажется. Многие пользователи довольно слабы в знаниях используемых гаджетов. У меня есть друг, он как будто спецом спрашивает тупые вопросы, которые даже чисто логически можно решить, но нет, надо меня дёрнуть.

          А всё почему? Потому, что обычный пользователь не хочет решать «проблемы», а компьютер это сплошная проблема. Там подшаманить, там подправить, там соединить. Лично для меня это устоявшийся образ жизни с компьютером, а вот для друзей автора «установить .apk» это уже выход из зоны комфорта и ну его. Хотя, во времена популярности icq, то даже очень далекие люди от интернета, могли на телефоне установить wap прописав конфиги на мобиле, зайти на сайт, найти icq и установить его. Сейчас это наверное непосильная задача для простого пользователя.

          А своим всегда можно поставить apk

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


          1. D01
            13.08.2019 10:45

            Вполне может быть.
            Но у меня создалось впечатление, что автор не разобравшись в предмете нашел приключений…

            У меня на S8 при переходе по ссылке на апк будет 3 вопроса (или два, если это уже делал).
            Сначала браузер спросит «Скачать?», потом система защиты спросит «Разрешить установку из неизвестного источника?», потом появится экран установки приложения, где надо нажать «Установить».
            Эти вопросы задаются последовательно и не требуют никаких действий кроме как нажать на Да (и Установить).

            p/s хотя нет, нужно еще одно действие: после скачивания надо потянуть шторку и кликнуть по скачанному апк (это если из телеграмма кликать на присланном апк, то все идет последовательно почти само).


  1. yarston
    12.08.2019 18:38

    Можно выложить в альтернативные маркеты и сделать копию под ios, в приложении разместить ссылку на текст «как это работает», который ведёт на лендос с ссылками на закачку с этих самых маркетов, аппстор и гп, если там всё-таки оно останется. С счётчиками от гугла и прочими. Пользователи будут переходить по ссылке, поднимать рейтинг лендинга, соответсвенно в выдаче обычного поисковика тоже будет расти наверно. А ссылка на это же приложение в аппстор убедит пользователя, что приложение не вредонос.


  1. dobrman
    12.08.2019 20:47

    Интересная статья и классная программа! Было бы любопытно почитать о реализации программной части :)


  1. mikelavr
    12.08.2019 21:26

    Xiaomi Redmi Note 4, три последовательных замера при светодиодном освещении: 91, 136, 59 bpm. Очевидно, что это фигня полная, близко к реальности только 59 bpm. Телефон приложил к стене, поэтому кадр был статичный.
    Очень нужна оценка достоверности результата, и возможной ошибки.


    1. D01
      12.08.2019 22:18

      Пробовал на Samsung S8 (с пульсометром), по пальцу было самое точное. С лицом чувствительно к дальности до камеры (тестировал на заднюю), если лицо вписывается в круг с минимальным зазором, то и точность лучше. В общем результаты похожи.


      1. Utopia
        13.08.2019 01:23

        OnePlus 5t -тоже результат близкий, хотя камера фронталка не супер.


  1. krevedkoff
    13.08.2019 07:24
    +1

    Xiaomi Mi 9SE. Сделал 5 измерений с разных ракурсов и при разном освещении, в т.ч небольшом контровом свете. Расхождение с оптическим датчиком на часах +-1 удар. Отличный результат!
    Желаю Вам удачи в борьбе с корпорацией добра.


  1. xeonaut
    13.08.2019 08:52

    Вчера пост, сегодня в новостях Яндекса: «Разработано приложение для измерения давления по селфи» https://blog.mednote.life/news/technology/razrabotano-prilozhenie-dlya-izmereniya-davleniya-po-selfi


  1. YuryVin
    13.08.2019 13:21

    Из браузера: «Несовместимо ни с одним из ваших устройств: Xiaomi Pocophone F1 (Андроид 9), Xiaomi Redmi 6 (8), Motorola Moto G4+ (7)».
    Из приложения Google Play: «This item isn't available in your country» (Израиль).


  1. dereiff
    13.08.2019 13:21

    Попробовали померять пульс на фотографии из рекламного плаката. Результат неожиданный — 151. И действительно, девушка на фотографии как живая)


  1. dm4x
    13.08.2019 13:21

    Почему то приложение измеряет пульс не только у живых людей, но и у моделей с плаката.
    Сама модель:
    habrastorage.org/webt/kx/su/sw/kxsuswwbvgtxi8z-fzlwt899yd0.jpeg
    Результат измерения:
    habrastorage.org/webt/7i/jn/5e/7ijn5e5cvduhkwud3vhh7xv2quc.jpeg


    1. KirillGerasimov Автор
      13.08.2019 13:57

      Это интересный кейс. Попробую объяснить почему может происходить это безобразие. После измерения пульса, приложение может получить мощность (амплитуду) сигнала. Чем мощнее сигнал, тем надежнее и точнее показания. Даже из шума пикселей камеры, направленной на статичный объект, можно извлечь спектр, просто амплитуда сигнала будет низкой.

      Логично было бы исключать показания при низкой амплитуде. Но, так как все устройства ведут себя по-разному, у всех разный диапазон получаемых амплитуд. У одного устройства могут шуметь пиксели с амплитудой 0.20. Другое устройство, с более качественной камерой может иметь шум 0.05 и принимать сигнал в темном помещении с амплитудой 0.15. Если просто фильтровать пульс с низкой амплитудой — некоторые устройства «не смогут» получить ни одного измерения, хотя по факту их точность будет достаточной.

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


      1. dm4x
        13.08.2019 14:55

        Еще немного экспериментов. Теперь делали измерения не фронтальной, а задней камерой
        Результаты:
        habrastorage.org/webt/d8/ob/px/d8obpxldj8kci72v7hu33gntune.jpeg
        habrastorage.org/webt/vu/b3/rb/vub3rbtysa-5realcjwbg3w31em.jpeg

        У девушки явно нелады с сердцем, а вот парень еще бодрячком, потому и улыбается :)

        Телефон:
        Samsung galaxy J7 (2016)
        характеристики камеры:
        Разрешение основной (тыловой) камеры 13 МП
        Диафрагма основной (тыловой) камеры F/1.90


      1. quantum
        13.08.2019 18:27

        Рука держит телефон, рука дергается от сердцебиения
        От этого может измеряться пульс у плаката?

        Первая мысль у меня была как раз про такой способ измерения пульса, а не про приток крови к лицу


        1. dm4x
          15.08.2019 10:31

          телефон стоял на столе, это тоже была первая мысль


  1. georgeneversleep
    13.08.2019 17:45

    В тот момент в подборке было приложение «кот звуки». У меня было машинное обучение, измерение пульса по лицу, а у них проигрывается «мяу», если нажать на экран. Можно побороться.

    Шта? На Котэ наехать решили? Вы не верно оцениваете свои силы. Но, в общем-то, жизнь вас уже осадила. Добро пожаловать в реальный мир. Вы бы еще роботизированные протезы для инвалидов начали делать с надеждой забороть дейтинг-сервисы.

    Файл очень тяжелый, потому что содержит OpenCV под все архитектуры.

    Как разработчик под iOS смеюсь над размером вашего приложения. Меньше 100M ничего за последние 2 года не видел. Понятно что при скачивании со стора будет работать App Thinning, но то что я загружаю в стор обычно весит не меньше 300M. Когда разработчики Android жалуются на «раздутый» размер их приложений, у меня наворачиваются слезы умиления.

    Про оформление страницы приложения, указания рейтинга, скриншотов и вот это вот все просто для тестирования — могу понять ваше недовольство, но это для обоих магазинов приложений актуально и неизбежно. Магазину откуда знать с друзьями вы будете тестировать приложение или журналистам New York Times отправите на «посмотреть». Наученные дорогостоящими исками они нагородили костылей с которыми нам теперь жить.
    Для AppStore все очень похоже в плане оформления, если требуется внешнее тестирование. Кроме того, для внешнего тестирования каждая мажорная версия проверяется человеком и это занимает минимум сутки, а чаще трое суток. Если вы действительно хотите протестировать только с друзьями, то ожидание ревью можно избежать, но количество пользователей будет ограничено. Так же нужно отметить, что для тестирования приложений iOS потребуется наличие отдельного приложения у тестировщика — TestFlight. С этой стороны организовать тестирование в GooglePlay сильно проще.

    Общение с поддержкой

    Я вообще удивлен что у вас был разговор с живым человеком с самого начала. Мне от гугла ничего, кроме ответов робота не приходило и я был уверен, что люди там приложения не проверяют. Возможно в категории «медицина» по-другому.
    В AppStore все проверяют индусы и также присылают лишь отсылки и выдержки из гайдлайнов. Но, если упорствовать, можно получить более конкретные ответы «что именно вызвало реджект». На крайний случай вы можете им позвонить и поговорить с живым человеком, что для Google невообразимая роскошь. Так же у разработчика есть один priority review в год для срочной проверки приложения. Но и платим мы в AppStore $100 в год в противовес $25 life time в Google Play.

    Поздравляю с разработкой и выпуском первого мобильного приложения. Не многие понимают, что второе бывает не менее сложным чем первое, а вам сразу такой замечательный (в плане количества экспы) опыт. Код писать могут все, а протащить продукт от идеи и до магазина только профессионалы.


    1. KirillGerasimov Автор
      14.08.2019 02:04

      Про котэ вы по делу прошлись, от души посмеялся — сам котоюзер. Осознал свою ошибку, но было уже поздно, пришлось писать статью.

      По поводу размера приложения — можно было и скидку сделать, я же только начинаю втягиваться в мобильную разработку.

      Спасибо за то, что поделились интересным опытом.


  1. ankh1989
    14.08.2019 09:04

    Сделайте PWA: это сайт оформленный особым образом, который Хром на Андроиде (и не только Хром и не только на Андроиде) позволяет установить на app, с отдельной иконкой и т.д. Если вам не нужны какие то особые Android API, то PWA будет достаточно. Чтобы не возиться с настройкой сайта сделайте проект на github и публикуйте его через github.io. Ваш апп будет доступен по адресу вроде myapp123.github.io и ни один ленивый модератор не сможет его заблокировать. Чтобы со всем этим разобраться вам нужен будет 1 день.


    1. KirillGerasimov Автор
      14.08.2019 12:02

      Спасибо за совет.


  1. odissey_nemo
    14.08.2019 10:25

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


  1. lim14
    16.08.2019 11:04
    +1

    Каждый месяц читаю как кого-то «забанили» на GooglePlay. Печально всё это… Не могу только понять это общемировой тренд или это только в отношении приложений из России? KirillGerasimov, не сдавайтесь!


    1. KirillGerasimov Автор
      16.08.2019 13:13

      С такой поддержкой не до капитуляций, с ней горы сворачивать можно.