The official iOS SDK for Stream Chat
The StreamChatUI SDK is the official iOS SDK for Stream Chat, a service for building chat and messaging applications.
- Uses
UIKit
patterns and paradigms: The API follows the design of native system SKDs. It makes integration with your existing code easy and familiar. - First-class support for
SwiftUI
andCombine
: Built-it wrappers make using the SDK with the latest Apple UI framework a seamless experience. (coming 4/2021) - Offline support: Browse channels and send messages while offline.
- Familiar behavior: The UI elements are good platform citizens and behave like native elements; they respect
tintColor
,layoutMargins
, light/dark mode, dynamic font sizes, etc. - Swift native API: Uses Swift's powerful language features to make the SDK usage easy and type-safe.
- Fully open source implementation: You have access to the comple source code of the SDK here on GitHub.
- Supports iOS 11+, Swift 5.2: We proudly support older versions of iOS, so your app can stay available to almost everyone.
- iOS/Swift Chat Tutorial: Learn how to use the SDK by following our simple tutorial.
- Register to get an API key for Stream Chat.
- Installation: Learn more about how to install the SDK using CocoaPods or SPM.
- Cheat Sheet: Learn how to use the SDK by real world examples.
- Demo app: This repo includes a fully functional demo app with example usage of the SDK.
-
StreamChat SDK (low-level): An SDK to use if you want to build fully-custom UI.
StreamChatUI
usesStreamChat
for communicating with Stream chat backend. -
Information about the 2.x version can be found at v2.x README.
Stream is free for most side and hobby projects. To qualify your project/company needs to have < 5 team members and < $10k in monthly revenue. For complete pricing details visit our Chat Pricing Page
-
Progressive disclosure: The SDK can be used easily with very minimal knowledge of it. As you become more familiar with it, you can dig deeper and start customizing it on all levels.
-
Highly customizable: Every element is designed to be easily customizable. You can modify the brand color by setting
tintColor
, apply appearance changes using custom UI rules, or subclass existing elements and inject them everywhere in the system, no matter how deep is the logic heirarchy. -
open
by default: Everything isopen
unless there's a strong reason for it to not be. This means you can easily modify almost every behavior of the SDK such that it fits your needs. -
Good platform citizen: The UI elements behave like good platform citizens. They use existing iOS patterns; their beahavior is predictable and matches system UI components; they respect
tintColor
,layourMargins
, dynamic font sizes, and other system-defined UI constants.
Please check our wiki page for migration.
- Open UI components for subclassing and customization (3/2021, available in
🅱️ 3.2.0-beta
) - Pinned messages (released in
3.1.4
) - Multi-tenancy, teams (released in
3.1.4
) - Local notification support (4/2021)
- SwiftUI wrappers for UI components (4/2021)
- Better photo gallery experience (4/2021)
- Silent messages (4/2021)
- Expired tokens (4/2021)
- Channel invites (4/2021)
- Paginating reactions (4/2021)
- Message search (5/2021)
- RxSwift wrappers (tbd)
Features | Preview |
---|---|
A list of message in a channel | |
Photo preview | |
Message reactions | |
Message grouping based on the send time | |
Link preview | |
Inline replies | |
Message threads | |
GIPHY support | |
Features | Preview |
---|---|
Support for multiline text, expands and shrinks as needed | |
Image and file attachments | |
Replies to messages | |
Tagging of users | |
Chat commands like mute, ban, giphy | |
Features | Preview |
---|---|
Easily search commands by writing / symbol or tap bolt icon | |
GIPHY support out of box | |
Supports mute, unmute, ban, unban commands | |
WIP support of custom commands | |
Features | Preview |
---|---|
User mentions preview | |
Easily search for concrete user | |
Mention as many users as you want | |