Giter Club home page Giter Club logo

briefcase's Introduction

http://beeware.org/project/projects/tools/briefcase/briefcase.png

Briefcase

Python Versions PyPI Version Maturity BSD License Build Status Discord server

Briefcase is a tool for converting a Python project into a standalone native application. You can package projects for:

  • Mac
  • Windows
  • Linux
  • iPhone/iPad
  • Android
  • Web

Support for AppleTV, watchOS, and wearOS deployments is planned.

If you want to see Briefcase in action, try the BeeWare tutorial. That tutorial walks you through the process of creating and packaging a new application with Briefcase.

Documentation

Documentation for Briefcase can be found on Read The Docs.

Community

Briefcase is part of the BeeWare suite. You can talk to the community through:

We foster a welcoming and respectful community as described in our BeeWare Community Code of Conduct.

Contributing

If you experience problems with Briefcase, log them on GitHub. If you want to contribute code, please fork the code and submit a pull request.

briefcase's People

Contributors

agyey avatar ahter avatar andrewleech avatar belthesar avatar conquerprogramming1 avatar curiouslearner avatar danyeaw avatar dependabot[bot] avatar eliasdorneles avatar elijahahianyo avatar elliegraves avatar foreverwintr avatar freakboy3742 avatar glasnt avatar iamzili avatar isabelapnt avatar jgirardet avatar marcmolla avatar mcscope avatar mhsmith avatar nikmolnar avatar paulproteus avatar prestonmclean avatar qlchan24 avatar rayrrr avatar rmartin16 avatar saroad2 avatar tadaboody avatar therealphildini avatar tlambert03 avatar

briefcase's Issues

Improve flexibility of Android emulator system image

The Android toolchain currently hard-codes the system image that is used on emulator images built by Briefcase (at time of writing, the default Android-31 image is used). This system image is downloaded when the emulator binary is downloaded, and is never directly updated.

This has some unfortunate side effects:

  1. If a user has an emulator created by a different set of tools (e.g., Android Studio), the emulator will appear in the list of available emulators, but won't be able to start
  2. A user can't intentionally choose a different base image - e.g., to test older/newer devices.
  3. A user can't intentionally choose a base image other than the Default image (e.g., a Google Play enabled image)

Describe the solution you'd like

  1. Wrapping sdkmanager --list to generate a list of all available packages
  2. Filtering that list to only include system images that correspond to supported Android versions for the current architecture (e.g., no point displaying arm64 images on an x86_64 laptop; no point displaying any image prior to Android-26, as that's the minimum supported version).
  3. Displaying the list of candidate images as a choice to the user when creating a new emulator. There is a TODO in the code indicating where this choice should be displayed.

Additional context

sdkmanager is a tool provided by the Android toolchain to do package management. Run briefcase run -v to see examples of how it can be run, including the environment variables that must be set in order to invoke it.

sdkmangager --list will give you a list of available images; any package starting with system_images; is, as the name suggests, a system image. The default system image used by briefcase on M1 hardware is system-images;android-31;default;arm64-v8a (system images are architecture dependent; only architecture-appropriate options should be provided).

sdkmangager --list_installed will give you a list of images that are currently installed.

sdkmanager <package name> will download and install a package.

Android emulators (called AVDs) are stored in ~/.briefcase/avd. There is a .ini config file and a .avd directory for each emulator, with the name of these files matching the emulator name. The .avd folder contains a config.ini that details the system image required by the AVD under the image.sysdir.1 key (e.g., image.sysdir.1=system-images/android-31/default/arm64-v8a/)

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.