保利威直播Android SDK大吐槽!
本来打算今天继续写Android模块化开发的数据交互部分,但今天看了保利直播的Android SDK后,我觉得我得专门写一遍文章吐槽一下,方能排遣一下我心中的郁闷!因为这是我做开发以来接触过的最烂的项目🤦♂️,没有之一!!!
本人自我感觉技术水平还行,而且也做过几个直播的项目,所以这回接到接入保利直播的需求时,我嘿嘿一笑,这样轻车熟路的工作,做起来还不是得心应手?没想到还是太年轻,直接被保利的SDK文档焦作人了

以下就是我对保利云课堂v0.8.0 android版本的读后感:
主要槽点一:开发文档?不存在的
作为一名合格的技术开发人员,学习新的技术或第三方类库,官方给出的技术文档永远是最好的选择,当我满怀信心的去找官网的开发文档时,竟然是这样的,

对,你没看错,就是这么简洁明了,我就顺着指引点击“集成文档”,直接跳转了Github,难道移动端不配在官网有开发文档?
好吧,在github上写文档也不是不行,只要是官方的,在哪看不是看,终于一路寻找找到了文档的入口:

当满怀欣喜的去学习的时候,才发现,这哪里的开发文档?根本就是这个Demo项目的介绍,这个文档粗略的介绍了Demo中一些重要的类和方法。

想要知道SDK的使用方法,赶紧去研究Demo项目吧!

槽点二:Demo项目结构混乱不堪
既然没有详细的开发文档,那也只能从Demo入手了,毕竟官方的Demo可是有相当高的参考价值的,没想到我又错了,当我带着学习的心态去阅读时,感觉到的确实迎面扑来的屎山尿海🤦♀️
我就以简单的视频播放的View来举列子:




PolyvCloudClassVideoItem是视频播放的View,经过了一次封装三次继承才能索引到引入到我们项目中的SDK,而且中间使用到了大量的泛型,并少有注释,图三种的注释还是我阅读代码后加的...
这样的形式不胜枚举,极大的增加了阅读代码时候的难度。这也就算了,竟然还有下面的情况


对象之间是你中有我,我中有你,傻傻分不清楚,让从入门到放弃成为了可能!

槽点二:SDK接入指引


官方文档中给出的接入建议是直接把Demo集成到项目中,这样的集成方式也不敢恭维。
首先,别人项目中的需求跟Demo不可能相同,这样的引入方式会增加额外的资源切全无用处。即使引入了也需要做大量的改动。
其次,Demo指定了targetSdkVersion为27及以下,targetSdkVersion的版本对应用在市场上的排名起到了一定的作用,对在有这方面有一定要求的项目,极不友好。

最后,如果谁敢直接把这样质量的Demo项目引入到公司项目里,估计会被劝退吧...
吐槽完毕,心里总算好受了一些,能睡个安稳觉了,不过在这之前还是继续看Demo吧

拜了个拜~