viam_sdk 0.0.27 viam_sdk: ^0.0.27 copied to clipboard
Viam Robotics Flutter SDK. Connect to your Viam robots using WebRTC or gRPC, and control your robots remotely.
Viam Flutter SDK #
Viam is a software platform for robots and smart machines. The Viam Flutter SDK allows you to build custom mobile applications to interact with your machines, from controlling individual hardware components to monitoring many machines.
Website: viam.com Documentation: docs.viam.com
(In)stability Notice #
Warning This is a beta release of the Viam Flutter SDK. No guarantees are made to the stability of the API. All changes will be enumerated in the release notes.
Getting started #
Make sure your project meets the minimum requirements:
- Minimum iOS target: 13.0
- Minimum Android SDK: 23
- Kotlin version: 1.8.20
Installation #
flutter pub add viam_sdk
Upgrading #
flutter pub upgrade viam_sdk
Note that breaking changes may occur in patch version changes because the Viam Flutter SDK is still in beta.
We recommend locking your project to a specific version by adding a specific version number (for example viam_sdk: 0.0.12
) to your pubspec.yaml
file.
Update Info.plist #
If you are building for Apple platforms, you may have to update your app's Info.plist
. NSLocalNetworkUsageDescription
is needed to establish stable WebRTC connections, and NSBonjourServices
is required to connect to local devices via mDNS.
<key>NSLocalNetworkUsageDescription</key>
<string>Viam requires access to your devices local network to connect to your devices.</string>
<key>NSBonjourServices</key>
<array>
<string>_rpc._tcp</string>
</array>
Usage #
You can use the Viam SDK to connect to an existing machine (to create a machine, see Build a simple smart machine or if you don't have your own hardware, Try Viam).
import 'package:viam_sdk/viam_sdk.dart';
// Connect to an existing machine (robot)
// *NOTE* Get '<API KEY ID>' and '<API KEY>' from
// your machine's "CONNECT" tab on app.viam.com
final options = RobotClientOptions.withAPIKey('<API KEY ID>', '<API KEY>');
final robot = await RobotClient.atAddress('<LOCATION>', options);
// Print the available resources
print(robot.resourceNames);
// Access a component
final movementSensor = MovementSensor.fromRobot(robot, 'my_sensor');
print(await movementSensor.readings())
Example apps #
View sample apps in the /example
directory.
This tutorial walks through a version of one of these examples.
GitHub #
You can view the code for the Viam Flutter SDK on GitHub.
License #
Copyright 2021-2024 Viam Inc.
Apache 2.0 - See LICENSE file