登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

NIM_iOS_UIKit

[复制链接]
来自: shareiOS 分类: iOS精品源码 上传时间: 2016-12-2 12:14:41
Tag:网易 netease 网以云信

项目介绍:

网易云信 UI 组件 · iOS

https://github.com/netease-im/NIM_iOS_UIKit

简介

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

源起

在一个开发首次做 IM App 时,聊天界面的 ViewController 几乎会变成项目开发中的泥潭,随着项目推进和需求迭代,聊天界面 ViewController 往往会变成 Massive View Controller,所有聊天界面相关的代码都堆积在一起,整个 ViewController 的代码轻松就上千行,无法很好的解耦。

造成聊天界面代码臃肿的原因往往有:

  • 消息种类繁多,没有做很好的归类与统一,代码可拓展性低

  • 聊天界面 UI 元素,事件,回调众多,没有合理解耦

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

  • MVCS

  • MVP

  • MVVM

  • VIPER

落实到细节上,又有使用组合,抽取数据源等等小技巧。但对于一些经验不足的 iOS 开发而言,做出一个优雅的聊天界面 ViewController 仍旧是一件难于上青天的事。

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

集成说明

Cocoapods 集成

我们建议你通过 Cocoapods 来进行 NIMKit 的集成,在 Podfile 中加入以下内容:

pod 'NIMKit'

需要注意的是默认 NIMKit 依赖于 轻量版本NIMSDK,而 完整版本NIMSDK 不仅有 IM 模块,也有音视频模块。对于很多产品而言,只需要接入单纯的 IM 模块,这样可以减少对不必要模块的依赖,进而减少 App 体积。所以我们有两个版本的组件可供选择,安装完组件之后,则不必再安装 NIMSDK 依赖。

  • 轻量版本

    pod 'NIMKit'
pod 'NIMKit/Lite'
  • 完整版本

    pod 'NIMSDK/Full'

手动集成

当然你也可以通过手动导入 NIMKit。步骤如下

  • 添加 NIMKit 下所有源文件到你的工程中

  • 添加 NIMKitResource.bundleNIMKitEmoticon.bundleNIMKitSettings.bundle 到你的工程中

  • 添加必要的依赖项

    • CoreText.framework

  • 如果你选择手动添加 NIMSDK,还需要添加如下依赖项

    • CoreTelephony.framework

    • AVFoundation.framework

    • MobileCoreServices.framework

    • SystemConfiguration.framework

    • AudioToolbox.framework

    • CoreMedia.framework

    • libc++.tbd

    • libsqlite3.0.tbd

    • libz.tbd

  • 设置 Other Linker Flags-ObjC

  • 在需要使用到组件的地方导入头文件 NIMKit.h

快速使用

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];

集成效果

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

code4app

相关源码推荐:

我来说两句
*滑动验证:
所有评论(9)
BlueManlove 2016-12-2 13:06:03
mark,收藏了
回复
kengsir 2016-12-2 13:07:26
内容很好,棒棒哒
回复
phoiu 2016-12-2 13:09:10
膜拜大神~
回复
hellokenken 2016-12-2 13:13:29
code4app好的内容真的很多~赞
回复
littleRed 2016-12-2 13:15:45
不错不错,楼主辛苦了。。。
回复
AlonMessi 2016-12-2 13:27:31
mark,收藏了
回复
安一夏 2016-12-2 16:48:19
楼主用心了,内容非常精彩。
回复
code4app热心网友 2016-12-2 17:09:51
感谢分享,Code4App有你更精彩:)
回复
565691320 2016-12-2 17:40:37
虽不明 但觉厉
回复
提取码:  下载次数:180 状态:已购或VIP 售价:0(原价:10)金钱 下载权限:初级码农 
5089 1 180
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,742864542

如何获得代码达人称号?

代码贡献英雄榜
用户名 下载数
通过邮件订阅最新 Code4App 信息
上一条 /4 下一条
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 广东互联网违法和不良信息举报中心|中国互联网举报中心|Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表