Google одумался и собрал apk

Вот и всё. Гугл сдался. Хром наконец-то собрал мой WebAPK.

Я так долго с этим парился. Манифест, иконки 192х192 и 512х512, сервис воркер. Всё было по учебнику, а он всё равно издевался. Вместо нормального приложения подсовывал ярлык с иконкой Хрома, который висит на рабочем столе. Убого. Я тогда еще написал пост, что бьюсь с этим кремниевым параноиком и не понимаю, чего ему не хватает. А сегодня он просто взял и собрал.

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

И вот тут я наконец понял, как эта штука работает на самом деле. Оказалось, что у Гугла есть свои тараканы в голове, которые он не афиширует.

Почему он не собирает APK сразу.

Дело в том, что за сборку отвечает не мой сервер и не мой браузер. Это делает специальный сервер Google. Когда ты жмешь установку, браузер стучится к ним, они генерируют APK, подписывают его и отдают обратно. И вот пока этот запрос летит туда и обратно, проходит время. В коде Chromium даже есть отдельный фикс, где жалуются, что установка занимает несколько секунд в фоне. И все это время кнопка «Установить» может висеть и сбивать с толку. Если сервер Google недоступен или отвечает медленно, Chrome просто плюет и откатывается к ярлыку. Молча.

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

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

Что это значит.

Для меня это значит, что борьба была не зря. И что процесс этот, к сожалению, не мгновенный. Он зависит от кучи факторов, на которые я никак не могу повлиять. Но если предлагает PWA, рано или поздно он соберет APK.

Теперь в меню телефона у меня висит иконка моего проекта, которая открывается без адресной строки, как самая настоящая нативка. И это открывает дорогу к тому самому чату с уведомлениями, ради которого всё и затевалось.