---
id: setup
sidebar_position: 2
title: 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:

```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 v5, 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
