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

TutorialLanguageShapeScopeWhat it builds
Single-machine dashboardTypeScript (browser)Web UIOne machineCamera 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 dashboardTypeScript (browser)Web UIOrganization fleetLists 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 widgetsFlutter (iOS, Android, desktop)Mobile/desktop UIOne machineCamera, sensor, and motor control using the prebuilt Flutter widgets (ViamCameraStreamView, ViamSensorWidget, ViamMotorWidget). Introduces the widget-based approach for Flutter apps.
Python monitoring servicePythonHeadless serviceOne machineNon-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.