This is documentation for the release candidate Stream Chat React Native SDK v6. For the latest stable version, see the latest version (v5).

Overview

Built on top of the Stream Chat API, the Stream Chat React Native SDK components include everything you need to build feature-rich and high-functioning chat user experiences out of the box.

We have component libraries available for both RN CLI and Expo. Each approach includes an extensive set of fast performing and customizable UI components and support which allow you to get started quickly with little to no plumbing required. The libraries support:

  • Rich media messages
  • Reactions
  • Threads and quoted replies
  • Text input commands (ex: Giphy, emojis and @mentions)
  • Image and file uploads
  • Video playback
  • Read state and typing indicators.
  • Channel and message lists
  • Push (APN or Firebase)
  • Offline storage
  • and a lot more.

Additionally, starting with version 6.0.0 our SDK supports the React Native new architecture as well. You can read more about it here.

Before getting started with our docs, we recommend going through our tutorials for our React Native SDK.

Where to get started?

If you are new to our SDK, it is best to go through our React Native SDK tutorial.

Architecture

Stream Chat React Native SDK primarily uses the Stream Chat client to connect to and communicate with the Stream API.

The full JavaScript client docs should be referenced for detailed information on directly using the client.

Do not install the stream-chat dependency externally. This may lead to problems while using our SDK. Our SDK has it as a development dependency, so you need not install it externally.

The Stream Chat React Native SDK is segregated into two separate packages:

  • stream-chat-react-native for React Native CLI applications.
  • stream-chat-expo for Expo CLI applications.

We recommend using the corresponding package for the respective CLI that the application uses.

Our SDK components are highly customizable for both the interfaces. Unless your UI is completely different from the common industry standard, you should be able to customize the built-in components to match your needs.

The UI SDKs provide both ready-made components that you can directly integrate (and customize) in your apps, or you can build your own, by reacting to the state we expose and re-using our components as building blocks, if needed.

Upgrading and Versioning Strategy

The Stream Chat React Native SDK adheres to the semantic versioning rules.

  • Bug fixes and behavior improvements cause patch version bump.
  • New features are shipped with an increased minor version.
  • Incompatible changes in the API will cause a major version increase.

Occasionally, the SDK can include visual changes (whitespace, color changes, sizing, etc) in minor versions, as we are continuously improving the default look of our UI components. Bumping the major version for such changes would not be practical.

Platform Compatibilities

We only support Android and iOS as platforms for the React Native SDK. We do not support Web currently, but this is in our backlog, and we plan to take this up in the future. As an alternative, you can use Stream’s React SDK for Web.

Sample Apps

We have created some of the sample apps to help understand the usage of the Stream Chat React Native SDK. They can be found in the examples directory of the main repository. Apart from the samples we use for internal development, we also provide some small clone projects like a Slack clone and an iMessage clone. You can check out the code in our repository and even run the apps yourself.

© Getstream.io, Inc. All Rights Reserved.