ChatKit 是一个免费且开源的 UI 聊天组件,自带云服务器,自带推送,支持消息漫游,消息永久存储。底层聊天服务基于 LeanCloud(原名 AVOS ) 的 IM 实时通信服务「LeanMessage」而开发,采用 Protobuf 协议进行消息传输。ChatKit 可以帮助开发者快速集成 IM 服务,轻松实现聊天功能,提供完全自由的授权协议,支持二次开发。其最大特点是把聊天常用的一些功能配合 UI 一起提供给开发者。

据说刚上线就获得了 GitHub Trending 的第一!

ChatKit 遵循 MIT 开源授权协议,使用 Objective-C 编写,GitHub 地址:

https://github.com/leancloud/ChatKit-OC

ChatKit 优势

Demo 太多,是时候该来一款 Lib 了;
闭源的太多,是时候来一款开源的了;
部分开源的太多,是时候来一款 100% 开源的了(iOS端);
-手撕 Frame 的太多,是时候来一 AutoLayout 款了;
自定义能力太弱的太多,是时候来一款可高度自定义的了;

iOS 端代码完全开源,你能看到完整的建立 Socket 连接,以及维持心跳的所有步骤。Masonry布局,支持 CocoaPods ,不需要改源码,不需要设 Delegate,不需要在代码里调整聊天气泡位置,这一切我都帮你想好了,要不要来试用一下?

ChatKit 应用场景

从大量的使用场景来看,「最近联系人列表」和「聊天界面」这两个页面是开发者最常使用的,同时也是比较难处理的。

最近联系人页面实现的难点在于:

  • 要根据最近打开的聊天窗口排序联系人列表;
  • 对每一个最近聊天人/组需要显示最新的一条消息及时间;
  • 需要实时更新未读消息的计数;

而聊天页面的实现难点则在于:

  • 消息种类繁多,要有比较好的用户体验,界面以及异步处理方面有大量的开发工作;
  • 音视频消息的录制和发送,需要对系统以及 LeanCloud 实时通信 API 比较熟悉;
  • 推、拉展示本对话中的最新消息,需要对 LeanCloud 实时通信接口比较熟悉;

在 ChatKit 中重点完成了这两个页面的开发,效果:

enter image description here