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系统下,才能使用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开发系列--Swift语言
概述 Swift是苹果2014年推出的全新的编程语言,它继承了C语言.ObjC的特性,且克服了C语言的兼容性问题.Swift发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在 ...
- iOS开发系列--打造自己的“美图秀秀”
--绘图与滤镜全面解析 概述 在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益于它强大的开发框架.今天我们将围绕iOS中两大图形.图像绘图框架进行介绍:Quartz ...
- iOS开发之再探多线程编程:Grand Central Dispatch详解
Swift3.0相关代码已在github上更新.之前关于iOS开发多线程的内容发布过一篇博客,其中介绍了NSThread.操作队列以及GCD,介绍的不够深入.今天就以GCD为主题来全面的总结一下GCD ...
- 总结iOS开发中的断点续传那些事儿
前言 断点续传概述 断点续传就是从文件赏赐中断的地方重新开始下载或者上传数据,而不是从头文件开始.当下载大文件的时候,如果没有实现断点续传功能,那么每次出现异常或者用户主动的暂停,都会从头下载,这样很 ...
- iOS开发系列文章(持续更新……)
iOS开发系列的文章,内容循序渐进,包含C语言.ObjC.iOS开发以及日后要写的游戏开发和Swift编程几部分内容.文章会持续更新,希望大家多多关注,如果文章对你有帮助请点赞支持,多谢! 为了方便大 ...
- iOS开发系列--App扩展开发
概述 从iOS 8 开始Apple引入了扩展(Extension)用于增强系统应用服务和应用之间的交互.它的出现让自定义键盘.系统分享集成等这些依靠系统服务的开发变成了可能.WWDC 2016上众多更 ...
- iOS开发系列--Swift进阶
概述 上一篇文章<iOS开发系列--Swift语言>中对Swift的语法特点以及它和C.ObjC等其他语言的用法区别进行了介绍.当然,这只是Swift的入门基础,但是仅仅了解这些对于使用S ...
- iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总
--系统应用与系统服务 iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用 ...
- iOS开发系列--通知与消息机制
概述 在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知机制就可以告诉用户此时发生的事情.iOS中通知机制又叫消息机制,其包括两类:一类是本地 ...
- iOS开发系列--地图与定位
概览 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式.例如你到了一个 ...
随机推荐
- [RabbitMQ]Error: unable to connect to node rabbit@compute1: nodedown(CentOS7.0)
今天在搭建OpenStack的时候需要安装RabbitMQ,可是使用yum install rabbitmq-server安装之后,按照OpenStack官方提供的文档修改guest用户密码的时候却出 ...
- tomcat 配置项目
tomcat\conf\Catalina\localhost 下面存在项目配置文件信息,emas.xml 表示你eclipse中有个emas项目, 还有其他的项目xml.
- ios文本常见属性
文本属性Attributes 1.NSKernAttributeName: @10 调整字距 kerning 字距调整 2.NSFontAttributeName : [UIFont systemFo ...
- 通过自定义注解反射生成SQL语句
----------------------------------------Program.cs---------------------------------------- using Sys ...
- 如何在Eclipse中开发并调试自己的插件(或者说如何将自己的代码插件化)
Setting up Eclipse to create and debug plugins for ImageJ 最近在做一个关于卫星遥感全链路仿真的项目,由于项目是基于ImageJ开发,而Imag ...
- CentOS 配置防火墙操作实例(启、停、开、闭端口)CentOS Linux-FTP/对外开放端口(接口)TomCat相关
链接地址:http://blog.csdn.net/jemlee2002/article/details/7042991 CentOS 配置防火墙操作实例(启.停.开.闭端口): 注:防火墙的基本操作 ...
- C++ Primer 读书笔记: 第9章 顺序容器
第9章 顺序容器 引: 顺序容器: vector 支持快速随机访问 list 支持快速插入/删除 deque 双端队列 顺序容器适配器: stack 后进先出栈 queue 先进先出队列 priori ...
- 从C++strStr到字符串匹配算法
字符串的匹配先定义两个名词:模式串和文本串.我们的任务就是在文本串中找到模式串第一次出现的位置,如果找到就返回位置的下标,如果没有找到返回-1.其实这就是C++语言里面的一个函数: extern ch ...
- leetcode Search in Rotated Sorted Array python
#Suppose a sorted array is rotated at some pivot unknown to you beforehand. #(i.e., 0 1 2 4 5 6 7 ...
- npm 安装参数中的-save和 -save-dev
当你为你的模块安装一个依赖模块时,正常情况下你得先安装他们(在模块根目录下npm install module-name),然后连同版本号手动将他们添加到模块配置文件package.json中的依赖里 ...