Dit artikel beschrijft de repository met voorbeeldapplicaties en tools voor GeaStack. De collectie bevat voornamelijk TSX-apps die compatibel zijn met web, ESP32 en GeaOS.
Belangrijke onderdelen zijn:
- Snelstart: Instructies voor het controleren van individuele voorbeelden, het gebruik van de web-loop via de simulator en het flashen van boards via de Gea CLI.
- App-manifest: Uitleg over de vereiste
gea-veld in de package.json voor target-compatibiliteit en runtime-configuratie.
- Documentatie & Onderhoud: Richtlijnen voor het toevoegen van nieuwe voorbeelden, waarbij de nadruk ligt op focus, het gebruik van framework API's en het bijhouden van de catalogus.
- Licentie: De meeste code valt onder de MIT-licentie, terwijl specifieke embedded board-ondersteuning onder GPL-3.0 valt.
GeaStack Voorbeelden
Wat is hier te vinden
| Pad | Doel |
apps/* | Gea-apps. De meeste zijn TSX-apps gericht op web, ESP32 en/of GeaOS. |
apps/*/package.json | App-manifest, target-compatibiliteit, scripts en launcher-metadata. |
tools/dialer-browser | Kleine browser-side helpertool voor dialer-workflows. |
package.json | Workspace-marker voor de collectie voorbeelden. |
docs | Catalogus en richtlijnen voor bijdragen. |
Snelstart
Individuele voorbeelden controleren
Voer controles uit voor een individueel voorbeeld:
cd apps/watch
npm install
npm run check
npm run build
Sommige voorbeelden hebben tests, voornamelijk voor een layout of een apparaatconfiguratie. Voer deze uit met npm test in de map van de betreffende app.
De web-loop
De web-loop wordt aangestuurd vanuit de simulator, wat een aparte repository is: geastack/simulator. De scripts hiervan lezen apps uit een app-projectroot, die zij verkrijgen via GEAAPPSROOT (dit kan deze repository zijn, of een eigen versie). Er is geen standaardwaarde, dus stel deze in of gebruik --app-dir. De twee checkouts hoeven niet naast elkaar te staan.
cd /path/to/simulator
GEA_APPS_ROOT=/path/to/examples ./targets/web/dev-web.mjs watch # development loop
GEA_APPS_ROOT=/path/to/examples ./targets/web/build-web.sh watch # build voor web
./targets/web/dev-web.mjs --app-dir /path/to/examples/apps/watch # of specificeer één app
Een board flashen
Flash een compatibel board via de Gea CLI:
npx gea flash watch --board <alias>
npx gea flash watch --board <alias> --monitor
Documentatie
docs/EXAMPLE-CATALOG.md: voorbeeldcategorieën, target-compatibiliteit en hoe manifesten worden gebruikt.
docs/DEVELOPMENT.md: hoe een voorbeeld-app te voegen, testen en onderhouden.
Basisprincipes van het App-manifest
Elke buildbare app moet een package.json hebben met een gea-veld:
{
"gea": {
"id": "watch",
"name": "Watch",
"entry": "index.tsx",
"runtime": "gea",
"targets": {
"web": true,
"esp32": true,
"geaos": true
}
}
}
Het manifest wordt gebruikt door de simulator, embedded board-scripts, GeaOS, Apple targets en de IDE-extensie. Houd dit up-to-date.
Onderhoudsnotities
- Houd voorbeelden klein en gefocust. Een goed voorbeeld bewijst één specifiek gedrag duidelijk.
- Geef de voorkeur aan gedeelde framework API's boven target-specifieke hacks binnen voorbeelden.
- Voeg tests toe voor voorbeelden met niet-triviale logica, fysica of parsing.
- Werk de catalogus-documentatie bij wanneer een app wordt toegevoegd, hernoemd, verborgen of wanneer de target-compatibiliteit wijzigt.
Licentie
MIT (zie LICENSE). Je kunt closed-source producten leveren die hierop zijn gebouwd. De enige GeaStack-code onder een andere licentie is de embedded board-ondersteuning (targets en @geastack/chips, GPL-3.0-only): voor het leveren van closed-source firmware via deze onderdelen is een commerciële licentie vereist.
Neem contact op via contact@geastack.com voor commerciële voorwaarden, ondersteuning en hosted builds.
GeaStack Voorbeelden
Wat is hier te vinden
| Pad | Doel |
apps/* | Gea-apps. De meeste zijn TSX-apps gericht op web, ESP32 en/of GeaOS. |
apps/*/package.json | App-manifest, target-compatibiliteit, scripts en launcher-metadata. |
tools/dialer-browser | Kleine browser-side helpertool voor dialer-workflows. |
package.json | Workspace-marker voor de collectie voorbeelden. |
docs | Catalogus en richtlijnen voor bijdragen. |
Snelstart
Individuele voorbeelden controleren
Voer controles uit voor een individueel voorbeeld:
cd apps/watch
npm install
npm run check
npm run build
Sommige voorbeelden hebben tests, voornamelijk voor een layout of een apparaatconfiguratie. Voer deze uit met npm test in de map van de betreffende app.
De web-loop
De web-loop wordt aangestuurd vanuit de simulator, wat een aparte repository is: geastack/simulator. De scripts hiervan lezen apps uit een app-projectroot, die zij verkrijgen via GEAAPPSROOT (dit kan deze repository zijn, of een eigen versie). Er is geen standaardwaarde, dus stel deze in of gebruik --app-dir. De twee checkouts hoeven niet naast elkaar te staan.
cd /path/to/simulator
GEA_APPS_ROOT=/path/to/examples ./targets/web/dev-web.mjs watch # development loop
GEA_APPS_ROOT=/path/to/examples ./targets/web/build-web.sh watch # build voor web
./targets/web/dev-web.mjs --app-dir /path/to/examples/apps/watch # of specificeer één app
Een board flashen
Flash een compatibel board via de Gea CLI:
npx gea flash watch --board <alias>
npx gea flash watch --board <alias> --monitor
Documentatie
docs/EXAMPLE-CATALOG.md: voorbeeldcategorieën, target-compatibiliteit en hoe manifesten worden gebruikt.
docs/DEVELOPMENT.md: hoe een voorbeeld-app te voegen, testen en onderhouden.
Basisprincipes van het App-manifest
Elke buildbare app moet een package.json hebben met een gea-veld:
{
"gea": {
"id": "watch",
"name": "Watch",
"entry": "index.tsx",
"runtime": "gea",
"targets": {
"web": true,
"esp32": true,
"geaos": true
}
}
}
Het manifest wordt gebruikt door de simulator, embedded board-scripts, GeaOS, Apple targets en de IDE-extensie. Houd dit up-to-date.
Onderhoudsnotities
- Houd voorbeelden klein en gefocust. Een goed voorbeeld bewijst één specifiek gedrag duidelijk.
- Geef de voorkeur aan gedeelde framework API's boven target-specifieke hacks binnen voorbeelden.
- Voeg tests toe voor voorbeelden met niet-triviale logica, fysica of parsing.
- Werk de catalogus-documentatie bij wanneer een app wordt toegevoegd, hernoemd, verborgen of wanneer de target-compatibiliteit wijzigt.
Licentie
MIT (zie LICENSE). Je kunt closed-source producten leveren die hierop zijn gebouwd. De enige GeaStack-code onder een andere licentie is de embedded board-ondersteuning (targets en @geastack/chips, GPL-3.0-only): voor het leveren van closed-source firmware via deze onderdelen is een commerciële licentie vereist.
Neem contact op via contact@geastack.com voor commerciële voorwaarden, ondersteuning en hosted builds.