Obsah

WebToApp

Vytvořeno: 15.6.2026 | Aktualizováno: 15.06.2026 17:34

WebToApp je open-source Android aplikace pro vytváření instalovatelných APK z webů, statických webových projektů, médií a lokálních serverových runtimů přímo v telefonu. Oproti běžným „website to app“ wrapperům kombinuje konfigurovatelný WebView, lokální runtime prostředí, úpravy APK šablony a podepisování výsledného balíčku.

Poznámka: Článek je technická poznámka k projektu podle README a struktury repozitáře. Nejde o praktický test na reálném zařízení.

K čemu projekt slouží

WebToApp je určený pro situace, kdy je potřeba z webového obsahu rychle připravit samostatnou Android aplikaci bez vzdálené build služby. Projekt podporuje několik typů vstupů:

Typické použití dává smysl u interních dashboardů, offline dokumentace, prototypů, lokálních nástrojů, demo aplikací nebo přenosných webových projektů.

Základní workflow

Podle README je běžný postup práce následující:

  1. vytvořit aplikaci z URL, složky projektu, médií nebo šablony runtime projektu
  2. nastavit WebView, toolbar, splash screen, oprávnění, moduly, podpis a chování runtime
  3. zkontrolovat náhled přímo v telefonu
  4. sestavit a podepsat APK v zařízení
  5. výsledný balíček nainstalovat, sdílet, exportovat nebo zálohovat

Důležitý rozdíl proti jednoduchým wrapperům je v tom, že WebToApp neřeší jen zobrazení vzdáleného webu. U některých typů aplikací balí projektové soubory a spouští lokální server, který se pak otevře ve WebView přes localhost.

Architektura projektu

Repozitář je Android projekt postavený nad Kotlinem, Jetpack Compose a Gradle Kotlin DSL. Má dva hlavní Gradle moduly:

app    - hlavní builder a hostitelská Android aplikace
shell  - runtime šablona používaná pro generované aplikace

Modul app obsahuje uživatelské rozhraní, správu projektů, build logiku, runtime managery a konfiguraci exportu. Modul shell je šablona výsledné aplikace. Při buildu se do ní vkládá konfigurace, assety a případně projektové soubory.

README uvádí, že hostitelská aplikace záměrně používá targetSdk = 28. Důvodem má být schopnost spouštět lokální nativní runtime prostředí podobně jako Termux. U Web/HTML/frontend/media aplikací projekt popisuje i export AAB s přepsáním targetSdk pro distribuci přes Google Play; runtime aplikace s Node.js, PHP, Pythonem, Go nebo WordPressem zůstávají podle README APK-only.

APK builder

Vlastní builder pracuje se šablonou APK a upravuje ji podle konfigurace projektu. Z kódu a dokumentace vyplývají tyto části:

Lokální runtimy

WebToApp se snaží balit i projekty, které potřebují lokální server. Shell aplikace při spuštění rozbalí projekt do interního úložiště, spustí odpovídající runtime a WebView nasměruje na lokální HTTP server.

Podporované runtime typy podle README:

Runtime komponenty se podle dokumentace stahují při použití, nejsou všechny pevně součástí základního APK.

WebView a rozšíření

WebToApp obsahuje rozsáhlé nastavení WebView:

Projekt má také Module Market, který je postavený přímo nad adresářem modules/ v GitHub repozitáři. Moduly jsou jednoduché JS/CSS balíčky s manifestem module.json. Katalog se načítá z registry.json a submissions.json, takže přidání modulu probíhá přes běžný pull request.

Kromě jednoduchých modulů projekt zmiňuje i userscripty ve stylu Greasemonkey/Tampermonkey a částečnou podporu MV3 Chrome extension content scripts.

Bezpečnost a limity

Projekt má několik bezpečnostních funkcí, ale zároveň i několik oblastí, které je potřeba brát opatrně.

Pozitivní bezpečnostní prvky:

Limity a rizika:

Build ze zdrojů

Repozitář je podle README sestavitelný přes Gradle wrapper. Vyžaduje Android Studio Hedgehog nebo novější a JDK 17.

git clone https://github.com/shiaho777/web-to-app.git
cd web-to-app
./gradlew assembleDebug

Release build vyžaduje nastavení podpisu v local.properties. V build skriptu je kontrola, která odmítá tichý release build podepsaný debug klíčem, pokud není explicitně povolený throwaway debug-signed release.

Licence

Projekt je publikovaný pod The Unlicense, tedy jako public-domain styl licence bez omezení pro kopírování, úpravy, publikování a komerční i nekomerční použití.

Zdroje