Разработка 4 мин чтения

Сайт или PWA в APK на телефоне: WebView, TWA и RuStore

WebToApp собирает и подписывает Android-приложение из ссылки на сайт прямо на телефоне. Разобрал лицензию, возраст, ключ подписи, мост JavaScript и то, что требуют RuStore и Google Play от приложений-обёрток. Отдельно про выбор между WebView, TWA и нативным кодом.

Open SourceAndroidPWARuStore
Коротко. WebToApp (Unlicense, около 7 тысяч звёзд, создан в ноябре 2025) собирает и подписывает Android-приложение из ссылки на сайт прямо на телефоне. Это WebView-обёртка с заставкой, офлайн-кэшем, уведомлениями и доступом к камере и файлам. Для демо клиенту подходит. Для публикации под ключ я бы его не брал: один автор, релизы каждые три-четыре дня, ключ лежит на телефоне, а RuStore и Google Play не любят приложения, которые просто открывают сайт. Проект не запускал, написано по документации и коду.
Хотите внедрить это у себя?

Сделаю под ключ: разберу задачу, назову срок и цену. Чтобы начать, напишите в Telegram одной фразой.

Упаковка сайта или PWA в Android-приложение и публикация в RuStore

Клиент просит «ещё и в магазин»

Сайт или PWA уже работает, а владелец говорит: хочу в RuStore, пусть будет значок. Иногда причина здравая: часть аудитории ищет приложения в каталоге. Иногда у конкурента просто есть значок. Упаковкой сайта в Android-приложение и публикацией я занимаюсь в рамках мобильной разработки.

В канале GitHub Community 19 сентября 2026 вышел пост про web-to-app, набор, который собирает APK целиком на телефоне. Я прочитал README, документацию и часть исходников.

WebView, TWA или нативное

Способов три. В WebView приложение показывает страницу внутри себя, поэтому есть заставка, свои кнопки и мост между JavaScript и Android. TWA устроен иначе: по документации Chrome страницу рисует сам браузер на весь экран, а связь приложения с сайтом проверяется через Digital Asset Links. Проект для TWA генерирует Bubblewrap, а PWABuilder я описывал в туториале по PWA. Нативное приложение пишется на Kotlin или кроссплатформенном фреймворке.

Мой ориентир: PWA с манифестом и HTTPS, которой нужен значок в магазине, ближе к TWA. Сайту с заставкой и выбором файлов нужен WebView. Сканер и фоновая работа требуют нативного кода. Нужен ли магазин вообще, я разбирал в статье про выбор между ботом, сайтом и приложением.

Что за проект

Репозиторий github.com/shiaho777/web-to-app, автор shiaho, язык Kotlin. Лицензия по файлу LICENSE: The Unlicense, код передан в общественное достояние, использовать можно и в коммерции. Лицензии скачиваемых рантаймов не разбирал.

На 22 октября 2026: около 6,9 тысячи звёзд, 1073 форка, около 1100 коммитов, последний коммит 21 октября, релиз 2.8.1 от того же дня, файл APK около 26 МБ, нужен Android 6.0 и новее. Не архивирован. Документация на английском и китайском, интерфейс конструктора по README есть и на русском.

Как он собирает APK

Это не Termux и не Gradle на телефоне. По README конструктор берёт готовый шаблонный APK, правит манифест и ресурсы на двоичном уровне, кладёт конфиг и ваши файлы, убирает лишние разрешения и подписывает через apksig. Gradle нужен только тем, кто собирает сам конструктор из исходников. Для сайта хватает имени, адреса, иконки и кнопки сборки. Типов приложений двенадцать.

Документация описывает иконку и имя пакета, заставку из картинки или видео, полноэкранный режим, офлайн-кэш в духе PWA, уведомления через Firebase Cloud Messaging с вашей конфигурацией, список разрешений с камерой, выбор файлов и мост страницы к Android. На живом телефоне не проверял. RuStore Push в README не упомянут.

Ключ подписи

С другим ключом Android не обновит установленную версию. Справка RuStore советует один сертификат на все версии, а при его замене через поддержку все версии уходят в архив, и их загружают заново. По коду JarSigner.kt конструктор сам создаёт ключ, хранит его в закрытой папке приложения, а пароль кладёт обычным файлом рядом. Импорт и экспорт ключа есть.

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

Что требуют магазины

Правила модерации RuStore, пункт 8.2, запрещают публиковать мобильный сайт как приложение без дополнительной функциональности. Формулировка: «WebView-приложения допускаются только при наличии дополнительной функциональности». Среди примеров push, офлайн-режим и работа с устройством. Про честный офлайн я писал в статье про приложение без связи. Пункт 8.1 называет минимальную версию Android 8.0, а шаблон WebToApp держит minSdk 23, поднять его можно в настройках экспорта.

Политика Google Spam запрещает приложения, которые показывают сайт в WebView без разрешения владельца или гонят трафик на сайт. У клиента разрешение есть, но в блоге Android Developers за октябрь 2020 Google пишет про поток приложений, которые просто открывают существующие сайты, и советует снимать их с публикации. По странице помощи Google новые приложения и обновления должны целиться в API 36, срок 31 августа 2026, продление до 1 ноября. Экспорт AAB в WebToApp переписывает это значение в манифесте, но поведение под Android 16 проверяют на устройстве. Доступность аккаунта Google из России уточняйте.

Где это не сработает

Проект молодой, ему меньше года. Автор по сути один: 936 коммитов из примерно 1100, у остальных от одного до 21. Релизы выходят каждые три-четыре дня, а среди открытых задач есть «App now crashing on build» от 19 октября. В репозитории лежит AGENTS.md для ИИ-агентов, среди авторов коммитов значится claude (12 коммитов). В описании и README указан адрес токена pump.fun, комиссии которого идут на развитие. Я это не оцениваю, но модель поддержки проекта стоит знать до работы для клиента.

По безопасности: нативный мост по документации включён по умолчанию, возможности под переключателями. В одном файле NativeBridge.kt я насчитал 67 методов с @JavascriptInterface. Документация Android предупреждает, что у такого моста нет проверки источника кадра, и советует грузить в WebView только свои адреса, а чужие открывать в браузере. В настройках есть режим новых окон: то же окно, внешний браузер или блок. Белого списка доменов в прочитанной документации не нашёл. Выключайте лишнее и проверяйте внешние ссылки вручную. Функции маскировки и клонирования приложений для клиентских обёрток не нужны.

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

Что можно сделать уже сейчас

Решите, нужен ли магазин. Если приложение только открывает сайт, по пункту 8.2 RuStore его не пропустит, и хватит PWA.

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

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

Если «приложением» клиент называет интеграцию с учётной системой, возможно, нужно решение в каталоге, а не APK. Условия одного из каталогов я разбирал в статье про приложение в каталог МойСклад.

Частые вопросы

Примет ли RuStore APK из WebToApp?

Файл подписанный, а RuStore принимает подписанные APK и AAB. Пропустит ли модерация, зависит от содержания по пункту 8.2. Публикаций через этот инструмент я не делал.

Нужен ли компьютер?

По README нет, сборка и подпись идут на телефоне. Компьютер, Android Studio и JDK 17 нужны, если собирать сам конструктор из исходников.

А iPhone?

Проект собирает только Android. Для iPhone остаются PWA и мини-приложения в мессенджерах.

Коротко о главном

WebToApp показывает, как просто получить подписанный APK из сайта. Магазинам нужен смысл внутри, клиенту нужны ключ и обновления, и тут инструмент на одном авторе остаётся экспериментом.

Хотите узнать, пройдёт ли ваш сайт или PWA модерацию в RuStore и стоит ли вообще идти в магазин? Напишите мне в Telegram кодовое слово «АПК». Разберём, чем приложение будет отличаться от сайта, выберем WebView или TWA и подготовим публикацию с ключом у вас.

Обсудим вашу задачу

Что я делаю для бизнеса

Напишите одной фразой, что нужно. Отвечу, что подойдёт, сколько займёт и сколько стоит. Сообщение уже подготовлено.

  • Боты в Telegram, MAX, VK
  • Автоматизация процессов и CRM
  • Аналитика и дашборды
  • Сайты и лендинги под ключ
Пишу о разработке, ИИ и законах для бизнеса

Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.

Готовые решения под ключTurnkey solutionsSoluciones llave en mano交钥匙解决方案Түлхүүр гардуулах шийдэл 451 готовых IT-решений для бизнеса451 ready-made IT solutions for business451 soluciones IT listas para empresas451 个面向企业的现成 IT 解决方案Бизнест зориулсан 451 бэлэн IT шийдэл Автоматизация, боты, AI, 152-ФЗ и платформы · бесплатная консультацияAutomation, bots, AI, data privacy and platforms · free consultationAutomatización, bots, IA, privacidad de datos y plataformas · consulta gratis自动化、机器人、AI、数据合规与平台 · 免费咨询Автоматжуулалт, бот, AI, өгөгдлийн хамгаалалт ба платформ · үнэгүй зөвлөгөө Смотреть каталогView catalogVer catálogo查看目录Каталог үзэх