ChrisKitSpecTest 1.0.6

ChrisKitSpecTest 1.0.6

测试已测试
语言语言 Obj-CObjective C
许可 自定义
发布最后发布2016 年 12 月

wanglei 维护。



  • Chris

网易云信 UI 组件 · iOS

简介

云信 UI 组件,全名 Netease Instant Message Kit,简称 NIMKit,是一款开源的聊天组件,并支持二次开发。开发者只需进行少量配置,就能打造出属于自己的聊天界面。通过一些自定义设置,也可以轻松添加业务相关功能,如阅后即焚、红包、点赞等。NIMKit 底层依赖 NIMSDK,由网易开发的 IM SDK,可以轻松快速地将 IM 功能集成到您的 App 中。

源起

在开发第一个 IM App 时,聊天界面的 ViewController 通常会成为项目开发中的泥潭。随着项目推进和需求迭代,聊天界面 ViewController 往往会变成庞大的 ViewController,所有聊天界面相关的代码都堆积在一起,整个 ViewController 的代码行数可能轻松超过一千行,难以很好地解耦。

聊天界面代码臃肿的原因通常包括

  • 消息种类繁多,没有很好地归类和统一,代码可扩展性低
  • 聊天界面 UI 元素、事件、回调众多,没有合理解耦

在 iOS 开发中,大牛们为我们总结出各种方法来进行各个模块的解耦,大方向上有

  • MVCS
  • MVP
  • MVVM
  • VIPER

在细节上,还有使用组合、抽取数据源等小技巧。但对于一些经验不足的 iOS 开发者来说,做出一个优雅的聊天界面 ViewController 仍然是一件难事。

在开发云信的前期,我们虽然也意识到了这方面的困难,在提供云信 SDK 的同时也开源了相应的 Demo 源码,意在提供一个较为优雅的实现参考。但对于接入的开发者来说,成本仍然过高。这也是这个组件库的由来和目的:在不编写任何代码的情况下,也能轻松实现聊天界面。

集成环境

  • 编译版本:iOS SDK 10.0 及以上。
  • 操作系统:iOS 8.0 及以上。

集成说明

手动集成

我们强烈不推荐您使用手动导入的方式来集成 NIMKit,但如果您一定要这么做,可以参考这个文档

快速使用

NIMKit 提供了两个最重要的类

  • NIMSessionViewController
  • NIMSessionListViewController

前者用于会话界面的显示和交互,后者提供了最近会话功能。在集成 NIMSDK 并完成基本设置后,直接调用这两个类即可得到完善的聊天界面和会话列表。

聊天界面

初始化聊天界面时,上层需要传递当前聊天界面对应的会话信息,即 NIMSession

NIMSession *session = [NIMSession session:uid type:NIMSessionTypeP2P];
NIMSessionViewController *vc = [[NIMSessionViewController alloc] initWithSession:session];
[self.navigationController pushViewController:vc animated:YES];

会话列表

初始化会话列表不需要任何前置条件,直接初始化即可。

NIMSessionListViewController *vc = [[NIMSessionViewController alloc] init];

集成效果

最近会话进入会话 群组会话 发送多张图片
image image image
发送语音 发送地理位置 发送中与发送失败,点击叹号可重发
image image image
自定义消息-阅后即焚示例 最近联系人选择器 最近会话删除与未读删除
image image image

定制化

在不做任何修改的情况下,直接套用 NIMKit 组件,即可达到上述效果。但不同的产品可能会有不同的定制化需求,相关需求参考以下内容

1.《项目结构介绍》

2.《界面排版自定义》

3.《新消息类型集成》

4.《用户信息自定义》