A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xqlyn123 中级黑马   /  2015-10-28 10:38  /  1063 人查看  /  5 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

想随便聊聊关于 iOS 开发的话题,希望能通过自己有限的经验帮助下大家。

4 月26 号更新。

行业现状

虽然近几年有大量的开发者涌入移动端,社会上的各种培训机构也越来越多,但是优秀的 iOS 开发者在行业内仍然很少,这一方面是由于创业者很多,另一方面是因为技术更新换代很快,而且开发也需要长时间的经验积累,以近几年的 WWDC 大会为例,11年发布的 iOS5 与 iOS4 相比简直就是跨越性的更新,虽然用户可能感觉不到,但是从 SDK 的变化来说,开发者的压力是很大的;12年发布的 iOS6 带来了 AutoLayout 、CoreImage这些新的技术以及像 PassKit、CollectionView、State Preservation 这些大量的新的 APIs;iOS7 的变化大家都看在眼里,UI 的调整往往意味着过去经验的结束,你要重新思考对细节的处理;iOS8 也有理由说是变化最大的版本,带来了像 Extensions、Size Classes、Metal、Watch、Swift 等等这些全新的东西。

要学习的东西很多,但是总得来说行业前景还是很好,而且你每年都有机会实现弯道超车。

工作场景

能对产品进行需求分析,设计适合的架构,分解模块等,其次开发,开发中需要有产品观,毕竟要想从几十万的开发者中脱颖而出,除了技术还要有对产品本身的激情,对工作只是当成一个班去上是万万不行的。
能做好技术选型(需要用到的技能在下面的【技能列表】中),保证系统的稳定度。后者会比较麻烦,因为产品不了解代码本身的情况,对一些可能出现的问题并不清楚,而这些只有开发者最清楚,如果开发者不说的话就没人知道了,这也就是项目中的第二种需求,即非功能性需求,处理好这20%的非功能性需求才是真正体现一个开发者能力的地方。
扯了这么多,说说实际的工作内容:
前期:
* 需求分析
* 框架搭建,技术选型,如选择本地化存储方案 ,网络层的架构设计,可以在这个阶段把一些好用的第三方框架引起来,如 FMDB、FLEX、AFNetworking、AsyncSocket 等,这个阶段非常重要,因为维护代码的时间永远比开发功能的时间长,要尽力创建有弹性、易维护的系统
* 与后台对接,磨合期间偶尔会有“前端后端打架”的情况发生
* 可能还会有其他的前期准备,如建立 RSA/AES 的安全方案、国际化的策略等

中期:
* 参与产品设计
* 完成功能性需求
* 重构与优化

后期:
* 修复 Bugs
* GoTo 中期:
* Change 是软件开发中的真理,不会有结束的时候,除非是一个只有10行代码的程序

不要敷衍自己开发的产品,否则就是浪费自己的生命。

合作对象
技能列表

* 内存管理,不需要防御式编程,但是大脑一定要清晰的知道自己使用的对象的内存情况。
* UIKit,熟练掌握,能不看文档就知道常用的控件有哪些方法以及能做什么。
* Storyboard(xib)
* Auto Layout 和 Size Classes,前者更重要
* 各种手势处理
* KVO\KVC
* GCD
* delegate(不要与代理设计模式混淆)
* Block
* Notification
* APNs,远程通知
* 视图状态保存
* …
关于Objective-C 和 Swift

对目前的 Swift 来说,我是坚定的反对者,这种立场其实和我最开始时不一样:

Swift 目前非常不稳定,连 Xcode 都对它兼容的不好,每次 Swift 有个稍大的更新就像是把项目推倒重来,而且也不可能完全只用 Swift 来开发一个项目,基于 Objective-C 和 C 的框架有很多,iOS 是开发离不开 C 的。
除此之外,我觉得 OC 比 Swift 更加灵活,前者更依赖运行时,后者几乎就是编译时,OC 能做很多 Swift 做不了的事情,如运行时的关联对象等,不过这并不是说 Swift 不重要,只是一定要排一个优先级的话,我觉得短期内 Swift 无法对 Objective-C 造成太大影响,所以先学好 OC 还是更好一些,而且技多不压身嘛

5 个回复

倒序浏览
“我觉得短期内 Swift 无法对 Objective-C 造成太大影响”这个短期大概是多久呢?
我是基础班的,目前班上大多数人吧侧重点放在OC上面,但是你的文章当中说到IOS开发离不开C……
作为时间有限的初学者来说是应该把重心放在C上面呢?还是应该把重心放在OC上面呢?
谢谢.
回复 使用道具 举报
是啊,感觉做开发就必须要时刻学习
回复 使用道具 举报
不错啊 我也觉得学OC好
回复 使用道具 举报
听过swift前景很好啊,苹果力推啊
回复 使用道具 举报
jy00889669 来自手机 中级黑马 2015-10-28 23:21:29
地板
6666666666
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马