在上一讲中,介绍了什么是iOS开发。说简单一点,iOS开发,就是开发运行在iPhone或者iPad上的软件。这么一说完,应该有很多人就会产生一些疑惑,比如学习iOS开发是不是一定要买iPhone?需不需要买苹果电脑呢?学软件开发是不是一定要计算机专业的?因此,在这讲中,我会为广大有意学习iOS开发的朋友们进行解惑,说明一下学习iOS开发究竟需要那些准备。
一、程序设计语言
上一讲已经说到:要想开发一款软件,首先得学习一些相应的程序设计语言。至于iOS开发,需要学习的语言主要有:C、C++、Objective-C。
二、是否需要计算机专业知识
可能很多人有这样的疑问:学习编程一定得是计算机专业的么?这个不一定。有很多程序员以前都不是计算机专业的,我身边有很多这样的例子。有的在大学里是学物流管理的、学外语的、学金 融的,等等,其实我也不是计算机专业的。也有一些人是从其他行业转过来的,比如以前是修空调的、剪发的、当老师的,等等,他们现在都混得很好。只要你有兴 趣、能吃苦、有拿高薪的欲望,进军iOS开发行业是没问题的。至于计算机专业知识,不要求精通,你会一些电脑的基本操作(复制、粘贴、剪切)、会上网、会打字就行了。当然,你还得有一颗会思考问题的脑袋,呵呵。
三、是否要英文很好
有人听说程序员写出来的代码都是全英文,那做软件开发是不是一定要有很好的英文功底呢?这个也是不一定的,如果你不是进入外企的话,要求不高。
1.编程中用到的英文都是那些很常见的又简单的,比如YES、NO、if、else、for、public等等
2.我身边有很多英文很烂的人,但是他们写出来的代码是一流的。
其实只要你认得常见的几个英文单词、能认出26个英文字母和10个阿拉伯数字就行了
四、开发工具
想要开发出一款实用的好软件,是个不小的工程,因此代码量肯定是巨大的,可能是几万行或几十万行甚至是上百万行。为了节省开发周期、提高开发效率,我们一般会借助相应的开发工具进行软件开发。如果你觉得你很牛X,你完全可以用记事本来写代码,不过我觉得这并不叫牛X,应该叫傻X。就好比,有免费的高速WIFI你不用,却坚持要使用GPRS来浪费手机流量。补充一点,不要被我刚才所说的“几百万行”代码吓到了哈,软件开发的主流模式是团队合作,并非个人英雄主义,也就是大家一起写代码,并不是让你一个人写完整个软件项目的所有代码,这也不现实。
接下来再介绍一下开发工具的常见作用
1.语法检测
大家在学生时代的时候都已经知道:像汉语、英语、法语等语言,都有它们自己的语法,如果你乱写一通,那就会有语法错误,考试就落个鸭蛋。程序设计语言也是一样的,C语言有C语言的语法,C++有C++的语法。如果你写的C语言代码不符合C语言的语法,那么你的代码不可能运行成功。只有当整个软件项目中的所有代码都没有语法错误的时候,这个软件才有可能运行成功。而开发工具中有个叫做“编译器”的工具,编译器具备了语法检测的功能,它会明确地告诉你第几行代码有语法错误,而且会详细指出范的是什么语法错误。如果你用记事本写代码,根本无法确定你的代码是否有语法错误。
2.指令提示
英语中有很多的单词,汉语中有很多的汉字。而程序设计语言呢,它包含了很多的指令,在写代码过程,我们难免会忘记一些指令的名称。不过幸运的是,开发工具有非常好用的指令提示功能。比如,我本来想写一个叫做printf的指令,但是我只记得这个指令是以字母“p”开头的。这个时候,我一般会敲一个字母"p",然后开发工具就会弹出一个提示框,列出所有以字母“p”开头的指令:
然后,我们就可以从列表框中选择需要使用的指令。
3.资源管理
软件项目一做大,代码量肯定也多,如果你把所有的代码都写到一个文件中,那么这个文件将会被撑地生不如死,而且也不方便日后的代码维护。因此,我们一般会将功能不同的代码写到不同的文件中,这样的话,项目中就会有很多代码文件,我们一般称这些代码文件为“源代码文件”。再者,项目中肯定需要用到一些图片资源、音频资源甚至是视频资源。所以,项目中会有很多杂七杂八的文件,开发工具可以帮助管理项目中的所有文件,为不同类型的文件进行分类。
4.调试程序
在开发过程中,我们肯定需要不断地对写好的代码进行测试,把代码运行到手机上看看效果,这个代码测试过程,我们称之为“调试”。开发工具具备了代码调试的功能,也就是可以帮助我们将代码运行到手机上。
5.打包项目
在整个软件项目开发完毕后,代码也都测试通过了,我们应该将项目打包一个软件安装包,发布出去供用户下载使用。开发工具具备了打包软件的功能。
开发工具还有很多的功能,这里说的只是冰山一角。再者,开发不同平台的软件所使用的开发工具是不一样的,比如开发android应用程序,一般会使用一款叫eclipse的开发工具;而开发iOS应用程序呢,则使用苹果官方提供的开发工具Xcode。一开始我还在想,为啥不叫iCode呢?这个纯属玩笑。
五、开发环境
1.iOS的开发环境
前面已经说到,开发不同平台的软件所使用的开发工具是不一样的,而开发工具就决定了开发环境。比如,用来开发android程序的eclipse,它有很多个版本,能运行在Win7、linux、mac等系统上,那就意味着在前面所说的3种系统环境下,我们都可以使用eclipse开发android程序。而我们用来开发iOS程序的开发工具Xcode,它只有mac版本,只能运行在mac系统上,也就是说,我们只能在mac系统上开发iOS程序,不能在Win7等其他系统上开发iOS程序。
2.什么是mac系统
mac系统的全称是Mac OS X,它是苹果公司为Mac系列产品开发的专属操作系统,属于电脑操作系统,目前搭载这款操作系统的设备有:MacBook、iMac、Mac mini。
六、Mac OS X的获取途径
前面已经说到,必须在Mac OS X系统下,才能使用Xcode开发iOS程序。怎样才能拥有这个系统呢?如果我们想在电脑上装个Win7,那是非常简单的事情,拿个盗版光碟就搞定了,在天朝从来就不怕没有免费的软件用。而苹果当初开发Mac OS X这个系统,是专门给苹果电脑使用的,其他电脑要想装上这个系统,没这么简单。那难道就一定要有苹果电脑才能有这个系统么?其实还有其他途径,接下来我简单介绍下。
* 大概有3种途径可以获取Mac OS X系统:虚拟机、黑苹果、购买苹果设备。
1.虚拟机
相信计算机人士都知道什么是虚拟机。这里的虚拟机就是说在你的Windows系统(比如Win7)上面模拟Mac OS X的环境,把Mac OS X系统运行起来,一般可以使用VMWare这个软件实现。
优点:零成本。只要你在Windows上装好VMWare,下载个Mac OS X的镜像安装文件,再通过VMWare安装Mac OS X系统即可。
缺点:运行速度慢、对机器性能要求高、有兼容性问题。速度慢是因为你的机器要同时跑两个系统:是在运行Windows的基础上再运行Mac OS X。
2.黑苹果
黑苹果就是直接在你的PC机(普通电脑)上,像安装XP或Win7一样安装一个Mac OS X系统。如果你的电脑上本来就已经有个Win7,那么装好Mac OS X之后就会变成传说中的双系统,到时开机选择启动Mac OS X系统即可。这跟虚拟机是有本质区别的:虚拟机是同时跑两个系统,黑苹果同一时刻只跑一个系统。
优点:零成本,运行速度快。只要你有Mac OS X的镜像安装文件,就可以安装。当然,你要会装系统才行。
缺点:安装难度大,并不是所有的PC机都能顺利安装Mac OS X,因为苹果当初设计这款操作系统,是专门给Mac系列产品使用的,如果随便一台电脑都可以轻松装上Mac OS X,那这个“专门”就没有价值了。当然,黑苹果会有兼容性问题,毕竟是盗版货。不过,只是用作学习iOS开发的话,就已经足够了。
3.购买苹果设备
苹果的设备默认就是支持Mac OS X的,不过价格都比较昂贵,动不动就可能上万了。在苹果设备里面,又可以分3种:
1> iMac:传说中的一体机,一般都是上万RMB的。
2> MacBook:苹果笔记本,它分MacBook Pro和Mac Book Air,做开发最好选择Pro,Air纯属装B人士使用(开玩笑)。Pro的价格至少7K。
3> Mac mini:月饼盒这么大的主机。它只是个主机,至于显示器、鼠标、键盘等,随便买就行了,不要求是什么苹果键盘、苹果鼠标。
优点:运行速度快,无兼容性问题。
缺点:成本高。
最后说一下个人建议:如果经济条件好的话,直接买苹果设备就行了,比如MacBook Pro;如果经济条件有限,装个黑苹果或者去淘宝买个黑苹果主机,也才2-3k。
Xcode自带了iOS模拟器功能(iOS模拟器就是可以在电脑上模拟iPhone的硬件环境,相当于在电脑上用iPhone一样),因此我们可以将开发好的应用程序,运行到模拟器上进行测试,不一定要买iPhone\iPad进行调试。当然,真机和模拟器肯定是区别的,因此在发布应用程序之前肯定要进行真机测试。
八、开发者证书
- 如果你想利用Xcode把程序运行到真机(iPhone\iPad)上,那么就得向苹果购买iOS开发者证书,价格是至少99$。
- 如果只是将程序部署到模拟器上,不进行真机调试,就不用买这个证书,一切开发都是免费的。
- 其实,也可以去淘宝买一个盗版的开发者证书,才50¥每年。
九、总结
综上所述,学习iOS开发要准备的有:
1.苹果电脑 或者 黑苹果主机
2.安装开发工具Xcode
3.真机(iPhone\iPad)。这项可选。
4.开发者证书。这项可选。