Skip to main content

Bundle HTML/CSS/JS into an Android WebView app

Project description

🍬 Bonboneka (bomk)

Bonboneka allows you to bundle your HTML, CSS, and JS assets into a native Android WebView app with a single command(yea its that cool).

🚀 Features

  • Automatic Inlining: Converts external CSS and JS into a single, self-contained HTML file.

  • Asset Encoding: Automatically converts images into Base64 data URIs.

  • Multi-Bundle Support: Define multiple entry points and bundles using a simple naming convention.

📋 Requirements

  • Python: 3.10+

  • Git(of course you need git)

  • Android SDK + Java: Necessary for...I don't know, BUILDING THE APP?!

🛠 Installation

Install the package in editable mode from your local directory(use an env if on Linux):

pip install -e .

💻 Usage

bomk create <path/to/folder> [options]

Options

  • /s Silent mode: Suppress all terminal output.
  • /verbose Verbose mode: Show detailed build logs.
  • -o <dir> Output: Specify the directory for the generated APK.

📂 File Naming Convention

To define which bundle a file belongs to, tag the filename with _$ before the extension.

Example Structure:

my_app/
├── index_$1.html          ← Main entry point (Group 1)
├── styles_$1.css          ← Styles for Group 1
├── script_$1.js           ← Logic for Group 1
├── start_$2.html          ← Secondary page (Group 2)
├── styleofstart_$2.css    ← Styles for Group 2
└── backend_$2.js          ← Logic for Group 2

NOTE!

Group $1 is always treated as the app's primary entry point. All assets in a group are bundled into one self-contained HTML file.

⚙️ Configuration

Customize your build environment by editing bomk/config.py:

# The repository used as the Android project scaffold
TEMPLATE_REPO      = "https://github.com/YourUser/Example-Android-WV-App.git"

# Relative paths within the template
ASSETS_REL_PATH    = "app/src/main/assets"
MAIN_JAVA_REL_PATH = "app/src/main/java/exampleWV/app/Main.java"

🌐 Encased Mode

Bonboneka can create a wrapper for an website

bomk create --encased <url> [options]

Example:

bomk create --encased https://example.com -o ./dist /verbose

Bonboneka will:

  • Generate an html file
  • Take the url
  • Add an iframe
  • Add the website to the iframe
  • Generate a WebView Android project
  • Build the APK automatically

bomk doctor - Troubleshooting advisor

The bomk doctor command will troubleshoot any valid Bonboneka projects. Usage:

bomk doctor <path-to-project>

Output:

folder from bomk is runned/
└── example.apk

🌟 Quick Start

Example

To build the app located in ./my_app and output the APK to the ./dist folder with full logging:

bomk create ./my_app -o ./dist /verbose

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bonboneka-0.1.0.tar.gz (16.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bonboneka-0.1.0-py3-none-any.whl (16.6 kB view details)

Uploaded Python 3

File details

Details for the file bonboneka-0.1.0.tar.gz.

File metadata

  • Download URL: bonboneka-0.1.0.tar.gz
  • Upload date:
  • Size: 16.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for bonboneka-0.1.0.tar.gz
Algorithm Hash digest
SHA256 eb2567bdcbc5604dd8999b3b33fa44594d76e339c4457e8ac83200dea150c27f
MD5 07d6ebf70def6907f14c6bb53bc5863d
BLAKE2b-256 c362097ce5749dd628df334dbf8875757464c8b4f72a6fa0bf93a1be4a4f47b2

See more details on using hashes here.

File details

Details for the file bonboneka-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: bonboneka-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for bonboneka-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e0a1cb8bec16f9193ee7d264c41dcae9d3cbfe94fb2349334a14d70e2cbfdb11
MD5 f069655e21912639f5c6a8f44b7994cf
BLAKE2b-256 8596781c5ab03caae7cd6fc72b146c9450d5ac07e1435d09b27ee1be40a66457

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page