{"id":45884059,"url":"https://github.com/xtools-at/Android-PWA-Wrapper","last_synced_at":"2026-03-13T02:01:10.617Z","repository":{"id":43801828,"uuid":"105792578","full_name":"xtools-at/Android-PWA-Wrapper","owner":"xtools-at","description":"Android Wrapper to create native Android Apps from offline-capable Progressive Web Apps","archived":false,"fork":false,"pushed_at":"2021-12-29T22:38:52.000Z","size":244,"stargazers_count":338,"open_issues_count":14,"forks_count":133,"subscribers_count":17,"default_branch":"master","last_synced_at":"2024-04-18T09:32:47.503Z","etag":null,"topics":["android","android-app","android-pwa-wrapper","android-wrapper","offline","offline-app","offline-capable","offline-first","progressive-web-app","pwa","service-worker","single-page-app","spa","wrapper"],"latest_commit_sha":null,"homepage":"https://www.leasingrechnen.at","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xtools-at.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-10-04T16:41:22.000Z","updated_at":"2024-04-11T00:40:27.000Z","dependencies_parsed_at":"2022-09-03T04:42:39.554Z","dependency_job_id":null,"html_url":"https://github.com/xtools-at/Android-PWA-Wrapper","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/xtools-at/Android-PWA-Wrapper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xtools-at%2FAndroid-PWA-Wrapper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xtools-at%2FAndroid-PWA-Wrapper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xtools-at%2FAndroid-PWA-Wrapper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xtools-at%2FAndroid-PWA-Wrapper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xtools-at","download_url":"https://codeload.github.com/xtools-at/Android-PWA-Wrapper/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xtools-at%2FAndroid-PWA-Wrapper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30454982,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T21:31:01.033Z","status":"online","status_checked_at":"2026-03-13T02:00:07.565Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-app","android-pwa-wrapper","android-wrapper","offline","offline-app","offline-capable","offline-first","progressive-web-app","pwa","service-worker","single-page-app","spa","wrapper"],"created_at":"2026-02-27T15:00:30.025Z","updated_at":"2026-03-13T02:01:10.612Z","avatar_url":"https://github.com/xtools-at.png","language":"Java","readme":"# Android-PWA-Wrapper\n\nAn Android Wrapper application to create native Android Apps from an offline-capable Progressive Web App.\n\nDrafted for the [Android App](https://play.google.com/store/apps/details?id=at.xtools.leasingrechner\u0026utm_source=github.com\u0026utm_medium=link\u0026utm_campaign=store_visit) of my [Leasing Calculator](https://www.leasingrechnen.at) Web App using [React](https://github.com/facebook/react), [Redux](https://github.com/reactjs/redux), [Materialize.css](https://github.com/Dogfalo/materialize) and a lot of Offline-First love over at [leasingrechnen.at](https://www.leasingrechnen.at).\n\n## Looking for iOS or Desktop?\nCheck out my other projects:\n- [iOS-PWA-Wrapper](https://github.com/xtools-at/iOS-PWA-Wrapper) for iOS\n- [Electron-PWA-Wrapper](https://github.com/xtools-at/Electron-PWA-Wrapper) for macOS, Windows and Linux\n\n## Why would I use a wrapper?\nI know, using a Wrapper-App to display a Website can feel a bit odd. But there are a few good reasons why you'd package your Web App like this.\n- If you've got a very sophisticated UI already, it might make sense not to rebuild it from scratch for multiple platforms, especally if it's a Single Page Application already, that doesn't \"feel\" like a Website.\n- There might be as well less competition for a given niche on App Stores, in comparison to Google directly. With [leasingrechnen.at](https://www.leasingrechnen.at), I've got easily into the Top 10 Apps on Google Play for my country, whereas Google Search put me on page 9 as the Site is relatively new.\n\n## What it does\n- Sets up a WebView just the way PWAs/SPAs like it (e.g. enables App cache and DOM storage, ...).\n- Shows a loading spinner while fetching the Web App.\n- Provided your Web App is Offline-capable, it only needs an Internet connection on the first startup. If this fails, it shows a native refresh widget.\n- Opens all external URLs in the device's Browser instead.\n- Checks for Internet connection and fetches Updates for your Web App accordingly.\n- Is compatible down to JellyBean, although it's recommended to build for SDK Version \u003e= 19 (KitKat). Building for SDK Version \u003e= 21 (Lollipop) puts you on the safe side without having to worry too much about Browser support.\n- APK-size \u003c 1.4 MB. The latest cat video from WhatsApp weighs heavier ;)\n\n## How to build your own\n- Get Android Studio 3.4+\n- Clone/fork repository\n- Put your Web App's URL in _WEBAPP_URL_ in `Constants.java`\n- Replace *app_name* in `strings.xml` with the name of your App\n- Add your own primary colors to `colors.xml` (*colorPrimary, colorPrimaryDark, colorPrimaryLight*)\n- Put your own icons in place:\n    - Add your own _ic_launcher.png_ and _ic_launcher_round.png_ in the `mipmap` folders\n    - Add your own _ic_appbar.png_ in the `drawables` folders. This is displayed in Android's _Recent Apps_ View on your app bar, so it should look nicely when placed on top of your primary color.\n    - I recommend using [Android Asset Studio](https://romannurik.github.io/AndroidAssetStudio) to get the icons ready in no time\n- Change the package name in `app/build.gradle`, *applicationId*\n- Change `AndroidManifest.xml` -\u003e `aplication` -\u003e `activity` -\u003e `intent-filter` to your own URLs/schemes/patterns/etc. or remove the `intent-filter` for `android.intent.action.VIEW` altogether\n- Check `Constants.java` for more options\n- Build App in Android Studio\n\n### I don't accept Feature Requests, only Pull Requests :)\n\n## License\n[GNU General Public License v3.0](https://www.gnu.org/licenses/gpl-3.0.en.html) - if you use it, we wanna see it!\nOther licensing options are available on inquiry.\n","funding_links":[],"categories":["Java"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxtools-at%2FAndroid-PWA-Wrapper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxtools-at%2FAndroid-PWA-Wrapper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxtools-at%2FAndroid-PWA-Wrapper/lists"}