Stream Chat 的官方 iOS/macOS SDK
stream-chat-swift 是 Stream Chat 的官方 iOS SDK,Stream Chat 是构建聊天和消息应用的服务。此 SDK 也通过 Mac Catalyst 支持 macOS。
快速链接
- 注册 获取 Stream Chat 的 API 密钥
- iOS/Swift 聊天教程
- 聊天 UI 工具包
Swift/iOS 聊天教程
开始的最佳地点是 iOS Swift 聊天教程。它教您如何使用此 SDK,并展示如何进行常见修改。
示例应用
此代码库包括一个功能齐全的示例应用及其设置说明。可在 示例 文件夹下找到。
文档
您通常希望首先使用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
,存放在 <您的项目路径>/Carthage/Build/iOS/
,您可以从那里将其添加到您的项目中,并将其链接到您的应用程序目标。按照以下步骤操作:
-
打开您的 Xcode 项目。
-
在导航器中选择项目。
-
选择您的应用程序目标。
-
打开
General
面板。 -
在 Finder 中打开
<您的项目路径>/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
-
如果需要 Core 库
$(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
-
如果需要 Core 库
$(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 Package Manager
您可以直接使用仓库 URL 或在 Xcode 11+ 中,在您的 Package.swift
文件中将其添加到 dependencies
。
.package(url: "https://github.com/GetStream/stream-chat-swift.git", from: "2.3.0"),
支持的功能
- 群聊
- 频道列表
- 反应
- 丰富链接预览(例如open graph)
- 附件(图像、视频和文件)
- 命令(例如
/giphy
) - 编辑消息
- 输入事件
- 阅读事件
- 线程
- 通知
- 在内部浏览器中打开链接
- 图片库
- GIF支持
- 浅色/深色主题
- 样式定制
- UI自定义