Two things need to exist before you can record a session: the recording SDK inside your Flutter app, and a client app in the dashboard for its uploads to belong to.
Prerequisites#
-
Flutter new enough that its bundled Dart SDK satisfies
^3.12.0— Flutter 3.44.4 (which ships Dart 3.12.2) or newer.flutter pub add pictofails with a version-solving error rather than something cryptic if your toolchain is older than that. -
An organization and client app. Uploads go to picto's hosted backend,
https://api.picto.dev— there's no server URL to configure and nothing to deploy. See Organizations & Client Apps: you'll need at least one organization and client app created before your app can upload anything.
Add the SDK to your app#
flutter pub add picto
That adds picto to your pubspec.yaml
under dependencies, pinned to the current release, and runs flutter pub get
for you. To add it by hand instead, put it under dependencies and pin whichever version pub.dev lists as the latest:
dependencies:
picto: ^<latest> # https://pub.dev/packages/picto
There's no platform-specific setup to do afterwards — no Gradle, Podfile, or Info.plist changes, and nothing to register in your native entrypoints. Everything the SDK needs is set up from Dart, in your app's
main(); see Quick Start.
Installing the package also brings its command-line tools with it, which the rest of these docs use:
dart run picto:setup and dart run picto:init
to generate a picto.yaml, and dart run picto:upload_assets
to upload the images and fonts your replays need.
What you'll need from your backend#
Before writing any integration code, create a client app in the dashboard (see Organizations & Client Apps) and note down one value — you'll pass it into the SDK in Quick Start:
| Value | Where it comes from |
|---|---|
| API key | Shown once when you create a client app, and again any time you regenerate it — see API Keys |
That's it — no server URL, organization ID, client app ID, or account ID to look up. The SDK already knows where to upload to, and the API key alone determines which client app — and therefore which organization/account — every upload belongs to; see Organizations & Client Apps for why.
Next steps#
Continue to Quick Start to wire the SDK into your app's main()
and produce your first uploaded recording.