CocoaPods iOS 开源库管理

CocoaPods 是 macOS 和 iOS 下的一个第三类库管理工具,通过 CocoaPods 工具我们可以为项目添加被称为 “Pods” 的依赖库(这些类库必须是 CocoaPods 本身所支持的),并且可以轻松管理其版本。

Bundle 资源文件包

Bundle 资源文件包,Bundle 文件,简单理解,就是资源文件包。我们将许多图片、XIB、文本文件组织在一起,打包成一个 Bundle 文件。方便在其他项目中引用包内的资源。Bundle 文件是静态的,也就是说,我们包含到包中的资源文件作为一个资源包是不参加项目编译的。也就意味着,bundle 包中不能包含可执行的文件。它仅仅是作为资源,被解析成为特定的 2 进制数据。

Library 库

Library 库,库是程序代码的集合,是共享程序代码的一种方式。根据源代码的公开情况,库可以分为 2 种类型,开源库 公开源代码,能看到具体实现。闭源库 不公开源代码,是经过编译后的二进制文件,看不到具体实现。

EaseMob 环信的使用

EaseMob 环信的使用,环信使用的是 XMPP 协议,它是在 XMPP 的基础上进行的二次开发,对服务器 Openfire 和客户端进行功能模型的添加和客户端 SDK 的封装。环信的本质还是使用 XMPP,基于 Socket 的网络通信,在网络上传输的数据也是 XML。

IM 即时通讯

IM 即时通讯,即时通讯(Instant Messaging)又称实时通讯,支持用户在线实时交谈,允许两人或多人使用网络实时的传递文字消息、文件、语音与视频交流。即时通讯在开发中使用的场景有许多,如 AOL、Yahoo IM、MSN、QQ 以及微信等聊天软件,在电商 APP 集成买家与卖家的实时沟通等。它们最大的区别在于各自通讯协议的实现,所以即时通讯技术的核心在于它的传输协议,协议是用来说明信息在网络上如何传输。

CFNetwork 的使用

CFNetwork 的使用,CFNetwork 是基于 OS 层 BSDSocket 封装(纯 C),用于网络通信,早期的网络请求框架 ASIHTTPRequest 就是基于 CFNetwork 进行的封装。主要使用的 API CFSocket 用于底层的通信,CFStream 用于数据的读写。

AsyncSocket 的使用

AsyncSocket 的使用,基于 CFSocket、GCD 进行的封装(OC)。支持 TCP 和 UDP。完整的回调函数(用于处理各种回调事件,连接成功,断开连接,收到数据等)。

Socket 网络套接字

Socket 网络套接字,所谓 Socket,通常称为 “套接字”,网络应用程序通过套接字向网络发送请求或者应答网络请求。Socket 通常用于描述 IP 地址和端口,是应⽤层与 TCP/IP 协议族通信的中间软件抽象层,它是一组接口,是一个通信链的句柄,可以用来实现不同虚拟机或者不同计算机之间的通信。在设计模式中,Socket 其实就是一个门面模式,它把复杂的 TCP/IP 协议族隐藏在 Socket 接⼝后面。