You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is the specification for the `Arduino App` (from now on called App) format to be used with `arduino-app-cli` and `Arduino App Lab`.
3
4
4
5
# Arduino App Folder structure
6
+
5
7
An App is a self-contained folder that includes the following components:
6
-
-`app.yaml` (mandatory) the file descriptor of the app in YAML format.
7
-
-`sketch` (optional) the folder containing an Arduino [Sketch](https://arduino.github.io/arduino-cli/1.3/sketch-specification/)).
8
-
-`python` (optional) the folder containing the Python code.
8
+
9
+
-`app.yaml` (mandatory) the file descriptor of the app in YAML format.
10
+
-`sketch` (optional) the folder containing an Arduino [Sketch](https://arduino.github.io/arduino-cli/1.3/sketch-specification/)).
11
+
-`python` (optional) the folder containing the Python code.
9
12
10
13
At least one on `sketch` or `python` folder must be present.
11
14
The App must be self-contained (it does not contain references to external files) because this means it can be exported, shared, or zipped easily.
12
15
13
16
The user-defined apps are saved into `/home/arduino/ArduinoApps` folder.
14
17
The builtin-apps are stored into `home/arduino/.local/share/arduino-app-cli/examples` folder.
15
18
16
-
17
19
Example of a `my-app` folder structure
20
+
18
21
```
19
22
my-app/
20
23
README.md
@@ -27,25 +30,28 @@ my-app/
27
30
```
28
31
29
32
## `README.md` file
33
+
30
34
An (optional) readme file in markdown.
31
35
The link to local resources must be in the same folder of the app. For example, a png inside the folder `myapp/docs/my-banner.png` can be referenced using  syntax.
32
36
33
37
### `app.yaml` file descriptor
34
-
The `app.yaml` (or `app.yml`) is a YAML file that describes an App.
38
+
39
+
The `app.yaml` (or `app.yml`) is a YAML file that describes an App.
35
40
36
41
-`name`: (optional) a short name of the app.
37
42
-`description`: (optional) a brief description of the app.
38
-
-`icon`: (optional) the emoji of the app
39
-
-`ports`: (optional) a list of ports to be exposed externally. If not given a random port is opened (if necessary).
43
+
-`icon`: (optional) the emoji of the app
44
+
-`ports`: (optional) a list of ports to be exposed externally. If not given a random port is opened (if necessary).
40
45
-`bricks` (optional) a list of bricks used by the app with its variable definitions.
41
46
42
47
Example:
48
+
43
49
```yaml
44
50
name: My Arduino App
45
51
description: An example app showcasing what you can do
46
52
icon: 🍓
47
53
ports:
48
-
- 7000
54
+
- 7000
49
55
50
56
bricks:
51
57
- arduino/dbstorage:
@@ -58,22 +64,25 @@ bricks:
58
64
model: yolo
59
65
```
60
66
61
-
62
67
### `sketch` sub folder
63
-
The content of the `sketch` subfolder contains the Ardiuno skecth.
68
+
69
+
The content of the `sketch` subfolder contains the Ardiuno skecth.
64
70
It must omply with the [Sketch specification](https://arduino.github.io/arduino-cli/1.3/sketch-specification/).
65
71
66
72
If present it must contain the followign files:
67
-
- `sketch.ino`
68
-
- `sketch.yaml`that is compliant to the [Sketch project file](https://arduino.github.io/arduino-cli/1.3/sketch-project-file/)
73
+
74
+
- `sketch.ino`
75
+
- `sketch.yaml`that is compliant to the [Sketch project file](https://arduino.github.io/arduino-cli/1.3/sketch-project-file/)
69
76
70
77
### `python` sub folder
78
+
71
79
The content of the `python` contains the python code.
72
80
73
81
If present, it must contain the `main.py` with the python code of the main.
74
82
Optionally, a `requirements.txt` with additional python package dependencies to be installed.
75
83
76
84
### Other
85
+
77
86
Other sub-folders or files can be added to the app folder.
78
87
The reserved folder names are `sketch` and `python`.
79
88
The reserved file names are `app.yaml` and `sketch.yaml`.
0 commit comments