All Projects → netease-kit → NIM_iOS_UIKit

netease-kit / NIM_iOS_UIKit

Licence: MIT License
网易云信 iOS UI 组件,提供聊天界面,文本消息,图片消息,语音消息,视频消息,地理位置消息,自定义消息(阅后即焚)等消息示例。#推荐客户得比特币/京东卡,现在推荐使用网易云信,最低得0.02BTC或3000元京东卡/单,点击参与:https://yunxin.163.com/promotion/recommend

Programming Languages

objective c
16641 projects - #2 most used programming language

Projects that are alternatives of or similar to NIM iOS UIKit

Nim ios uikit
网易云信 iOS UI 组件,提供聊天界面,文本消息,图片消息,语音消息,视频消息,地理位置消息,自定义消息(阅后即焚)等消息示例。#推荐客户得比特币,首次推荐得0.02BTC,连续推荐得0.03BTC/单,上不封顶。点击参与https://yunxin.163.com/promotion/recommend
Stars: ✭ 1,326 (-3.28%)
Mutual labels:  chat, component-library, pod, ui-components, chat-application
Space
A real time chat app for developers built using React, Redux, Electron and Firebase
Stars: ✭ 161 (-88.26%)
Mutual labels:  chat, chat-application
Webapp
Tinode web chat using React
Stars: ✭ 156 (-88.62%)
Mutual labels:  chat, chat-application
Nio
💬 Nio is an upcoming matrix client for iOS.
Stars: ✭ 235 (-82.86%)
Mutual labels:  chat, chat-application
Chatair Android
🔥 A highly advance featured chat app in android using Firestore
Stars: ✭ 132 (-90.37%)
Mutual labels:  chat, chat-application
Chat Realtime
Public & Private message. MySQL & Firebase.
Stars: ✭ 147 (-89.28%)
Mutual labels:  chat, chat-application
Chat21 Android Sdk
Android Chat SDK built on Firebase
Stars: ✭ 204 (-85.12%)
Mutual labels:  chat, chat-application
Android yichat lite
android client
Stars: ✭ 118 (-91.39%)
Mutual labels:  chat, chat-application
carbon-components-svelte
Svelte implementation of the Carbon Design System
Stars: ✭ 1,615 (+17.8%)
Mutual labels:  component-library, ui-components
chatKit
Open Source React Chat Widget. Ready for use and can be connected to any backend like Chatbot/NLP/Live Chat engine or messenger.
Stars: ✭ 42 (-96.94%)
Mutual labels:  ui-components, chat-application
mijin
Tailwind CSS UI components build for Vue.js / Nuxt.js
Stars: ✭ 168 (-87.75%)
Mutual labels:  component-library, ui-components
Ng Chat
💬 A simple facebook/linkedin lookalike chat module for Angular applications.
Stars: ✭ 131 (-90.44%)
Mutual labels:  chat, chat-application
Im service
golang im server
Stars: ✭ 1,694 (+23.56%)
Mutual labels:  chat, chat-application
Igdm
Desktop application for Instagram DMs
Stars: ✭ 1,880 (+37.13%)
Mutual labels:  chat, chat-application
Ios
Tinodios: Tinode Messaging Client for iOS
Stars: ✭ 119 (-91.32%)
Mutual labels:  chat, chat-application
Chatlayout
ChatLayout is an alternative solution to MessageKit. It uses custom UICollectionViewLayout to provide you full control over the presentation as well as all the tools available in UICollectionView. It supports dynamic cells and supplementary view sizes.
Stars: ✭ 184 (-86.58%)
Mutual labels:  chat, chat-application
svelteit
Svelteit is a minimalistic UI/UX component library for Svelte and Sapper projects
Stars: ✭ 64 (-95.33%)
Mutual labels:  component-library, ui-components
Applozic Ios Sdk
iOS Real Time Chat & Messaging SDK
Stars: ✭ 104 (-92.41%)
Mutual labels:  chat, chat-application
Livehelperchat
Live Helper Chat - live support for your website. Featuring web and mobile apps, Voice & Video & ScreenShare. Supports Telegram, Twilio (whatsapp), Facebook messenger including building a bot.
Stars: ✭ 1,583 (+15.46%)
Mutual labels:  chat, chat-application
Chattt
❯❯❯ Chat without leaving your terminal
Stars: ✭ 239 (-82.57%)
Mutual labels:  chat, chat-application

推荐客户得比特币/京东卡,现在推荐使用网易云信,最低得0.02BTC或3000元京东卡/单,点击参与https://yunxin.163.com/promotion/recommend

网易云信 UI 组件 · iOS

Build Status Pod Version Pod Platform Minimum Requirement LICENSE

简介

云信 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 源码,意在提供一个比较优雅的实现参考,但对于接入的开发者而言,成本仍然过大。这也是这个组件库的由来和目的:开发者在不写任何一行代码的情况下也能够轻松实现一个聊天界面。

集成环境

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

集成说明

Cocoapods 集成

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

pod 'NIMKit'

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

  • 轻量版本

    pod 'NIMKit'

    pod 'NIMKit/Lite'
  • 完整版本

    pod 'NIMKit/Full'

Swift 集成

由于使用 Swift 开发的第三方库不支持编译为静态库,NIMKit 和这些库同时使用 Cocoapods 的时候会出现一些问题,具体解决方案可以参考这个文档

手动集成

我们强烈不推荐你使用手动导入的方式来集成 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 = [[NIMSessionListViewController alloc] init];

集成效果

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

定制化

在不做任何修改,直接套用 NIMKit 组件,就能够达到上述效果。但不同的产品往往会有不同的定制化需求,定制化需求参考

1.《项目结构介绍》

2.《界面排版自定义》

3.《新消息类型集成》

4.《用户信息自定义》

5.《机器人消息排版指南》

更新日志

你可以在 这里 查看组件 2.1.0 版本之后的所有更新信息

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].