mirror of
https://github.com/pyscript/pyscript.git
synced 2022-05-01 19:47:48 +03:00
80 lines
2.4 KiB
Markdown
80 lines
2.4 KiB
Markdown
# Freedom Units!
|
|
|
|
This is a demo Toga app implementing a Fahrenheit to Celsius converter.
|
|
|
|
## Initial setup
|
|
|
|
1. Create and activate a virtual environment:
|
|
|
|
$ python -m venv venv
|
|
$ . ./venv/bin/activate
|
|
|
|
2. Install the demo requirements:
|
|
|
|
$ pip install -r requirements.txt
|
|
|
|
### Development details
|
|
|
|
This demo symbolically links the pyscript build generated by the npm server
|
|
(`../build`) into the `./static/pyscript` directory. This symbolic link should
|
|
be restored automatically by git. This also means you'll need to run the main
|
|
pyscript demos at least once before running the server-rendered version of the
|
|
app. If you experience problems loading pyscript, check whether this link
|
|
exists, and the `build/pyscript.js` file has been compiled.
|
|
|
|
It also includes an vendored experimental version of toga-core, toga-web and
|
|
toga-flask, packaged as wheels in the `./static/wheels` directory. If any changes
|
|
are made to the Toga sources, these vendored resources will need to be updated.
|
|
|
|
## Web app
|
|
|
|
This app can be viewed as a Single Page App (SPA); this version of the app is
|
|
linked from the main PyScript demo pages.
|
|
|
|
It can also be viewed as a server-rendered app. This version of the app is
|
|
delivered by a demo Flask server, serving a version of app at the root URL. To
|
|
run the web demo server:
|
|
|
|
$ cd server
|
|
$ PYTHONPATH=../freedom/src python -m demo
|
|
|
|
then point your browser at http://localhost:8081/
|
|
|
|
Enter a value in the "Farenheit" input, and click the "calculate" button.
|
|
|
|
It may take a few seconds for this button to become live; look for the
|
|
"Collecting nodes..." entry in the console log.
|
|
|
|
## Desktop app
|
|
|
|
To run this app in development mode:
|
|
|
|
$ briefcase dev
|
|
|
|
To build and run an app bundle:
|
|
|
|
$ briefcase run
|
|
|
|
If you're on an M1 macOS, this will raise an error on first run; if you get this error, run:
|
|
|
|
$ briefcase package -p app --adhoc-sign
|
|
|
|
then re-run `briefcase run`
|
|
|
|
## iOS app
|
|
|
|
To run this in the iOS simulator, run:
|
|
|
|
$ briefcase run iOS
|
|
|
|
To run this in the Android simulator, run:
|
|
|
|
$ briefcase run android
|
|
|
|
Note that these builds have extensive requirements that must be installed -
|
|
Xcode for iOS, and the Android SDKs for Android. These are multiple gigabyte
|
|
downloads. Briefcase will detect when these tools aren't available, and either
|
|
prompt you to download them, or perform a download for you. As a result, your
|
|
first build may take up to 20 minutes to complete, depending on the speed of
|
|
your conection.
|