在上一讲中,介绍了什么是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.开发者证书。这项可选。

李洪强iOS开发之【零基础学习iOS开发】【01-前言】02-准备的更多相关文章

  1. 李洪强iOS开发之零基础学习iOS开发】【02-C语言】01-概述

    前面已经给大家介绍了iOS开发相关的一些基础知识,其实iOS开发就是开发iPhone\iPad上的软件,而要想开发一款软件,首先要学习程序设计语言.iOS开发需要学习的主要程序设计语言有:C语言.C+ ...

  2. 李洪强iOS开发之零基础学习iOS开发【02-C语言】03-关键字、标识符、注释

    上一讲中已经创建了第一个C语言程序,知道了C程序是由函数构成的,这讲继续学习C语言的一些基本语法.C语言属于一门高级语言,其实,所有的高级语言的基本语法组成部分都是一样的,只是表现形式不太一样.就好像 ...

  3. 李洪强iOS开发之【零基础学习iOS开发】【01-前言】01-开篇

    从今天开始,我就开始更新[零基础学习iOS开发]这个专题.不管你是否涉足过IT领域,也不管你是理科生还是文科生,只要你对iOS开发感兴趣,都可以来阅读此专题.我尽量以通俗易懂的语言,让每个人都能够看懂 ...

  4. 【零基础学习iOS开发】【转载】

    原文地址:http://www.cnblogs.com/mjios/archive/2013/04/24/3039357.html 本文目录 一.什么是iOS 二.主流手机操作系统 三.什么是iOS开 ...

  5. 【零基础学习iOS开发】【01-前言】01-开篇

    本文目录 一.什么是iOS 二.主流手机操作系统 三.什么是iOS开发 四.学习iOS开发的目的 五.学习iOS开发的前提 从今天开始,我就开始更新[零基础学习iOS开发]这个专题.不管你是否涉足过I ...

  6. 零基础学习iOS开发

    零基础学习iOS开发不管你是否涉足过IT领域,只要你对iOS开发感兴趣,都可以阅读此专题. [零基础学习iOS开发][02-C语言]11-函数的声明和定义 摘要: 在上一讲中,简单介绍了函数的定义和使 ...

  7. [iOS]关于零基础学习iOS开发的学习方法总结

    关于零基础学习iOS开发的学习方法总结 最近很多零基础来参加蓝鸥培训的学生经常会问到一些学习方法的问题,就如下我自己见过的好的学习方法一起讨论一下. 蓝鸥iOS开发技术的学习路线图 程序员的主要工作是 ...

  8. MongoDB实战开发 【零基础学习,附完整Asp.net示例】

    MongoDB实战开发 [零基础学习,附完整Asp.net示例] 阅读目录 开始 下载MongoDB,并启动它 在C#使用MongoDB 重构(简化)代码 使用MongoDB的客户端查看数据 使用Mo ...

  9. 零基础学习hadoop开发所必须具体的三个基础知识

    大数据hadoop无疑是当前互联网领域受关注热度最高的词之一,大数据技术的应用正在潜移默化中对我们的生活和工作产生巨大的改变.这种改变给我们的感觉是“水到渠成”,更为让人惊叹的是大数据已经仅仅是互联网 ...

随机推荐

  1. Linux C 程序 进程控制(17)

    进程控制 1.进程概述现代操作系统的特点在于程序的并行执行.Linux是一个多用户多任务的操作系统.ps .pstree 查看进程进程除了进程id外还有一些其他标识信息,可以通过相应的函数获得.// ...

  2. 将double类型的值保留几位小数

    1.第一个参数(3.1415926)是要处理的数值.第二个参数(1)为要保留的几位小数.第三个参数是按照“四舍五入”还是"直接取这一位的值"(MidpointRounding.To ...

  3. php取得当前访问url文件名的几种方法

    php下获取当前访问的文件名的几种方法.推荐函数:一是PHP获取当前页面的网址: dedecms用的也是这个哦. <?php //获得当前的脚本网址 function GetCurUrl() { ...

  4. linux 进程控制笔记

    进程创建 普通函数调用完成后,最多返回(return)一次,但fork/vfork会返回二次,一次返回给父进程,一次返回给子进程 父进程的返回值为子进程的进程ID,子进程的返回值为0 1.pid_t ...

  5. win2008修改最大远程桌面连接数

    win2008修改最大远程桌面连接数 运行——gredit.msc——管理模板——windows组件——远程桌面服务——远程桌面回话主机——连接——限制连接的数量——修改为999999

  6. C++实现数字媒体二维图像变换

    C++实现数字媒体二维图像变换 必备环境 glut.h 头文件 glut32.lib 对象文件库 glut32.dll 动态连接库 程序说明 C++实现了用glut画正方形,画三角形的功能.并附带放大 ...

  7. SqlServer里DateTime转字符串

    Select CONVERT(varchar(100), GETDATE(), 8):14:53:14 Select CONVERT(varchar(100), GETDATE(), 9): 06  ...

  8. linux xampp常见问题

    一.常见问题 1.安装xampp4linux后,只能本机(http://localhost)访问,局域网内其他机器无法访问 解答:在/opt/lampp/etc中修改httpd.conf,将Liste ...

  9. 数据结构(复习)---------字符串-----KMP算法(转载)

    字符串匹配是计算机的基本任务之一. 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD" ...

  10. vim分屏快捷键使用/增大/减小字体使用

    问题描述: vim分屏快捷键使用 问题解决:         (1)vim 分屏快捷键           (2)vim高度改变          (3)vim中增加和减少字体大小  使用快捷键Ctr ...