App tutorials
Each tutorial in this section builds one small but complete Viam app end-to-end, from empty project directory to a program you can run against your own machine. The tutorials assume your project is already scaffolded, see App scaffolding for the prerequisite setup.
Pick a tutorial
| Tutorial | Language | Shape | Scope | What it builds |
|---|---|---|---|---|
| Single-machine dashboard | TypeScript (browser) | Web UI | One machine | Camera feed, live sensor reading, motor start/stop button, connection status. Introduces the core client pattern: connect, fetch resources by name, call component APIs. |
| Multi-machine fleet dashboard | TypeScript (browser) | Web UI | Organization fleet | Lists every machine in your org and shows aggregated sensor readings from each. Introduces cloud-scoped API keys and MQL aggregation over captured data. |
| Flutter app with widgets | Flutter (iOS, Android, desktop) | Mobile/desktop UI | One machine | Camera, sensor, and motor control using the prebuilt Flutter widgets (ViamCameraStreamView, ViamSensorWidget, ViamMotorWidget). Introduces the widget-based approach for Flutter apps. |
| Python monitoring service | Python | Headless service | One machine | Non-UI process that polls a sensor on a schedule and drives a motor based on the reading. Introduces the headless-service pattern and clean shutdown. |
Before you start
Every tutorial assumes you have a scaffolded project for the target language and a reachable machine. If you haven’t set up a project yet, work through App scaffolding first, it covers project creation, SDK installation, credentials, and a connection verification step that every tutorial builds on.
Was this page helpful?
Glad to hear it! If you have any other feedback please let us know:
We're sorry about that. To help us improve, please tell us what we can do better:
Thank you!