iOS开发之OC swift中使用protobuf

2019-04-21  本文已影响0人  DanielXinYi

最近换了工作,新公司使用的是protobuf,第一次看到我也是一脸蒙圈,经过一段时间的摸索,总算是有了一点了解,分享出来希望对大家了解protobuf有用。因为是初次接触,资料较少,所以有一些观点都是自己的主观意识,如果有错误请及时指出,及时修改,以免误导了后来使用者。

protobuf是什么呢?
网上搜索得出如下结果:Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。我的理解就是类似xml json的数据结构.
那么他相对于xml,json有什么优势呢?我觉得有以下几点
1.多端通用,只需要维护一份源文件即可.
2.性能高,效率高,更快,更小,这一点网上有具体的数据可以说明,但是相对于一般的app来说其实json也够用.
3.传输的时候采用二进制编码(转Data)有一定的安全性。
4.个人心得:我在使用过程中感觉就是,不管是请求还是响应都有对应的类来,不需要考虑转换到事情,基本不会出现因为数据闪退的情况,而且数据解析使用比较简单,不需要考虑这一块的,只管使用。比较不爽的就是每次修改一点就要全部编译,因为文件中也有一些相互引用不知道是否是我司的问题.后续熟悉了来解决。

那么在iOS开发中如何使用protobuf?
1.首先不管语言,都要在电脑上安装protobuf的编译器,需要注意的时候 最好是跟后端约定好版本,我是用的是3.0.0.手动安装,
链接如下https://link.jianshu.com/?t=https%3A%2F%2Fgithub.com%2Fgoogle%2Fprotobuf%2Freleases
2.其次根据语言 在项目中使用不同的protobuf支持库,
OC项目中,因为是老项目所以是直接手动拖入的。
swift项目中 推荐cocopods 使用protobufswift.是苹果官方出的github链接如下
https://github.com/apple/swift-protobuf
3.根据不同的pb文件编译出来自己语言所需要的文件
这一步我们是后端定义好pb文件,然后我们拿到之后根据使用的语言编译成不同的,直接拉到项目中使用.如果是自己项目内使用可以参考如下文章https://www.jianshu.com/p/16a7c1e68945 有完整的安装使用说明.

基本的使用就都在上面了,因为也是第一次接触,所以很多东西不是很懂,现在分享出来的也是自己接触过程中的一些资料.下一篇文章会有protobuf如何配合网络请求使用。文章链接如下https://www.jianshu.com/p/346b3cf4a55c

上一篇下一篇

猜你喜欢

热点阅读