Converting

How to convert HTML to an app

Every step between a folder of HTML and an Android app on a phone: preparing files, choosing bundled or live, icons, package name, version, the build, and the first install.

9 min read Updated September 2026

Quick answer: to convert HTML to an app you package your pages inside an Android WebView shell — a native app whose whole screen is a browser engine showing your content. You supply the HTML (or a ZIP, or a URL), a square logo, a package name and a version; a build produces a signed APK that installs on any Android phone. Nothing about your HTML, CSS or JavaScript has to be rewritten.

That is the whole idea. The rest of this guide is the order in which the details arrive, and what each one wants from you.

Before you begin: three inputs, one decision

You need three things and one choice:

  1. Your web content — a single HTML file, a ZIP of a site, or the address of a site that is already online.
  2. A square logo — ideally 1024×1024, from which every icon size is generated.
  3. A package name — the permanent identifier, in reverse-domain form.

The choice is whether the app bundles your content or loads it live. It affects offline behaviour, size and how you ship updates, so it comes first.

The HTML to App converter home page with the two starting points: an HTML or ZIP file, or a website URL
The two starting points. Files are bundled into the app; a URL is loaded live.

Step 1 — Bundled or live?

QuestionBundle the filesLoad the URL
Works in airplane mode?Yes — pages come from the deviceNo
How fast is the first screen?ImmediateAfter the network answers
How do I update the content?Ship a new buildEdit the website
How big is the app?Shell (~4–5 MB) plus your filesShell only
Typical useBrochures, tools, courses, HTML5 gamesShops, dashboards, WordPress/Shopify/Wix sites

Rule of thumb: if the content must survive no signal, bundle it; if it changes weekly, load it. A hybrid — bundle the shell, fetch the data over HTTPS — is common and works well.

Step 2 — Make the files app-safe

Bundled pages are loaded from a folder on the device, not from a web server. Three things break as a result, and all three are invisible until the app is on a phone:

Use relative paths only

css/app.css and ../img/logo.png travel with the files. /css/app.css has no site root to resolve against inside an app, and file:///Users/you/site/app.css points at a computer the phone cannot see.

Bring external assets home

A font from Google Fonts or a library from a CDN is a blank space when the phone is offline. Download them into the project. It is also quicker: no DNS, no handshake.

Avoid type="module" on bundled pages

Browsers refuse ES modules from file:// origins, so a page built that way opens white with no error visible to the user. Bundle to a classic script, or confirm your converter serves bundled files over http://localhost.

HTML ValidatorCheck HTML for problems that break inside an app Open the tool
The HTML validator listing the WebView-specific problems in a page: missing DOCTYPE, absolute paths, module scripts
The validator looks specifically for the failures that only show up inside an app.

Step 3 — Generate the icon set

Android wants launcher icons at five densities (48 to 192 px), a round variant, a 432×432 adaptive foreground and a 512×512 for the store. Generate all of them from one master image rather than resizing by hand, and design the master for how it will look at 48 px: one shape, high contrast, no words.

APK Icon GeneratorEvery Android launcher size from one image Open the tool
The generated Android icon set: five launcher densities, round and adaptive foreground variants
Every density Android asks for, in the folder names it expects.

More on masks, safe zones and the store icon's no-transparency rule in the app icon guide.

Step 4 — Pick the package name (carefully)

The package name — com.yourbrand.yourapp — is how Android tells your app from every other and how Google Play identifies the listing. It cannot be changed after publishing. Lowercase, at least two dot-separated parts, letters first in each part, no hyphens, and never com.example.

Package Name GeneratorBuild and validate a valid applicationId Open the tool
The package name generator producing a valid applicationId from a domain and an app name
Check it here in seconds rather than discovering a problem after a build.

Step 5 — Set the version

Two fields. versionName is text for humans ("1.0"); versionCode is an integer Android compares to decide whether an install is an upgrade, and Play insists it rises on every upload. Start at 1 and "1.0".

The version code generator turning a version name into a numeric version code with a Gradle snippet
Pick a numbering scheme once; it must only ever go up.

Step 6 — Build

With the settings entered, a cloud build assembles a real Android project around your content, compiles it with Gradle, signs it and returns an APK. It takes a few minutes and nothing is installed on your computer.

The builder's sign-in screen with a Google sign-in button
Builds belong to an account so your projects and downloads are still there next time.

Two facts about the output: every APK is signed (Android refuses unsigned packages), and if you later publish on Google Play, the first key you publish with must sign every future update — so use your own key from the start if Play is the plan.

Step 7 — Install and test on a real phone

Open the APK on an Android device. It will ask to allow installs from that source, which is normal for anything not from the Play Store. Then check what a desktop browser never shows you:

How big will the app be?

The WebView shell is around 4–5 MB. HTML, CSS and JavaScript compress to roughly a quarter of their size inside the package, so text-heavy sites add very little. Images and video do not compress and dominate the total.

APK Size CalculatorEstimate your app's size before you build Open the tool
The APK size calculator with an estimate and a breakdown of the project by file type
The estimate compresses your real files, so images and text are counted the way Android counts them.

Checklist

Sharing the app directly? The APK is the deliverable. Publishing on Google Play? You will need an App Bundle instead — see APK vs AAB and publishing on Google Play.

Questions people ask

How do I convert an HTML file to an app?

Package it inside an Android WebView shell. Upload the HTML (or a ZIP of your site), set a name, icon, package name and version, and build. The output is a signed APK that installs on any Android phone. Your HTML, CSS and JavaScript are not modified.

Is converting HTML to an app free?

With this converter, yes: the free tier builds signed, installable APKs with no watermark and no expiry. Paid features are only needed for Google Play's AAB format and extras like splash screens, native tabs and push notifications.

Does the converted app work offline?

Only when the content is bundled into the app. Bundled pages are served from the device and work in airplane mode; an app that loads a live URL needs a connection for every screen.

Why does the app open to a blank white screen?

Almost always a <script type="module"> tag, which browsers block on bundled file:// pages so no JavaScript runs. Absolute paths and a missing DOCTYPE are the other usual causes. The HTML validator flags all three before you build.

Can I install the app on iPhone too?

No — this process produces Android apps (APK and AAB). iOS needs Apple's toolchain and a developer account, which is a separate project.

Is an APK made this way safe?

It contains your content plus a WebView shell and nothing else. Android's warning about installing from outside the Play Store appears for every directly installed APK and is not a judgement on the file.

Read next

Ready to turn your site into an app?

Upload an HTML file or a ZIP, set your icon and name, and download a signed Android app. No Android Studio, no command line.

Open the builder