收藏本站
博为峰Android开发培训Banner
您所在的位置:博为峰教育首页 > 资料精选 > 学习资料 > 【学习资料】初学者应了解的iOS开发学习技能

【学习资料】初学者应了解的iOS开发学习技能

         发布时间:2015年12月10日 15:35分       来源:博为峰教育网采编    关键词:iOS开发     | 上一篇 | 下一篇 |


 

       如果你想学习iOS开发,就不得不知道一些行业现状,以及之后的工作环境和内容。最快的进入iOS的渠道,就是进行iOS培训了,目前,iOS培训已经趋于完善。以下献给想要了解iOS开发,以及希望从事iOS开发的人们。

 

初学者应了解的iOS开发学习技能

 

       行业现状

 

       最近几年由于互联网和智能手机的大范围崛起,大量的开发者涌入移动端,但是优秀的 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行代码的程序。

 

       合作对象

 

          一、直接对象

       ●产品;
       ● UI;
       ● UX;
       ●测试;
       ●后台;
       ●其他前端。

 

    二、间接对象

    所有和公司有直接关系或间接关系的人。
       如果你以为只管“打点好”和产品相关的7、8个人你就错了,讨论小组的背后可能有上百人的暗中参与,有些没有节操的产品会在你面前固执己见、冠名堂皇,在领导面前“通敌卖国”。

 

       三、技能列表

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

 

       其实开发中大多数问题都是“临时”遇到的问题,只有平时积累的够多,才能游刃有余的解决。上面的这些技能只能算是抛砖引玉,更多地学习主要还是在自己遇到问题或者遇到不懂的知识点的时候,每一个困难都是财富,都是一个学习的机会,像CoreData、设计模式之类的技能你难道不学吗?兴趣和遇到问题的切入点很重要,不要敷衍自己,多看书,书看的越多,越会觉得自己无知。

       另外,技能这块也不要把关注点全放在 iOS的平台技术上,做开发的一定不能偏科,有时你觉得自己只是某方面比较薄弱,比如说“我就是记忆力不行”,其实差距是全面的。