Interact
Interact allows to create small GUIs in Julia based on web technology. These GUIs can be deployed in jupyter notebooks, in the Juno IDE plot pane, in an Electron window or in the browser.
To understand how to use it go through the Tutorial. The tutorial is also available here as a Jupyter notebook.
InteractBase, Knockout and WebIO provide the logic that allows the communication between Julia and Javascript and the organization of the widgets.
Overview
Creating an app in Interact requires three ingredients:
- Observables: references that can listen to changes in other references
- Widgets: the graphical elements that make up the app
- Layout: tools to assemble together different widgets
To get a quick overview of how these tools work together, go to Tutorial.
CSS framework
Interact widgets are by default styled with the Bulma CSS framework (the previously supported UIkit backend is now deprecated). Bulma is a pure CSS framework (no extra Javascript), which leaves Julia fully in control of manipulating the DOM (which in turn means less surface area for bugs).
To use unstyled widgets in the middle of the session (or to style them again) simply do:
settheme!(:nativehtml)
settheme!(:bulma)
respectively.
Deployment
InteractBase works with the following frontends:
- Juno - A flexible IDE for the 21st century
- IJulia - Jupyter notebooks (and Jupyter Lab) for Julia
- Blink - An Electron wrapper you can use to make Desktop apps
- Mux - A web server framework
See Deploying the web app for instructions.