Skip to main content

Bundle HTML/CSS/JS into an Android WebView app

Project description

Construction-cat-with-helmet-close-up.png

🍬 Bomboneka (bomk)

Bundle your HTML, CSS, and JS into a native Android WebView app — with a single command.



Why?

Converting a website into an Android app is genuinely painful. Bonboneka makes it a one-liner. No Android Studio, no boilerplate — just your web files and one command.


Features

  • Automatic inlining — External CSS and JS are merged into a single self-contained HTML file
  • Asset encoding — Images are automatically converted to Base64 data URIs
  • Multi-bundle support — Define multiple entry points using either naming convention
  • PWA mode — Wrap any PWA URL into an installable Android APK via Capacitor
  • Web UI — A local web interface for building and managing your projects (its out, not soon, now :D )

Requirements

| Requirement | Notes | | Python 3.10+ | Well, for installing the tool and running it. | | Git | Required for template cloning | | Android SDK | Required for APK compilation | | Java JDK | Required for Gradle(building) | | Capacitor | Required for PWA mode |


Installation

Recommended — install from your platform's instalation script

chmod +x ./install.sh #For macOS and Linux
./install.bat #Windows

Alternative — install from source or from PiPy:(same on both platforms

pip install -e . (inside the directory)
pip install bonboneka

Usage

bomk create <path/to/folder> [options]
Option Description
-s, /s Silent mode — suppress all output
--verbose, /verbose Verbose mode — shows Gradle build logs
--ultra-verbose Ultra verbose mode, will be removed soon(its useless)
-o <dir> Output directory for the generated APK
--icon <path> Custom launcher icon (PNG / JPG / WebP)
--name <name> Override the app name shown on the launcher
--config <path> Path to a .bombundlefig file (Flow protocol)
--nobuild Skip APK build — output the prepared template instead

Naming Protocols

Bonboneka supports two protocols for declaring which files belong together.

StatiX

Statix build in terminal

The original protocol. Group membership is declared in the filename using a _$N tag.

my_app/
├── index_$1.html          ← Entry point (Group 1)
├── styles_$1.css
├── script_$1.js
├── start_$2.html          ← Secondary page (Group 2)
├── styleofstart_$2.css
└── backend_$2.js
bomk create ./my_app

Flow

Flow build in terminal

The modern protocol. Files have plain names. Group membership is declared in a .bombundlefig config file, and the entry-point HTML identifies itself with a <div class="id1"></div> marker.

my_app/
├── index.html             ← Entry point (Group 1) — contains <div class="id1">
├── styles.css
├── script.js
├── start.html             ← Secondary page (Group 2) — contains <div class="id2">
├── styleofstart.css
├── backend.js
└── .bombundlefig

.bombundlefig:

{
  "groups": {
    "1": ["index.html", "styles.css", "script.js"],
    "2": ["start.html", "styleofstart.css", "backend.js"]
  }
}
bomk create ./my_app
# or, if the config is stored elsewhere:
bomk create ./my_app --config ./path/to/.bombundlefig

Note: Group 1 is always treated as the app's primary entry point, regardless of protocol.


PWA Mode

Wrap any PWA URL into an installable Android APK using Capacitor.

⚠️ --encased mode has been removed as of version 2.0.

bomk create --pwa <url>
bomk create --pwa https://example.com --name "My App" --package com.example.app

PWA mode uses Capacitor, not B0MK Core. Requires Node.js 14+ and the Capacitor CLI.


NEW - WEBUI(3.0 revolution)

webui screnshod

Due to the command line being verry 👻spookey doopey gloopey👻 so I thought "Why don't make an UI". And since WinUI is not crossplatform, I thought "WHY NOT AN WEB UI??". It is cross-platform(excepting for my homies on MS-DOS and UNIX and like IBM OS/2). It looks....fine. Ig its good. The screenshot speaks for itself. I don't need to say anything. lmaoooo.

Start it with python webUI.py

bomk doctor

Validate a Bonboneka project and diagnose common issues. Note: Doctor has not been ported to the Flow protocol yet and only supports StatiX projects. I(not we,I am an single person working on this) am trying to port it asap.

bomk doctor <path/to/project>

Checks for:

  • Missing or misnamed files
  • Incorrect protocol usage
  • Missing entry-point markers (_$1 or <div class="id1">)

Gitlink (beta)

Link your template to a GitHub repository and configure auto-commit behaviour.

bomk gitlink <template> --set <url>                        # Set remote origin
bomk gitlink <template> --behaviour commit-per-build       # Auto-commit on every build
bomk gitlink <template> --behaviour manual-commit          # Commit manually
bomk gitlink <template> --commit                           # Commit pending changes
bomk gitlink <template> --push                             # Push to remote
bomk gitlink <template> --disengage                        # Reset to default origin

⚠️ Gitlink is in beta and has not undergone rigorous testing.


Configuration

Edit bomk/config.py to customise the build environment:

# Android project scaffold repository
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"

Version

3.0 "Gloopy Oopy Cat Factory" — Flow protocol, PWA mode, --name, --config, Gitlink beta.

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

bomk-0.3.2.tar.gz (26.5 kB view details)

Uploaded Source

Built Distribution

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

bomk-0.3.2-py3-none-any.whl (26.9 kB view details)

Uploaded Python 3

File details

Details for the file bomk-0.3.2.tar.gz.

File metadata

  • Download URL: bomk-0.3.2.tar.gz
  • Upload date:
  • Size: 26.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for bomk-0.3.2.tar.gz
Algorithm Hash digest
SHA256 4907ffeecaa0269a49286a9eea2115cb59ceabea91a6a2d099566a26580abf05
MD5 bce3a206114fb67b9299b24dd1d0e3fa
BLAKE2b-256 fec524855a577c5789133ad01c159dd2cd7ef71cb70545d05b61a510574cacf1

See more details on using hashes here.

File details

Details for the file bomk-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: bomk-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 26.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for bomk-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fbcf222ac677b382f44e421e8366d259408f14becf49bf7acaa4b53bab3a5e02
MD5 17e595008bf258cb536edfacdc6f39c5
BLAKE2b-256 926ec32d7059d07444335ed0c9812f2157b7bf0c6b9689a75cdaeaa8da689dd6

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