Zobrazit stránkuStarší verzeZpětné odkazyNahoru Tato stránka je pouze pro čtení. Můžete si pouze prohlédnout zdrojový kód, ale ne ho měnit. Zeptejte se správce, pokud si myslíte, že něco není v pořádku. ====== WebToApp ====== //Vytvořeno: **15.6.2026** | Aktualizováno: **~~LASTMOD~~**// [[https://github.com/shiaho777/web-to-app|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ů: * webová URL jako WebView aplikace * statické HTML nebo frontend build * Node.js, PHP, Python a Go aplikace běžící přes lokální server v zařízení * WordPress přes lokální PHP a SQLite integraci * obrázky, video a galerie * multi-web aplikace s více weby v jedné aplikaci * experimentální úpravy existujících APK přes App Modifier 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í: - vytvořit aplikaci z URL, složky projektu, médií nebo šablony runtime projektu - nastavit WebView, toolbar, splash screen, oprávnění, moduly, podpis a chování runtime - zkontrolovat náhled přímo v telefonu - sestavit a podepsat APK v zařízení - 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: <code> app - hlavní builder a hostitelská Android aplikace shell - runtime šablona používaná pro generované aplikace </code> 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: * úprava binary AXML manifestu * úprava ARSC resources * injekce konfigurace, assetů, HTML, médií a runtime souborů * nastavení názvu aplikace, ikony, package name, verze a oprávnění * volitelné šifrování zdrojů * podepisování APK pomocí ''com.android.tools.build:apksig'' * podpora V1/V2/V3 podpisů * export AAB pro podporované typy aplikací ===== 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: * **Node.js** – přes nativní launcher a ''libnode.so'' * **PHP** – PHP 8.4, včetně Composer podpory * **Python** – Flask, Django, FastAPI přes uvicorn, Tornado nebo jednoduchý HTTP server * **Go** – on-device build, vendor/offline build a spouštění binárky přes nativní loader * **WordPress** – lokální PHP + SQLite integrace 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: * vlastní User-Agent a desktop režim * JS/CSS injekce * popup handling * PWA/offline cache strategie * vlastní error stránky * proxy, PAC proxy a DNS-over-HTTPS * dark mode, toolbar, fullscreen, long-press menu a další prvky chování aplikace Projekt má také [[https://github.com/shiaho777/web-to-app/tree/main/modules|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: * šifrování zabalených zdrojů přes PBKDF2 a AES-256-GCM * volitelná runtime kontrola anti-debug, anti-Frida a DEX tamper * adblock a filtrování zdrojů * izolace některých WebView povrchů * aktivační kódy a [[https://github.com/shiaho777/web-to-app/blob/main/.github/docs/remote-activation.md|remote activation]] přes vlastní HTTPS endpoint s ECDSA podpisem odpovědi Limity a rizika: * aktivace běží na klientovi, takže u open-source aplikace nejde o plnohodnotnou anti-crack ochranu * shell šablona obsahuje široké množiny oprávnění; výsledný manifest závisí na konfiguraci a úpravách builderu * funkce jako App Modifier, disguise, forced-run nebo fingerprint disguise jsou dual-use a mají smysl jen s informovaným souhlasem uživatele * hostitelská aplikace s ''targetSdk = 28'' je technický kompromis kvůli lokálním runtimům, ne obecně ideální model pro běžnou distribuci přes obchod ===== Build ze zdrojů ===== Repozitář je podle README sestavitelný přes Gradle wrapper. Vyžaduje Android Studio Hedgehog nebo novější a JDK 17. <code bash> git clone https://github.com/shiaho777/web-to-app.git cd web-to-app ./gradlew assembleDebug </code> 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 [[https://github.com/shiaho777/web-to-app/blob/main/LICENSE|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 ===== * [[https://github.com/shiaho777/web-to-app|WebToApp – GitHub repozitář]] * [[https://github.com/shiaho777/web-to-app/releases|WebToApp – GitHub Releases]] * [[https://github.com/shiaho777/web-to-app/tree/main/modules|WebToApp Module Market]] * [[https://github.com/shiaho777/web-to-app/blob/main/.github/docs/remote-activation.md|WebToApp – Remote Activation dokumentace]] * [[https://github.com/shiaho777/web-to-app/blob/main/LICENSE|WebToApp – licence]] software/nastroje/web-to-app.txt Poslední úprava: 15.06.2026 17:34autor: Petr Nosek