Welcome to the Stream Flutter SDK - a comprehensive toolkit designed to help developers quickly implement real-time video calling, audio rooms, and live streaming directly into their Flutter app, all in Dart.
Our Flutter SDK comes with out-of-the-box widgets such as calling indicators, participant screens, and more. These components make it simple and intuitive to add rich experiences with just a few lines of code. Additionally, advanced features such as CallKit integration, push notifications, and background track handling are supported, all with minimal overhead.
If you are new to the Stream Video SDK, we recommend starting with the following three tutorials:
After the tutorials the documentation explains how to use the SDK. Our Flutter SDK is divided into four parts to help you quickly and effectively build video and voice applications with Stream:
Stream Video Flutter
Stream Video Flutter includes all of our modular, pre-made widgets, which developers can use to quickly build with Stream. In addition to the UI components, this package also includes all of our Flutter-specific handling and logic, such as background handling, push notification support, and more.
These screens and widgets include:
- Call Controls
- Call Screen
- Lobby Screen
- Participant Rendering and Layout
Stream Video is our base package, which acts as a low-level wrapper around the Stream Video API. It allows you to authenticate users, listen to events, and perform low-level operations such as creating a call, joining, inviting, sorting, and permission handling.
The entry point for interacting directly with the Stream API is the
StreamVideo class. This class is a singleton that can be accessed throughout your application via the static
StreamVideo.instance.makeCall(type: "default", id: "YOUR-CALL-ID");
We will look at these concepts in more detail in the following sections.
While developers are free to use
stream_video in their applications directly, we recommend using our
stream_video_flutter package instead since it contains many Flutter-specific configurations and behavior handling not included in the base package.
Push notifications are implemented and handled by
stream_video_push_notification. This package configures the integration between Flutter and the underlying platform (iOS and Android), allowing for seamless integration and handling of push and call notifications to the device. Our push service is backed by Firebase Cloud Messaging.
Please refer to our push notifications section for a more detailed guide.