Shipping an internal tool
Wrap a responsive internal dashboard so staff get a launcher icon and a full-screen view instead of a browser tab.
Turn a website into a full-screen Android Studio WebView project — icon, splash, permissions and all.
android.permission.INTERNETRequired to load the website.android.permission.ACCESS_NETWORK_STATEDetects when the device is offline so the app can show its own error screen.Toolspea Android WebView App Builder creates a configurable Android Studio WebView project that opens a selected website inside a full-screen Android application. You enter a URL, app name, package name and version, upload an icon, choose WebView features and permissions, then download a Kotlin/Gradle project that compiles in Android Studio. It generates source code, not a compiled APK.
An Android WebView app is a native Android application whose entire user interface is a single WebView component pointed at a website. Android draws the window, the launcher icon and the task entry; the page inside supplies every screen. Because WebView is the same rendering engine Chrome uses on Android, whatever works in mobile Chrome works in the app.
The value is packaging rather than rendering: a home screen icon, a full-screen window with no address bar, control over the back button, an offline screen you designed, and a route into the Play Store. The cost is that you inherit your website's performance and layout, good or bad.
Check the site is responsive at 360 CSS pixels wide and served over HTTPS. Enter the URL, an app name and a package name such as com.yourcompany.yourapp. Upload a square icon of at least 512×512 — 1024×1024 gives the crispest adaptive layers. Turn on only the WebView features your site actually uses, then download the project.
In Android Studio choose Open, select the unzipped folder, and let it generate the Gradle wrapper and download dependencies. Press Run with a device or emulator attached. To change the URL later, edit startUrl at the top of MainActivity.kt.
By default the generated app has no toolbar, no address bar and no native header — the WebView fills the window from edge to edge, and window insets are applied so content is never hidden behind the status bar or the gesture navigation area. Your own site header becomes the app's header.
If you would rather have a native chrome, switch the toolbar on and you get a Material toolbar with the app title. It is off by default because most sites already have navigation and a second header wastes vertical space on a phone.
The package name, called the application ID, is the permanent identity of your app on a device and in Google Play. It is dot-separated, conventionally the reverse of a domain you control: example.com becomes com.example.appname. Each segment must start with a letter and contain only letters, digits and underscores. Spaces are invalid, uppercase is discouraged, and Java keywords cannot be used as segments.
You cannot change the application ID after publishing — a new ID is a new listing with no reviews or installs. Choose it carefully before the first upload.
Upload one square image and the builder produces every launcher asset: legacy square and round mipmaps for five densities, plus an adaptive icon made of a foreground layer inset into the 72dp safe circle and a solid background colour. Adaptive icons are what let Android show your icon as a circle on one launcher and a squircle on another without clipping the logo.
Leave breathing room around the artwork in your source file, keep the logo centred, and avoid text smaller than about 10% of the canvas height — it disappears at 48dp.
The project uses the Android 12+ splash screen API through the AndroidX core-splashscreen library, so the icon appears on your background colour the instant the process starts and hands over to the WebView as soon as it is ready. That is the correct modern pattern.
You can add a short hold if you want the brand moment to register, but there is deliberately no multi-second option: an artificial wait makes an app feel slower, and Play reviewers notice.
HTML file inputs need an Activity to pick the file, which a bare WebView does not provide. The generated app implements onShowFileChooser using the modern Activity Result API and the system file chooser, so <input type="file"> works, including multiple selection and the camera when the page asks for it and camera permission is enabled.
Downloads are handled with a DownloadListener that hands the URL to Android's DownloadManager, writing into the app's own external files directory. That path needs no storage permission at all, which keeps the permission list short — nothing broad is requested just in case.
The generated Activity registers no JavaScript bridge, so the loaded page cannot call Android APIs. File access and content access are disabled, universal access from file URLs is never enabled, and mixed content is blocked so an HTTPS page cannot pull in HTTP subresources.
Most importantly, onReceivedSslError is not overridden. Sample code across the web calls handler.proceed() there, which silently accepts forged certificates and defeats HTTPS entirely; Google Play rejects apps that do it. The platform default cancels the load, and that is what this project keeps.
Cleartext HTTP is blocked unless you explicitly opt in, and when you do, the network security config permits it only for the hosts you listed rather than for every domain the app can reach.
Wrap a responsive internal dashboard so staff get a launcher icon and a full-screen view instead of a browser tab.
Start from a working WebView project and add native value on top before submitting to Google Play.
Show a site running as an app on a real device without spending a day on Android boilerplate.
Read a complete, security-reviewed WebView Activity instead of piecing one together from old forum answers.
Generate the manifest, icons, service worker and offline page a website needs to become installable.
One square image in, every PWA and Android launcher icon out — including maskable and favicon.ico.
Build a valid manifest.webmanifest field by field, with live JSON and a copy button.
Clone a public website and download HTML, CSS, JavaScript, images and fonts as a ZIP.
Hand-picked hubs, guides and companion tools related to this page.
Last reviewed 2026-08-15. Browse the full directory.