Building on top of the the Stream Chat API, the Stream Chat iOS component library includes everything you need to build feature-rich and high-functioning chat user experiences out of the box. The library includes an extensive set of performant and customizable UI components which allow you to get started quickly with little to no plumbing required. The library supports:
- Rich media messages
- Threads and quoted replies
- Text input commands (ex: Giphy and @mentions)
- Image and file uploads
- Video playback
- Read state and typing indicators
- Channel and message lists
- Push (APN or Firebase)
- Offline storage
StreamChat Swift SDK consists of two separate frameworks:
StreamChatUIprovides a set of reusable and customizable UI components to add chat to your application.
StreamChatis the low-level client that provides the main chat functionality including offline storage and optimistic updates. You can use it directly in case you want to build your own UI layer for the chat.
We suggest using
StreamChatUI for most of our users. 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.
You can use this library to develop OSX application by using the
This SDK tries to keep the list of external dependencies to a minimum, these are the dependencies currently used:
- Nuke for loading images
- SwiftyGif for high performance GIF rendering
- StreamChat the low-level client to Stream Chat API
- Starscream to handle WebSocket connections
To get started integrating Stream Chat in your iOS app, install the
StreamChatUI dependency using one of the following dependency managers.
.xcodeproj, select the option "Add Package Dependency" in File > Swift Packages, and paste the URL: "https://github.com/getstream/stream-chat-swift".
After pressing next, Xcode will look for the repository and automatically select the latest version tagged. Press next and Xcode will download the dependency.
The repository contains 2 targets: StreamChat and StreamChatUI. If you'll use the UI components, select both. If you don't need the UI components, select just StreamChat.
After you press finish, it's done!
Because StreamChat SDKs have to be distributed with its resources, the minimal Swift version requirement for this installation method is 5.3. If you need to support older Swift version, please install it using CocoaPods.
In your project's Podfile, add:
pod 'StreamChatUI', '~> 4.0.0'. It should look similar to the snippet below.
target 'MyProject' do # Comment the next line if you don't want to use dynamic frameworks use_frameworks! # Pods for MyProject pod 'StreamChatUI', '~> 4.0.0'end
The StreamChatUI pod will automatically include the StreamChat dependency. If you want just the StreamChat dependency, without the UI components, add
pod 'StreamChat', '~> 4.0' to your Podfile instead. It should look similar to the snippet below.
target 'MyProject' do # Comment the next line if you don't want to use dynamic frameworks use_frameworks! # Pods for MyProject pod 'StreamChat', '~> 4.0.0'end
Now that we’ve modified our Podfile, let’s go ahead and install the project dependencies via the terminal with one simple command:
pod install --repo-update
The above command will generate the MyProject.xcworkspace file automatically.
With our workspace now containing our Pods project with dependencies, as well as our original project, let’s go ahead and move over to Xcode to complete the process.
Add entry to your
github "GetStream/stream-chat-swift" ~> 4.0.0
carthage update --use-xcframeworks --platform iOS
go into your project, in the General settings tab, in the Frameworks, Libraries, and Embedded Content section, drag and drop each XCFramework you use from the Carthage/Build folder on disk.
The StreamChat Swift 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.
You should either use a fixed version, or an optimitistic operator (a.k.a. squiggly arrow), with all three versions specified.
pod 'StreamChat', '~> 4.0.0'
To stay up-to-date with our updates and get a detailed breakdown of what's new, subscribe to the releases of getstream/stream-chat-swift by clicking the "watch" button. You can further tweak your watch preferences and subscribe only to the release events.