这是 Stream Chat 官方的 iOS SDK,Stream Chat 是一个用于构建聊天和网络应用的服务。这个库包括了一个低级 SDK 和一组可重用的 UI 组件。
低级客户端(LLC)
StreamChat SDK 是 Stream 聊天服务的低级客户端,不包含任何 UI 组件。当您需要构建完全自定义的 UI 时,建议使用该 SDK。对于大多数用例,我们推荐使用高度可定制的 UI SDK。
UIKit SDK
StreamChatUI SDK 是我们用于 UIKit 组件的 UI SDK。如果您需要支持 iOS 13 及以下版本,这是您正确的 UI SDK。
SwiftUI SDK
StreamChatSwiftUI SDK 是我们用于 SwiftUI 组件的 UI SDK。如果您的应用只需要支持 iOS 14 及以上版本,这是您正确的 UI SDK。此 SDK 可在另一个仓库中找到 stream-chat-swiftui。
iOS 16 和 Xcode 14 支持
自4.20.0版本发布以来,我们的SDK可以使用Xcode 14构建。目前,在iOS 16上没有已知的问题。如果您发现了一个问题,请创建一个票证。
主要功能
- 离线支持:在离线状态下浏览频道和发送消息。
- 熟悉的行为:UI元素是良好的平台公民,并且像原生元素一样表现;它们尊重
tintColor
、layoutMargins
、浅色/深色模式、动态字体大小等。 - Swift原生API:使用Swift的强大语言特性使SDK使用简单且类型安全。
- 使用
UIKit
模式和范式:API遵循原生系统SDK的设计。这使得与现有代码的集成既简单又熟悉。 SwiftUI
支持:我们开发了一款全新的SDK,帮助您在SwiftUI应用程序中获得更平滑的Stream Chat集成。- 对
Combine
的一流支持:StreamChat SDK(低级客户端)具有Combine包装器,使其在使用Combine
的应用程序中非常容易使用。 - 完全开源实现:您可以通过GitHub访问SDK的完整源代码。
- 支持iOS 11+:我们自豪地支持较旧的iOS版本,因此您的应用程序可以几乎对所有人可用。
快速链接
- iOS/Swift Chat教程:通过我们的简单教程学习如何使用SDK,该教程以UIKit为前提(或SwiftUI)。
- 注册:注册以获取Stream Chat的API密钥。
- 安装:了解如何使用 CocoaPods、SPM 或 Carthage 安装 SDK 的更多内容。
- 你想使用模块稳定版 XCFrameworks 吗? 查看
- 文档:提供详尽的文档,以帮助您完成集成。
- SwiftUI:如果您使用 SwiftUI 进行开发,请查看我们的 SwiftUI SDK。
- 演示应用:此仓库包含一个功能齐全的演示应用,演示了 SDK 的示例使用。
- 示例应用:此部分仓库包括功能齐全的样本应用,您可以将其用作参考。
面向制作者免费
Stream 对大多数侧项目和业余项目免费。如果您拥有五名以下的团队成员且月收入不超过 10,000 美元,您可以使用 Stream Chat 免费服务。
主要原则
-
渐进式披露: SDK 可轻松使用,即使对它的了解非常有限。随着您对它的熟悉,您可以深入了解并开始在所有级别上进行定制。
-
高度自定义: 每个元素都旨在易于自定义。您可以设置
tintColor
以修改品牌颜色,使用自定义 UI 规则应用外观更改,或子类化现有元素并在系统中的任何位置注入它们,无论逻辑层次结构有多深。 -
默认
open
: 除非有强烈理由不开放,否则一切都是open
。这意味着您可以轻松修改 SDK 几乎所有的行为,使其满足您的需求。 -
良好的平台公民: UI 元素的行为像良好的平台公民。它们使用现有的 iOS 模式;它们的行为可预测且与系统 UI 组件相匹配;它们尊重
tintColor
、layourMargins
、动态字体大小以及其他系统定义的 UI 常量。
依赖项
此SDK力求将外部依赖项数量保持在最低。从4.6.0版本开始,为提高开发者体验,依赖项被隐藏在库内部。(目前还不适用于StreamChatSwiftUI的依赖项)。
更多关于我们的依赖项信息请访问此处
使用Objective-C
如果您项目使用Objective-C,仍可集成我们的SDK。在这种情况下,任何自定义操作都需要通过在Swift中派生我们的组件来实现,然后直接在Objective-C代码中使用这些组件。
我们正在招聘
我们最近完成了一轮38亿美元的B轮融资,并保持积极增长。我们的API被超过十亿的最终用户使用,你将有机会在我们的全球最强工程师团队中为产品作出巨大贡献。查看我们当前的空缺职位并通过Stream的网站申请。
快速概述
频道列表
功能 | 预览 |
---|---|
符合查询条件的频道列表 | ![]() |
基于频道成员或自定义数据的频道名称和图片 | |
未读消息指示器 | |
最后一条消息的预览 | |
头像的在线指示器 | |
创建新频道并立即开始 | |
消息列表
功能 | 预览 |
---|---|
频道中的消息列表 | ![]() |
照片预览 | |
消息反应 | |
基于发送时间对消息进行分组 | |
链接预览 | |
内置回复 | |
消息线程 | |
支持 GIPHY | |
消息编辑器
功能 | 预览 |
---|---|
支持多行文本,根据需要扩展和收缩 | ![]() |
图像和文件附件 | |
对消息进行回复 | |
用户标记 | |
聊天命令,如静音、封禁、GIPHY | |
聊天命令
功能 | 预览 |
---|---|
通过输入“/”符号或点击螺栓图标轻松搜索命令 | ![]() |
开箱即用支持 GIPHY | |
支持静音、取消静音、封禁、解禁命令 | |
正在开发中的自定义命令支持 | |
用户标签建议
功能 | 预览 |
---|---|
用户提及预览 | ![]() |
轻松搜索具体用户 | |
提及任意多的用户 | |