Stream Chat 的官方 iOS/macOS SDK
stream-chat-swift 是 Stream Chat(https://getstream.io/chat/)的官方 iOS SDK,Stream Chat 是一个用于构建聊天和消息应用的服务。此 SDK 还通过 Mac Catalyst 支持 macOS。
快速链接
- 注册 获取 Stream Chat API 密钥
- iOS/Swift 聊天教程
- 聊天 UI 工具包
Swift/iOS 聊天教程
从 iOS Swift 聊天教程 开始是最佳选择。它教授您如何使用此 SDK,并展示了如何进行常见更改。
示例应用
此仓库包含一个带有设置说明的完整功能示例应用。它位于 Example 文件夹中。
文档
您通常会从使用UI组件开始,并根据需要使用Swift Chat API来实现自己的组件。
需求
- iOS 11+/macOS 10.15+
- Xcode 11.2+
- Swift 5.2
- CocoaPods 1.7+
- Carthage 0.33.0+
Mac Catalyst
我们的框架与Mac Catalyst兼容,这意味着您可以在iOS和macOS上创建一个通用的聊天应用程序。更多信息请查看这里。
安装
Stream Chat SDK包括三个框架:StreamChat
、StreamChatCore
和StreamChatClient
StreamChatClient
- 用于连接并与StreamChat后端通信的底层库。StreamChatCore
— 基于StreamChatClient
,它包括模型、展示者和通知管理器。此外,它还支持RxSwift进行响应式编程。StreamChat
— 基于Core
,是一个完整的SDK库,包含所有UI组件。主题化和深度定制完全支持。
CocoaPods
要使用CocoaPods将StreamChat集成到您的Xcode项目中,请修改您的Podfile
pod 'StreamChat', '~> 2.0'
然后运行pod install
。
如果您只想使用StreamChatCore
或StreamChatClient
,请在您的Podfile
中添加此项
pod 'StreamChatCore', '~> 2.0'
# or
pod 'StreamChatClient', '~> 2.0'
在您希望使用Stream Chat的任何文件中,不要忘记导入框架
import StreamChat
或者如果您正在处理底层客户端或Core
import StreamChatCore
// or
import StreamChatClient
Carthage
要将 Stream Chat 集成到您的 Xcode 项目中,使用 Carthage,请在您的 Cartfile
中指定它。
github "GetStream/stream-chat-swift" ~> 2.0
然后运行:carthage update --platform iOS --new-resolver
。它会构建以下框架:StreamChatClient.framework
、StreamChatCore.framework
和 StreamChat.framework
,并将其放入 <Project Path>/Carthage/Build/iOS/
中。然后您可以将它们添加到您的项目中,并将它们链接到您的应用程序目标。按照以下步骤操作:
-
打开您的 Xcode 项目。
-
在导航器中选择项目。
-
选择您的应用程序目标。
-
打开
General
面板。 -
在 Finder 中打开
<Project Path>/Carthage/Build/iOS/
,找到StreamChatClient.framework
,将其拖放到 Xcode 中Frameworks, Libraries, and Embedded Content
区域。如果需要 UI 组件,以相同的方式处理StreamChatCore.framework
和StreamChat.framework
。 -
添加库后,在 "Embed" 部分选择 "Do Not Embed" 选项。(在添加库后,在库名称右侧)
-
在 Xcode 中打开
Build Phases
面板。 -
单击加号
+
并选择New Run Script Phase
。 -
设置内容为:
/usr/local/bin/carthage copy-frameworks
。 -
添加到
Input Files
。-
$(SRCROOT)/Carthage/Build/iOS/StreamChatClient.framework
-
$(SRCROOT)/Carthage/Build/iOS/Starscream.framework
-
如果您需要核心库
$(SRCROOT)/Carthage/Build/iOS/StreamChatCore.framework
$(SRCROOT)/Carthage/Build/iOS/RxSwift.framework
$(SRCROOT)/Carthage/Build/iOS/RxCocoa.framework
$(SRCROOT)/Carthage/Build/iOS/RxRelay.framework
-
如果您需要 UI 组件
$(SRCROOT)/Carthage/Build/iOS/StreamChat.framework
$(SRCROOT)/Carthage/Build/iOS/Nuke.framework
$(SRCROOT)/Carthage/Build/iOS/SnapKit.framework
$(SRCROOT)/Carthage/Build/iOS/SwiftyGif.framework
$(SRCROOT)/Carthage/Build/iOS/RxGesture.framework
-
-
添加到
Output Files
。-
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/StreamChatClient.framework
-
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Starscream.framework
-
如果您需要核心库
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/StreamChatCore.framework
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/RxSwift.framework
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/RxCocoa.framework
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/RxRelay.framework
-
如果您需要 UI 组件
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/StreamChat.framework
()$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Nuke.framework
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/SnapKit.framework
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/SwiftyGif.framework
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/RxGesture.framework
-
现在您可以构建应用程序并使用 StreamChat
。
Swift 包管理器
您可以直接在 Xcode 11+ 中使用仓库 URL 添加依赖项,或在您的 Package.swift
文件中,将其添加到 dependencies
。
.package(url: "https://github.com/GetStream/stream-chat-swift.git", from: "2.3.0"),
支持的功能
- 群聊
- 频道列表
- 点赞
- 丰富链接预览(例如open graph)
- 附件(图片、视频和文件)
- 命令(例如
/giphy
) - 编辑信息
- 输入事件
- 阅读事件
- 线程
- 通知
- 在内部浏览器中打开链接
- 图片库
- 支持GIF
- 浅色/深色主题
- 样式定制
- 用户界面定制