作为一个iOS Developer 为什么我不用Swift?

时间:2021-08-03 05:49:53

1、开始

  在去年这个时候接手了一个iOS项目,项目主用Swift语言进行开发,对于部分第三方Objective C开源库则使用bridge的方式进行调用

当时项目的规模大概是不超过15个页面,功能也比较单一,复杂的逻辑还没有。

接手时,也是急切着需要更新新功能到项目去,当时一股好奇以及挑战难度的心态让我用Swift写了两个页面,解决了原有项目中的一些细节问题

毕竟UIKit还是UIKit,只是编写的语言不一样罢了,语法什么的稍微了解一下还是可以用,UI控件上的生命周期、功能用法 自己还是清楚的

2、接着

  随后项目需要新增的功能点越来越多,也只有我一个人在做开发,为了进度 我还是在工程上添加了 Objective-C文件,新功能全用Objective-C来开发

对于原有模块,能不动的就不动了,只是有些时候需要把OC的头文件引入到bridge桥,然后在swift里调用,回调。。

  坑肯定是有的,但也不至于影响功能使用。

  随着项目功能点越来越多,类文件也多起来了。在打包时也发现速度非常慢,后续再继续观察,发现每次打包时 Xcode都要把Swift的依赖库塞到Archives包里,导致每次打包完 Archives包都是上百M的,这速度慢就算了,还影响我SSD的写入寿命,基于这个理由,我花了1个星期把Swift写的模块全换成Objective-C来写,重写后打包的Archives只有32M,而且打包速度还有一定程度上的提升,出来的ipa文件也少了几M,对此结果 满意.

3、再后来

  后来也稍微开始留意Swift的动态,然而中途一个巨坑又出现了:Swift3.0的出现 被人戏称 「Swift从入门到重学」,至于里面包含什么含义,相信大家都懂的。至此 放弃Swift的研究。

4、个人开发效率分析

  对于一个一开始就学习Objective C 的开发者来说 Swift的开发效率自然没有OC高,这个因人而异,没有结论。

  从第三方服务分析(如支付、分享等SDK),当前大多数提供服务的第三方 基本均支持Swift,假设有部分没有提供Swift版本 也可以通过Bridge的形式使用,因此这个效率可以是一样的,但实际上语言之间还是有差异,假如一个只会Swift的开发者去看 第三方的Objective C方法,可能会有阅读障碍。

  从第三方开源库分析,当前较大规模的开源库 如AFNetworking请求库 都有对应的Swift版本,但大多数 开源控件还是基于Objective-C来编写的,若需要定制使用 还需要自行使用Objective-C来编码,因此效率还是OC>Swift

  还有很多....

5、性能分析

  这里片面的举个例子:http://www.splasmata.com/?p=2798

  上面的URL有Swift和Objective-C的性能对比,不管你信不信,反正我信的。也没有更多的时间去验证这个是真是假

  反正我OC开发用着爽