Pages

Sunday, 28 May 2023

ChatKit-OC:IM程序的UI组件(iOS)



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

ChatKit 遵循 MIT 开源授权协议,使用 Objective-C 编写。

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

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

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

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

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

在 ChatKit 中重点完成了这两个页面的开发。

GitHub地址:
https://github.com/leancloud/ChatKit-OC

--------------------------------------------------

简介

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

ChatKit 只负责演示聊天的核心逻辑,所以不支持自定义消息(如红包、名片等),并且也不支持 UI 定制。

获取项目

git clone --depth=1 https://github.com/leancloud/ChatKit-OC

集成效果

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

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

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

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

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

使用方法

ChatKit 支持以下两种方式导入到您的项目中:

  1. 通过 CocoaPods 管理依赖
  2. 手动集成并管理依赖,参考下文的手动集成部分。

这里推荐通过 CocoaPods 管理依赖

CocoaPods 是目前最流行的 Cocoa 项目库依赖管理工具之一,考虑到便捷与项目的可维护性,我们更推荐您使用 CocoaPods 导入并管理 SDK。

CocoaPods 导入

  1. CocoaPods 安装

如果您的机器上已经安装了 CocoaPods,直接进入下一步即可。

如果您的网络已经翻墙,在终端中运行如下命令直接安装:

   sudo gem install cocoapods

如果您的网络不能翻墙,可以通过淘宝的 RubyGems 镜像 进行安装。

在终端依次运行以下命令:

   gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/
   sudo gem install cocoapods
  1. 查询 CocoaPods 源中的本库

在终端中运行以下命令:

   pod search ChatKit

这里注意,这个命令搜索的是本机上的最新版本,并没有联网查询。如果运行以上命令,没有搜到或者搜不到最新版本,您可以运行以下命令,更新一下您本地的 CocoaPods 源列表。

   pod repo update
  1. 使用 CocoaPods 导入

打开终端,进入到您的工程目录,执行以下命令,会自动生成一个 Podfile 文件。

   pod init

然后使用 CocoaPods 进行安装。如果尚未安装 CocoaPods,运行以下命令进行安装:

   gem install cocoapods

打开 Podfile,在您项目的 target 下加入以下内容。(在此以 v0.8.5 版本为例)

在文件 Podfile 中加入以下内容:

   pod 'ChatKit', '0.8.5'

然后在终端中运行以下命令:

   pod install

或者这个命令:

   # 禁止升级 CocoaPods 的 spec 仓库,否则会卡在 Analyzing dependencies,非常慢
   pod update --verbose --no-repo-update

如果提示找不到库,则可去掉 --no-repo-update

完成后,CocoaPods 会在您的工程根目录下生成一个 .xcworkspace 文件。您需要通过此文件打开您的工程,而不是之前的 .xcodeproj

然后在需要的地方导入 ChatKit:

   #import <ChatKit/LCChatKit.h>

CocoaPods 使用说明

指定 SDK 版本

CocoaPods 中,有几种设置 SDK 版本的方法。如:

>= 0.8.5 会根据您本地的 CocoaPods 源列表,导入不低于 0.8.5 版本的 SDK。 ~> 0.8.5 会根据您本地的 CocoaPods 源列表,介于 0.7.X~0.8.5 之前版本的 SDK。 我们建议您锁定版本,便于团队开发。如,指定 0.8.5 版本。

pod 'ChatKit', '0.8.5'
  • 升级本地 CocoaPods 源

`CocoaPods 有一个中心化的源,默认本地会缓存 CocoaPods 源服务器上的所有 SDK 版本。

如果搜索的时候没有搜到或者搜不到最新版本,可以执行以下命令更新一下本地的缓存。

pod repo update
  • 升级工程的Pod版本

更新您工程目录中 Podfile 指定版本后,在终端中执行以下命令。

pod update
  • 清除 Cocoapods 本地缓存

特殊情况下,由于网络或者别的原因,通过 CocoaPods 下载的文件可能会有问题。

这时候您可以删除 CocoaPods 的缓存(~/Library/Caches/CocoaPods/Pods/Release 目录),再次导入即可。

  • 查看当前使用的 SDK 版本

您可以在 Podfile.lock 文件中看到您工程中使用的 SDK 版本。

关于 CocoaPods 的更多内容,您可以参考 CocoaPods 文档

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

(https://cocoapods.org/pods/ChatKit)

----------------------------------------------------------

Demo for LeanCloud Swift SDK.

Swift SDK Demo

Demonstrations based on LeanCloud Swift SDK .

Demo Project Name description
Chat Instant Messaging App
VoIP Sample for receiving APNs message and VoIP notification

Chat

Chat is a LeanCloud based instant messaging application on iOS.

Features

  • Basic Chatting
  • Group Chatting
  • Rich Media Messaging
  • Open Chat Room
  • Channels and Bots
  • Temporary Conversation

How to Run

  • $ git checkout master
  • CocoaPods adding Package Dependencies
    • $ cd swift-sdk-demo/
    • $ pod update
  • $ open swift-sdk-demo.xcworkspace/
  • Xcode run Chat target

Note: Before running the target, maybe you should change the Bundle identifier and setup your own Apple Developer Account.

VoIP

VoIP is is a LeanCloud based Sample Project for receiving message and VoIP notification on iOS.

How to Run

  • $ git checkout master
  • CocoaPods adding Package Dependencies
    • $ cd swift-sdk-demo/
    • $ pod update
  • $ open swift-sdk-demo.xcworkspace/
  • Xcode run VoIP target

Note: Before running the target, maybe you should change the Bundle identifier and setup your own Apple Developer Account.

from https://github.com/leancloud/swift-sdk-demo

 

 

No comments:

Post a Comment