# Getting Started

Understanding The UI Package Of The Flutter SDK

### What function does `stream_chat_flutter` serve?

The UI SDK (`stream_chat_flutter`) contains official Flutter components for Stream Chat, a service for building chat applications.

While the Stream Chat service functions as the messaging backend and the LLC offers a straightforward integration for Flutter apps, our goal was to ensure the quick incorporation of Chat functionality into your application. To further simplify this process, we developed a dedicated UI package.

The UI package is built on top of the low-level client and the core package and allows you to build a
full fledged app with either the inbuilt components, modify existing components, or easily add widgets
of your own to match your app's style better.

### Add pub.dev dependency

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

You can either run this command:

```shell
flutter pub add stream_chat_flutter
```

OR

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

```yaml
dependencies:
  stream_chat_flutter: ^latest_version
```

You can find the package details on [pub.dev](https://pub.dev/packages/stream_chat_flutter).

### Details On Platform Support

As of the latest version, the`stream_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`](https://pub.dev/packages/photo_manager) to access the device's photo library. Follow [this wiki](https://pub.dev/packages/photo_manager#android-10-q-29) to fulfill the Android requirements.

#### iOS

The library uses [flutter file picker plugin](https://github.com/miguelpruivo/flutter_file_picker) to pick
files from the os. Follow [this wiki](https://github.com/miguelpruivo/flutter_file_picker/wiki/Setup#ios) to fulfill iOS requirements.

Stream Chat also uses the [`video_player`](https://pub.dev/packages/video_player) package to play videos. Follow [this guide](https://pub.dev/packages/video_player#installation) to fulfill the requirements.

Stream Chat uses the [`image_picker`](https://pub.dev/packages/image_picker) plugin.
Follow [these instructions](https://pub.dev/packages/image_picker#ios) 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:

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

#### macOS

For macOS Stream Chat uses the [`file_selector`](https://pub.dev/packages/file_selector#macos) package. Follow [these instructions](https://pub.dev/packages/file_selector#macos) to check the requirements.

You also need to add the following [entitlements](https://docs.flutter.dev/development/platform-integration/desktop#entitlements-and-the-app-sandbox) to `Release.entitlement` and `DebugProfile.entitlement`:

```xml
<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


---

This page was last updated at 2026-04-23T18:43:03.950Z.

For the most recent version of this documentation, visit [https://getstream.io/chat/docs/sdk/flutter/v10/stream_chat_flutter/introduction/](https://getstream.io/chat/docs/sdk/flutter/v10/stream_chat_flutter/introduction/).