【编者按】自从Swift(Swift知识库:http://lib.csdn.net/base/swift)发布以后,曾风光一时的Objective-C便呈现出自由落体趋势。尽管如此,作为iOS平台上的一员老将,许多著名软件或者项目大多还是基于OC开发。为此,知识库特邀请《十分钟让你明白Objective-C的语法(和Java、C++的对比)》一文作者容芳志老师为大家绘制了Objective-C知识图谱,并且根据各个知识点挑选优质都干货和精品给大家。
Objective-C知识库发布~
下面是容芳志老师的采访内容,分享他眼中的Objective-C语言。
容芳志:自己现在比较专长的是iOS的应用软件开发,也做过2-3年Android开发。
接触移动开发有6-7年了,移动开发经历过Symbian,MTK,Android,iOS等几个系统的开发。
2.能否分享一下你的计算机编程之路,踩(挖)过哪些坑或者特别值得分享的故事。
容芳志:最早接触的是Symbian系统开发,Symbian算是当时先进的智能手机系统了。不过诺基亚在开发者工具,文档和服务这方面做的非常不到位,开发非常艰难,系统也不开发,感觉这也是诺基亚衰败的如此快的一个原因。有了Symbian开发Symbian C++基础后,再学习Java切换到Android开发就比较容易些了,文档和开发环境也有了很大的改善。在做Android开发的同时,也有机会接触到了iOS开发,不过机会也是靠自己争取的。学习新的知识比较好的一个途径就是边学习边写博客总结分享+实践。
3.你最近使用的技术有哪些,它们给您或团队带来了哪些便利?
容芳志:使用动态修复技术,Jenkins持续集成,HTTP数据传输层使用动态秘钥技术,也在项目实践中探索无埋点技术。
动态修复技术解决了App上线后发现bug不能及时修复的烦恼。Jenkins持续集成可以让开发和测试更敏捷的开发和调试各个版本。HTTP数据传输用动态秘钥加密技术,可以保证App数据通讯不被拦截或破解。无埋点技术可以动态埋点。
4.在最新的TIOBE排行榜上,Swift迅速上升,而Objective-C呈现自由落体,你如何看待这一现象。
容芳志:这是一个必然的趋势,Apple也在努力的推广Swift,新的项目如果没有Objective-C代码的负担的话,基本都是直接用Swift。我们自己的项目也会慢慢向Swift转换
5.对比Swift,Objective-C存在哪些不足?是否会被Swift取代?
容芳志:相比Swift ,Objective-C缺少了很多现代语言的灵活性、可读性、安全性也没有Swift好。不过想完全取代Objective-C还有很长一段路。Apple会在很长长一段时间还是会允许两个语言同时存在。
6.如何利用OC底层的一些原理,对应用程序日常进行监控分析?
容芳志:这个自己倒是没实现过。不过试验过听云监控App的性能SDK,他们只用了两代码,就实现了对App的所有方面的监控。应该是使用了大量OC底层的原理。
7.关于移动端App的热修复、插件化,你是如何实践的?
容芳志:目前只用了热修复,做了一个热修复的平台,可以针对每个App版本出现的线上问题进行热修复。当然热修复补丁也是做了加密和校验的,预防其他人恶意篡改。
8.跨平台领域特别火,评价一下React Native和Weex库,它们分别有哪些优缺点?
容芳志: React Native比较从代码或集成商,都比较重。学习成本高,对安卓支持还不是太好。目前大公司大规模运用React Native的不多,可能还是在一些小模块上实验。个人比较喜欢Weex,代码和集成比较轻量,不过现在刚推出不久,工具链&文档&教程还有待进一步完善。
9.微信小程序出来,请谈谈你的看法?
容芳志:刚推出公测时比较轰动,现在又沉默了。微信小程序估计以后能在移动市场占一席之地,从体验和实际使用上,还是没法取代原生态的App。而且大家不会所有应用流量入口都压在微信上,微信也有很大风险,比如微信会封你的微信小程序。
10.从您自身的经验出发,您认为iOS开发者应该如何自我提升?
容芳志:首先是对iOS开发的热爱,对编程有热情才能激发人去找方法学习。
提升自己的方法可以是:边学习边总结、写博客分享、有问题经常去官方文档学习并查到答案,看官方英文文档有困难及时补充自己看文档的英文能力。有能力可以自己做些开源的项目每年的WWDC的视频也都学习下。
11.作为开发者,除了关注当下热门的技术之外,还要考虑职业规划,你觉得iOS开发者如何才能在编程这条道路上走的更远。
容芳志:职业轨迹:初级开发程序员—中级—高级–软件架构师–系统架构师–开发经理–技术总监–首席技术官
上面提到的是很长的一个链条,当然要做到总监职位,不单单只会移动端开发就可以了,还需要对后端开发也有深入的学习和实践。
12.请你简单谈谈CSDN推出的系统化学习平台——知识库,开发者该如何使用它们?
容芳志:知识库的内容非常全面和丰富,开发者不可能全部都学习精通。需要结合自己当前的技术水平情况或项目情况选择学习或浏览。也可以到根据知识库的知识点,到Apple DEV官网查到详细的官方文档来学习。
推荐阅读: