Stream Chat Android v6.13.0 版本发布:消息草稿与状态管理优化
Stream Chat Android 是一个功能强大的 Android 即时通讯 SDK,它为开发者提供了构建聊天应用所需的各种组件和工具。最新发布的 v6.13.0 版本带来了一系列重要更新,主要集中在消息草稿功能和全局状态管理方面。
消息草稿功能
本次更新最显著的变化是引入了消息草稿功能。开发者现在可以为频道和线程创建草稿消息,这些草稿会在用户下次打开应用时自动恢复。这对于提升用户体验非常有帮助,特别是在用户输入过程中意外退出应用的情况。
实现这一功能的核心是新增的 DraftMessage 实体类,它封装了草稿消息的所有必要信息。客户端提供了三个关键方法:
createDraftMessage()用于创建草稿deleteDraftMessages()用于删除草稿queryDraftMessages()用于查询草稿
在 UI 层面,Compose 和 View 系统都新增了相关配置选项,开发者可以通过 ChatUI.draftMessagesEnabled 或相应的 ViewModel 工厂类属性来启用/禁用这一功能。
全局状态管理改进
另一个重要改进是对全局状态 GlobalState 的管理方式。新版本引入了 ChatClient.globalStateFlow,这是一个仅在用户连接时才会发射值的 Flow。这种设计更加符合响应式编程的原则,也解决了之前版本中可能出现的进程死亡后状态恢复问题。
状态管理的变化还影响了 ChannelListViewModel 的构造函数,现在它接收的是一个 Flow<GlobalState> 而非直接的 GlobalState 对象。这种改变使得状态管理更加灵活和可靠。
提及功能增强
提及功能在这个版本中得到了显著增强。新增的 MentionListController 统一管理了提及列表的状态逻辑,这使得代码更加模块化,也为 Compose 和 View 系统的共享使用提供了便利。此外,提及列表现在支持分页功能,可以更好地处理大量用户的情况。
音频录制与消息气泡改进
在用户体验方面,修复了音频录制附件在应用进入后台或屏幕被覆盖时不会暂停的问题。对于消息气泡,现在提供了更多的自定义选项,包括:
- 通过
ChatComponentFactory自定义消息气泡和失败图标 - 通过
MessageTheme自定义错误消息的文本样式和背景色 - 文本格式化器现在可以基于
Message对象动态调整文本样式
其他改进
- 消息选项菜单现在会根据上下文智能显示"Thread reply"选项
- 新增了消息编辑器阴影高度的自定义选项
- 修复了各种边界情况下的崩溃问题
- 优化了头部拦截器对特殊字符的处理
总的来说,v6.13.0 版本在保持稳定性的同时,引入了多项实用的新功能和改进,特别是消息草稿功能的加入,将显著提升终端用户的使用体验。对于开发者而言,增强的状态管理和更丰富的自定义选项也使得构建高质量的聊天应用变得更加容易。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0218
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0139
uni-appA cross-platform framework using Vue.jsJavaScript09
GLM-5.2智谱开源 GLM-5.2,这是针对长文本任务的最新旗舰模型。相较于前代产品 GLM-5.1,它在长文本任务处理能力上实现了显著飞跃,并且首次在稳定的 100 万 token 上下文中提供这一能力。Jinja00
SwanLab⚡️SwanLab - an open-source, modern-design AI training tracking and visualization tool. Supports Cloud / Self-hosted use. Integrated with PyTorch / Transformers / LLaMA Factory / veRL/ Swift / Ultralytics / MMEngine / Keras etc.Python00
tiny-universe《大模型白盒子构建指南》:一个全手搓的Tiny-UniverseJupyter Notebook03