Run your app

Admit you've got an app:

from guy import Guy

class YourApp(Guy):
    ...

if __name__ == "__main__":
    app=YourApp()
    app.run()           #<- this is how to run it ;-)

Info

Since 0.5.1 versions, you can use autoreload's mode to help you during dev process (in production : don't set the autoreload to True)

The differents modes

Each method starts the loop (and provide the GUI). And when exiting : it returns the exit's returnValue (see js/exit() or py/exit())

app mode

Use app.run()

Classical mode, on desktop : it uses the installed chrome browser in app mode. (it's the way to run on android too)

Optionnal parameters:

  • one: (bool), permit to run just once instance at the same time (if True, running a second one will re-focus to the already runned one), default: False
  • log: (bool) enable logging (client & server side) (don't have any effect on android), default: False
  • autoreload: (bool) autoreload on changes (don't have any effect on android), default: False

To be able to store things in js/localStorage, you must use the one parameter, to make storage persistent. By default, storage is not persistent, and removed after each use!

cef mode

Use app.runCef()

Special mode for desktop : when you want to provide a standalone app, with all included. You will need cefpython3 ! (and you user don't need to have a chrome/chromum installed)

Optionnal parameters:

  • one: (bool), permit to run just once instance at the same time (if True, running a second one will re-focus to the already runned one), default: False
  • log: (bool) enable logging (client & server side), default: False
  • autoreload: (bool) autoreload on changes, default: False

To be able to store things in js/localStorage, you must use the one parameter, to make storage persistent. By default, storage is not persistent, and removed after each use!

server mode

Use app.serve()

Server mode, for servers.

Optionnal parameters:

  • log: (bool) enable logging (client & server side), default: False
  • port: (number) listening port, default: 8000.
  • open: (bool) open default browser to the client, default: True
  • autoreload: (bool) autoreload on changes, default: False

To summarize the choice

Just a table to help you to select the best mode for your needs

Mode : App Cef Server
Your users need chrome to run your app yes no no
Works on android/apk yes no no
Works on any OS yes yes yes
Your script is freezable, on any OS yes yes yes
Your script is pip packageable yes yes yes
Minimum size of the freezed executable 6mo 60mo 6mo
Many clients at same time no no yes
Host your app on a server (glitch.com) no no yes

Info

Pip-packageable is only enabled for guy >= 0.4.0