PurpleCallio documentation
PurpleCallio Flutter SDK Preview
The Flutter package contains a native Dart call engine for PurpleCallio's participant-token, REST, Socket.IO, and WebRTC protocol. It is not yet released for production: Android and iOS device calls and consumer installation still need validation.
Release status
The package source, fake-backed unit tests, Flutter example, and gated real-server signaling test are present. Flutter tooling and physical devices were unavailable for validation in this environment. Keep this SDK in Coming soon until package tests, example builds, consumer installation, and real-device calls pass.
Install for local development
The package is not published to pub.dev. In a local checkout, use the mobile/flutter package path. Do not treat the declared 0.1.0 manifest version as a published release.
Use participant tokens
Create calls from your trusted backend with the project API key, then pass each participant only their own token. PurpleCallioClient joins with that token; never embed an API key or server secret in a Flutter application.
Media and platform support
The engine implements audio/video, microphone and camera controls, camera switching, participant events, reconnection, cleanup, and rendering helpers. Screen sharing is implemented for Android only; iOS sharing is unsupported because the package has no ReplayKit Broadcast Upload Extension.
Permissions and lifecycle
Add camera and microphone permissions to the host application. The SDK surfaces permission and media errors; the application owns its permission explanation and UI. Use PurpleCallioLifecycle to bind the meeting to Flutter app lifecycle changes.
Validation required before release
Run Flutter analyze and tests, build and install the example in a clean consumer app, then test real audio/video, remote rendering, mute, camera toggle/switch, reconnect, leave/rejoin, Android screen capture, and iOS limitations on physical devices against staging.
Flutter token-only call example
import 'package:purplecallio_flutter/purplecallio_flutter.dart';
final client = PurpleCallioClient();
final participantToken = await myBackend.fetchParticipantToken();
final meeting = await client.joinMeeting(
participantToken,
options: const PurpleCallioJoinOptions(
microphoneEnabled: true,
cameraEnabled: true,
),
);
await meeting.toggleMicrophone(); // flips the current state
await meeting.toggleCamera();
await meeting.leave();
await client.dispose();Still having trouble?
If you're having an issue with this integration, our support team can help.
Contact SupportRelated documentation
Build with PurpleCallio
Explore the documentation to choose hosted UI, React components, or the headless SDK for your integration.