Git Product home page Git Product logo

judahgabriel / llama-pack Goto Github PK

View Code? Open in Web Editor NEW

This project forked from googlechromelabs/bubblewrap

0.0 2.0 0.0 304 KB

Llama Pack 🦙 is a Command Line Interface (CLI) that helps developers to create a Project for an Android application that launches an existing Progressive Web App (PWAs) using a Trusted Web Activity.

License: Apache License 2.0

JavaScript 18.72% Shell 1.21% TypeScript 80.07%

llama-pack's Introduction

🦙Llama Pack

Node CI Status

Llama Pack is a Command Line Interface (CLI) that helps developers to create a Project for an Android application that launches an existing Progressive Web App (PWA) using a Trusted Web Activity (TWA).

Important: llama-pack is still under active development. The tool hasn't been tested on a wide range of Web APKs, and bootstraping a new project may fail in those cases. Please, file issues, feature requests, and contribute with pull requests, if possible.

Requirements

Setting up the Environment

Get the Java Development Kit (JDK) 8.

The Android Command line tools requires the correct version of the JDK to run. To prevent version conflicts with a JDK version that is already installed, llama-pack uses a JDK that can unzipped in a separate folder.

Download a version of JDK 8 that is compatible with your OS from AdoptOpenJDK and extract it in its own folder.

Warning: Using a version lower than 8 will make it impossible to compile the project and higher versions are incompatible with the Android command line tools.

Get the Android command line tools

Download a version of Android command line tools that is compatible with your OS from https://developer.android.com/studio#command-tools. Create a folder and extract the downloaded file into it.

Tell llama-pack where the JDK and Android command line tools are

When running llama-pack for the first time, it will ask where it can find the JDK and Android command line tools. So, take note of the location where both were decompressed.

Using llama-pack

Initializing an Android Project

Generate an Android project from an existing Web Manifest:

npx GoogleChromeLabs/llama-pack#0.3.0 init --manifest https://my-twa.com/manifest.json

When initalizing a project, llama-pack will download the Web Manifest and ask you to confirm the values that should be used when building the Android project.

It will also ask you for the details needed to generate a signing key, used to sign the app before uploading to the Play Store.

Building the Android Project

npx GoogleChromeLabs/llama-pack#0.3.0 build

When building the project for the first time, the Android Build Tools will need to be installed. The tool will inkove the installation process for the build tools. Make sure to read and accept the license agreement before proceeding.

As a result of the build step, the tool will generate a signed APK (app-release-signed.apk) that can be uploaded to the Play Store. You will also need to deploy a Digital Asset Links file to validate your domain. The TWA Quick Start Guide explains how to extract the information needed to generate it.

Contributing

See CONTRIBUTING for more.

License

See LICENSE for more.

Disclaimer

This is not a Google product.

llama-pack's People

Contributors

abdonrd avatar andreban avatar fluorescenthallucinogen avatar jadjoubran avatar judahgabriel avatar notwoods avatar peconn avatar rayankans avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.