学习iOS开发者“修仙之道”_IOS手机应用开发的修仙道理
在微信上有童鞋问我iOS开发者的入门标准是神马?这个问题难到我了,而且轻率给一个答案出来的话,必定会有万千高手来喷。俗人修仙,仙人修道,道人修真。当咱们仍是一个在青石板上蹲马步汗水涔涔的废柴时,或许天空中偶然会有御剑翱翔的仙人路过。金色的阳光洒在仙人随风 摇动的剑穗上,此刻不由会情不自禁一种激动,期望有一天能变成这样的高手,自在翱翔。仅仅路漫漫其修远兮,漫漫修真路,从一个后天废柴到羽化升仙变成大神需求太多的尽力。我自己还归于iOS开发的外门弟子,正在入门的门槛上,所以仍是一起来看看iOS开发内门弟子给出的答案吧!
1、Objective-C 语言
任何一个修真者都要从最基本也最痛苦的炼体开始。对Objective-C语言的学习可以对应修真者的炼体或者后天境界。经过后天境界的苦修,一个修真者可以轻松打败几个普通流氓,不过当十几个甚至更多人一拥而上时,还是赶紧逃命吧。欲学iOS开发,必先学习Objective-C! iOS开发中用到的主要编程语言就是Objective-C语言,虽然也可以使用C和C++语言混合编程,不过Objective-C语言是最核心的部分。其中又包括:
面向对象编程基础(类和继承,变量和方法的作用域,MVC基本概念,分类)方法和函数(消息,类定义和属性,与C/C++的混合编程)内存管理(strong/weak, ARC自动引用计数,自动释放对象)代码设计模式(Block块语句,Target/action,协议)UIKIT(视图层级,绘制事件,触摸事件,动画)多媒体(配置,AVFoundation, C语言的API)
2、核心iOS7类库
编程语言只是基础,真正的开发利器是iOS7的核心类库。掌握了Objective-C语言只是让你从一个普通人变成侠客,但是离真正的修真高手还有很长的路。从只懂得炼体的后天境界晋升到挥手间敌人灰飞烟灭的练气或者先天境界,就必须掌握核心iOS7类库。其中又包括:
相机和microphone、社交网络与分享、CoreData数据持久化、Foundation,又包括Application loop(应用循环),Threads(线程),Networking(网络)、MapKit,也就是如何使用地图、Passbook,也就是和移动支付系统的整合、CoreLocation,如何在茫茫人海之中找到你所爱的位置、Bluetooth,蓝牙模块,如果你要开发周边硬件设备,这是必不可少的、Notifications,消息推送,又包括Local本地和Push(APNS)推送、CoreMotion, 比如陀螺仪相关的东西、GameKit,和第三方游戏设备(手柄)相关的东西、SpriteKit,类似cocos2d的2D游戏引擎
3、第三方依赖库管理
晋升先天之后,一个修真者就脱离了低级趣味,成了修真队伍的真正成员。虽然自身对天地大道的感悟和修炼是根本,但如果有那么几件灵器、仙器甚至神器在手,无论是保护自身的护身法宝还是令敌人胆寒的攻伐之器,都可以让你在修炼的路上笑傲江湖。
对iOS手机应用开发的人来说,善于借助第三方类库的强大力量来实现产品的各种功能,就如同修真者手持神兵法宝一般,无往而不利。神器法宝多了也不好办,所谓 财不外露,拿着一大堆法宝在外面炫富是修真者大忌。这个时候一个能容纳万物的储物乾坤袋就成了修真者的梦想之物。好在有CocoaPods,它比修真者储 物袋更神奇的是,你只需使用CocoaPods,就可以自动将各种优秀的第三方类库包含在项目之中。一个iOS开发者如果不懂CocoaPods,简直就 是修真界的穷DS一枚。懂CocoaPods的iOS开发者不说立马晋升高富帅,起码也会成为中产阶层之一。
4、Xcode 5
修真者都喜欢天地灵气充足的修炼之地,iOS开发者也非常需要一个强大的开发环境帮助自己打理项目。寻找一个理想的修炼之地对于修真者是奢侈的,因此大量散修选择加入各种宗门或学院,否则万难有出头之日。对于iOS开发者则可以省掉这份烦恼,因为所有iOS开发者都可以免费享受最强大的iOS开发环境-Xcode 5。对于Xcode5的学习又包括:
项目管理:包括文件结构,导航,Build 设置,属性列表等、代码编辑器:包括如何高亮,查找,自动完成,查看文件,Assistant Editor等等。Interface Builder: 如今的Interface Builder(界面编辑器)是内置在Xcode中的,这部分又包括Storyboards和xib的使用,控件类型及属性设置,IBOutlet和IBAction,自定义类,Tag,视图文件结构等。代码调试工具:包括lldb,断点,日志等Instrumentation工具:包括内存泄露和CPU使用率的监控等。Git版本管理:包括repository的管理,branching和merging。
iOS开发者除了知道如何具体写代码,还要在思想上提升自己的档次,站在一个更高的角度看待项目的开发和管理。这个时候就需要了解一些软件工程的概念。
5、对于软件工程,需要掌握的内容如下:应用程序的架构:比如模块化和SOA,逻辑封装等敏捷过程:比如项目所有者和用户场景,迭代开发,高效沟通等。其中迭代开发步伐又包括测试和结对编程,CI和代码审阅,QA质量测试和调试。项目管理:比如项目规划和评估,工具和文档化,Licensing等。
6、iOS开发者的神通功法1-Tests测试
修真者乃逆天而为,其中所遇到的艰难险阻是常人难以理解和接受的。当自身实力到了一定的程度之后,就要承受天威的打击-各种雷劫,比如四九雷劫,六 九雷劫,九九雷劫,飞升时的万雷劫。不管你自身实力如何强大,肉身如何抗操,元气如何充盈,神魂如何逆天,在雷劫时一不小心就会永坠轮回。
在iOS开发时,不管我们如何努力熬夜,如何苦逼编码,到了测试的时候发现程序直接挂掉了,简直是亲者痛仇者呵呵的不可承受之重。因此一个有经验的iOS开发者往往会采用测试驱动开发的思路。
7、iOS开发者的神通功法2-Git版本控制
常言道,一人得道鸡犬升天。修真者在飞升之后往往会将自己的修炼资源留给家族后人或好友使用。一方面是因为基因的自私天性,另一方面则是因为希望通过这种方式让更多的追随者可以一同飞升,在更广阔的大千世界中可以携手打拼。iOS开发的独行侠时代已经过去了,很多团队中的产品或项目开发是协同进行的,即便是纯粹个人开发,也经常需要用到版本控制工具。因此,iOS开发者需要对Git版本控制有一定程度的了解。具体包括:
版本控制系统:其中又包括分布式VCS,Branch,Merge,DiffGitHub的使用:Fork和Pull requestsconfig: remotes和default behaviors。
8、iOS开发者的神通功法3—移动应用开发的独特性
开发者也是如此,虽然Web开发,PC端应用开发,移动应用开发并没有等级之分,但各自却有了完全不同的特点。ios开发工程师需要根据移动应用开发的独特性掌握相应的知识:HIG(Human Interface Guidelines):人机界面交互流量消耗的考虑:包含两个方面,一个是安装包的大小,另一个则是在使用过程中的流量消耗。多线程操作:比如上传下载文件之类比较耗时间的操作可以单独放在一个线程中,详细请参考:Grand Central Dispatch (GCD) Reference状态保存和恢复:让用户下一次进入应用时仍然进入此前所在的界面和状态。本地化:根据用户所在的地区选择对应的语言显示
9、iOS开发者的神通功法4—吸星大法-参考别人的源代码
无论是修炼武功还是修真,都有一个类似吸星大法的邪门功法,那就是把别人的功力占为己有。
在iOS中,同样有这样一门强大的功法,那就是参考别人的源代码。比吸星大法更神奇的地方是,参考别人的源代码是双赢的过程,不会让别人的功力下降,反而让大家在切磋的过程中共同进步。源代码的来源包括:
http://developer.apple.com中苹果官方的源代码;
http://github.com里面的源代码;
code4app,cocoachina等第三方网站中大家共享的源代码;
通过逆向过程研究别人的应用,这个有点高大上了。真正的高手善于利用吸星大法迅速提升自己的实力,实在是居家旅行行走江湖修真者的必备功法啊。
10、iOS开发者的神通功法5—提高英语水平
一个修真者莫大的痛苦是,自己的面前摆着一门绝世神通,却TMD是火星文完全看不懂?对于iOS开发者(包括其它程序猿)来说,如果自己的英文水平不行,就等于手握万千绝世神通却半个字都不懂。所以,最起码要多花时间看看英文文档,教程,博客,论坛,不必刻意去学,而是在提高自己iOS功力的同时提高自己的英文水平。两者相辅相成,相得益彰。
11、产品发布
修真者在漫长的修炼过程中,需要消耗大量的资源。这些资源除了家族门派储备,强取豪夺,各种奇葩奇遇之外,就只有靠剩余价值交换的形式了。比如炼丹 师把自己的仙丹拿来换一门功法,炼器师把自己的法宝拿来换仙丹,有多余功法的修真者会拍卖功法换取能让自己修为一日千里的仙丹,等等。iOS开发者(我承认这部分有点扯~),特别是个人开发者不是神人,也要食人间烟火。所以辛辛苦苦开发的产品肯定是要上线发布,让更多人使用甚至购买的(或者让投资人买单)。因此一个真正的开发者也必须学会如何发布自己的产品,所以必须掌握以下知识:
a、设备测试:我的第一款iPad应用没经过设备测试你敢信?不过当时第一代iPad还没有T正式发布,是特殊历史时期的特殊做法,而且是得到苹果认可的。如今你这样做试试看?TestFlight: 就让身边的几个程序猿一起测测就算用户测试完成了?赶紧试试这个利器吧。
b、App Store发布:包括provisioning profile,code-signing,开发者入口
好了,一个iOS开发修真者在有了以上的根底以后,在成为高手的路上尽管还会有许多波折,但至少有了行进的方向,或者说有了指引。修真之路最重心智开启和毅力的锻炼,不论选用何种方法,不论有着何种方针,如果毅力不坚决,向道之心会遭到美女,懒散,文娱等各方面的影响,终究中道而去。
网汇聚众多优秀的专业设计师和服务商团队,随时为您提供IOS应用 Android应用 IPAD应用 微信公众平台开发 手机游戏开发 应用软件开发 Windowsphone Symbian应用 应用汉化等服务,欢迎上网。
1、Objective-C 语言
任何一个修真者都要从最基本也最痛苦的炼体开始。对Objective-C语言的学习可以对应修真者的炼体或者后天境界。经过后天境界的苦修,一个修真者可以轻松打败几个普通流氓,不过当十几个甚至更多人一拥而上时,还是赶紧逃命吧。欲学iOS开发,必先学习Objective-C! iOS开发中用到的主要编程语言就是Objective-C语言,虽然也可以使用C和C++语言混合编程,不过Objective-C语言是最核心的部分。其中又包括:
面向对象编程基础(类和继承,变量和方法的作用域,MVC基本概念,分类)方法和函数(消息,类定义和属性,与C/C++的混合编程)内存管理(strong/weak, ARC自动引用计数,自动释放对象)代码设计模式(Block块语句,Target/action,协议)UIKIT(视图层级,绘制事件,触摸事件,动画)多媒体(配置,AVFoundation, C语言的API)
2、核心iOS7类库
编程语言只是基础,真正的开发利器是iOS7的核心类库。掌握了Objective-C语言只是让你从一个普通人变成侠客,但是离真正的修真高手还有很长的路。从只懂得炼体的后天境界晋升到挥手间敌人灰飞烟灭的练气或者先天境界,就必须掌握核心iOS7类库。其中又包括:
相机和microphone、社交网络与分享、CoreData数据持久化、Foundation,又包括Application loop(应用循环),Threads(线程),Networking(网络)、MapKit,也就是如何使用地图、Passbook,也就是和移动支付系统的整合、CoreLocation,如何在茫茫人海之中找到你所爱的位置、Bluetooth,蓝牙模块,如果你要开发周边硬件设备,这是必不可少的、Notifications,消息推送,又包括Local本地和Push(APNS)推送、CoreMotion, 比如陀螺仪相关的东西、GameKit,和第三方游戏设备(手柄)相关的东西、SpriteKit,类似cocos2d的2D游戏引擎
3、第三方依赖库管理
晋升先天之后,一个修真者就脱离了低级趣味,成了修真队伍的真正成员。虽然自身对天地大道的感悟和修炼是根本,但如果有那么几件灵器、仙器甚至神器在手,无论是保护自身的护身法宝还是令敌人胆寒的攻伐之器,都可以让你在修炼的路上笑傲江湖。
对iOS手机应用开发的人来说,善于借助第三方类库的强大力量来实现产品的各种功能,就如同修真者手持神兵法宝一般,无往而不利。神器法宝多了也不好办,所谓 财不外露,拿着一大堆法宝在外面炫富是修真者大忌。这个时候一个能容纳万物的储物乾坤袋就成了修真者的梦想之物。好在有CocoaPods,它比修真者储 物袋更神奇的是,你只需使用CocoaPods,就可以自动将各种优秀的第三方类库包含在项目之中。一个iOS开发者如果不懂CocoaPods,简直就 是修真界的穷DS一枚。懂CocoaPods的iOS开发者不说立马晋升高富帅,起码也会成为中产阶层之一。
4、Xcode 5
修真者都喜欢天地灵气充足的修炼之地,iOS开发者也非常需要一个强大的开发环境帮助自己打理项目。寻找一个理想的修炼之地对于修真者是奢侈的,因此大量散修选择加入各种宗门或学院,否则万难有出头之日。对于iOS开发者则可以省掉这份烦恼,因为所有iOS开发者都可以免费享受最强大的iOS开发环境-Xcode 5。对于Xcode5的学习又包括:
项目管理:包括文件结构,导航,Build 设置,属性列表等、代码编辑器:包括如何高亮,查找,自动完成,查看文件,Assistant Editor等等。Interface Builder: 如今的Interface Builder(界面编辑器)是内置在Xcode中的,这部分又包括Storyboards和xib的使用,控件类型及属性设置,IBOutlet和IBAction,自定义类,Tag,视图文件结构等。代码调试工具:包括lldb,断点,日志等Instrumentation工具:包括内存泄露和CPU使用率的监控等。Git版本管理:包括repository的管理,branching和merging。
iOS开发者除了知道如何具体写代码,还要在思想上提升自己的档次,站在一个更高的角度看待项目的开发和管理。这个时候就需要了解一些软件工程的概念。
5、对于软件工程,需要掌握的内容如下:应用程序的架构:比如模块化和SOA,逻辑封装等敏捷过程:比如项目所有者和用户场景,迭代开发,高效沟通等。其中迭代开发步伐又包括测试和结对编程,CI和代码审阅,QA质量测试和调试。项目管理:比如项目规划和评估,工具和文档化,Licensing等。
6、iOS开发者的神通功法1-Tests测试
修真者乃逆天而为,其中所遇到的艰难险阻是常人难以理解和接受的。当自身实力到了一定的程度之后,就要承受天威的打击-各种雷劫,比如四九雷劫,六 九雷劫,九九雷劫,飞升时的万雷劫。不管你自身实力如何强大,肉身如何抗操,元气如何充盈,神魂如何逆天,在雷劫时一不小心就会永坠轮回。
在iOS开发时,不管我们如何努力熬夜,如何苦逼编码,到了测试的时候发现程序直接挂掉了,简直是亲者痛仇者呵呵的不可承受之重。因此一个有经验的iOS开发者往往会采用测试驱动开发的思路。
7、iOS开发者的神通功法2-Git版本控制
常言道,一人得道鸡犬升天。修真者在飞升之后往往会将自己的修炼资源留给家族后人或好友使用。一方面是因为基因的自私天性,另一方面则是因为希望通过这种方式让更多的追随者可以一同飞升,在更广阔的大千世界中可以携手打拼。iOS开发的独行侠时代已经过去了,很多团队中的产品或项目开发是协同进行的,即便是纯粹个人开发,也经常需要用到版本控制工具。因此,iOS开发者需要对Git版本控制有一定程度的了解。具体包括:
版本控制系统:其中又包括分布式VCS,Branch,Merge,DiffGitHub的使用:Fork和Pull requestsconfig: remotes和default behaviors。
8、iOS开发者的神通功法3—移动应用开发的独特性
开发者也是如此,虽然Web开发,PC端应用开发,移动应用开发并没有等级之分,但各自却有了完全不同的特点。ios开发工程师需要根据移动应用开发的独特性掌握相应的知识:HIG(Human Interface Guidelines):人机界面交互流量消耗的考虑:包含两个方面,一个是安装包的大小,另一个则是在使用过程中的流量消耗。多线程操作:比如上传下载文件之类比较耗时间的操作可以单独放在一个线程中,详细请参考:Grand Central Dispatch (GCD) Reference状态保存和恢复:让用户下一次进入应用时仍然进入此前所在的界面和状态。本地化:根据用户所在的地区选择对应的语言显示
9、iOS开发者的神通功法4—吸星大法-参考别人的源代码
无论是修炼武功还是修真,都有一个类似吸星大法的邪门功法,那就是把别人的功力占为己有。
在iOS中,同样有这样一门强大的功法,那就是参考别人的源代码。比吸星大法更神奇的地方是,参考别人的源代码是双赢的过程,不会让别人的功力下降,反而让大家在切磋的过程中共同进步。源代码的来源包括:
http://developer.apple.com中苹果官方的源代码;
http://github.com里面的源代码;
code4app,cocoachina等第三方网站中大家共享的源代码;
通过逆向过程研究别人的应用,这个有点高大上了。真正的高手善于利用吸星大法迅速提升自己的实力,实在是居家旅行行走江湖修真者的必备功法啊。
10、iOS开发者的神通功法5—提高英语水平
一个修真者莫大的痛苦是,自己的面前摆着一门绝世神通,却TMD是火星文完全看不懂?对于iOS开发者(包括其它程序猿)来说,如果自己的英文水平不行,就等于手握万千绝世神通却半个字都不懂。所以,最起码要多花时间看看英文文档,教程,博客,论坛,不必刻意去学,而是在提高自己iOS功力的同时提高自己的英文水平。两者相辅相成,相得益彰。
11、产品发布
修真者在漫长的修炼过程中,需要消耗大量的资源。这些资源除了家族门派储备,强取豪夺,各种奇葩奇遇之外,就只有靠剩余价值交换的形式了。比如炼丹 师把自己的仙丹拿来换一门功法,炼器师把自己的法宝拿来换仙丹,有多余功法的修真者会拍卖功法换取能让自己修为一日千里的仙丹,等等。iOS开发者(我承认这部分有点扯~),特别是个人开发者不是神人,也要食人间烟火。所以辛辛苦苦开发的产品肯定是要上线发布,让更多人使用甚至购买的(或者让投资人买单)。因此一个真正的开发者也必须学会如何发布自己的产品,所以必须掌握以下知识:
a、设备测试:我的第一款iPad应用没经过设备测试你敢信?不过当时第一代iPad还没有T正式发布,是特殊历史时期的特殊做法,而且是得到苹果认可的。如今你这样做试试看?TestFlight: 就让身边的几个程序猿一起测测就算用户测试完成了?赶紧试试这个利器吧。
b、App Store发布:包括provisioning profile,code-signing,开发者入口
好了,一个iOS开发修真者在有了以上的根底以后,在成为高手的路上尽管还会有许多波折,但至少有了行进的方向,或者说有了指引。修真之路最重心智开启和毅力的锻炼,不论选用何种方法,不论有着何种方针,如果毅力不坚决,向道之心会遭到美女,懒散,文娱等各方面的影响,终究中道而去。
网汇聚众多优秀的专业设计师和服务商团队,随时为您提供IOS应用 Android应用 IPAD应用 微信公众平台开发 手机游戏开发 应用软件开发 Windowsphone Symbian应用 应用汉化等服务,欢迎上网。
推荐