This is the Arduino App Lab desktop application. It's a cross-platform application built with Wails
GitHub issue reports for both user and contributor facing bugs of App Lab are welcome.
Required:
node.jsyarndirenv
This project uses direnv to execute it in a dedicated shell and isolate it from the system. This gives us full control of the project and makes it easily reproducible. This means that you do not need to have anything special installed on your machine (neither node, nor yarn), but the necessary engines will be handled automatically and will be isolated only in this project. All you need to do is:
- Make sure direnv is installed on your machine. It is usually shipped with most distributions, if not in your case please follow these instructions for installation https://direnv.net/docs/installation.html and setup for your shell https://direnv.net/docs/hook.html .
- Run
direnv allowthe first time you enter the project.
(Git Bash or an equivalent shell that supports bash is required).
- Follow the instructions contained in this gist from point 1, to 7. When asked to download the direnv release keep in mind that the version tested and working with our project is the
v2.19.2. - Follow the installation guide from this repository (if you are curious to know the reason for these additional steps, you can read here).
- Run
direnv allowthe first time you enter the project.
Once you've confirmed you have direnv and you've setup your environment after doing direnv allow, you can verify that node and yarn are isolated for your environment by typing in the shell which node, node -v, which yarn and yarn -v.
You should receive paths inside the project and respectively the version of node 18.15.0 and yarn 3.5.0.
To build a redistributable, production mode package:
-
Install Yarn with
sudo npm install --global yarn -
Setup npm package with
yarn. -
Install Wails with
go install github.com/wailsapp/wails/v2/cmd/wails@latest. -
Install
wgetandjqglobally on your machine, using the right procedure for your operating system.E.g. on macOS, you could use
brew install wget jq.
On a Debian based machine you could useapt-get install wget jq -y. -
cd standalone-apps/app-lab-desktop/internal/board/ -
Download the tools to bundle in the wails app by running:
./download_resources.sh. -
Run
wails buildto make the final build.
To correctly build the app on Linux, the webkit library is required. At the time of writing, on Ubuntu 24.04 libwebkit2gtk-4.1-dev package is available, and the corresponding wails app should be built with the command wails build -tags webkit2_41. You may adjust these values as needed for your OS version.
To run in live development mode, run yarn start-app-lab-desktop from the root of the project. This will run a Vite development server that will provide very fast hot reload of your frontend changes. If you want to develop in a browser
and have access to your Go methods, there is also a dev server that runs on http://localhost:34115. Connect
to this in your browser, and you can call your Go code from devtools.
Some users have reported issues selecting the Arduino Q board in App Lab on Linux. A solution can be found in this post on the Arduino forum
