This is documentation for Stream Chat Flutter SDK v5, which is nolonger actively maintained. For up-to-date documentation, see the latest version (v8).

Setup

Understanding Setup For stream_chat_flutter

Add pub.dev dependency

First, you need to add the stream_chat_flutter dependency to your pubspec.yaml.

You can either run this command:

flutter pub add stream_chat_flutter

OR

Add this line in the dependencies section of your pubspec.yaml after substituting the latest version:

dependencies:
  stream_chat_flutter: ^latest_version

You can find the package details on pub.dev.

Details On Platform Support

As of v5, thestream_chat_flutter package (UI) added support for web, macOS, Windows, and Linux - on top of the original support for Android and iOS. It has, however, been possible to target desktop and web since Flutter added support for these platforms using the stream_chat_flutter_core (builder) and stream_chat (low-level client) packages - this remains unchanged.

Please note that Flutter Web may have additional constraints due to not supporting all plugins that Stream Chat relies on. The respective plugin creators will address this over time.

Setup

This section provides setup instructions for the respective platforms.

Android

The package uses photo_manager to access the device’s photo library. Follow this wiki to fulfill the Android requirements.

iOS

The library uses flutter file picker plugin to pick files from the os. Follow this wiki to fulfill iOS requirements.

Stream Chat also uses the video_player package to play videos. Follow this guide to fulfill the requirements.

Stream Chat uses the image_picker plugin. Follow these instructions to check the requirements.

Web

For the web, edit your index.html and add the following in the <body> tag to allow the SDK to override the right-click behavior:

<body oncontextmenu="return false;"></body>

macOS

For macOS Stream Chat uses the file_selector package. Follow these instructions to check the requirements.

You also need to add the following entitlements to Release.entitlement and DebugProfile.entitlement:

<key>com.apple.security.network.client</key>
<true/>
<key>com.apple.security.files.user-selected.read-write</key>
<true/>

Which grants:

  • Internet permission
  • File access permission
© Getstream.io, Inc. All Rights Reserved.