前言

由于大部分朋友对iOS开发还是有比较多的疑问,比如是不是一定要买iPhone和苹果笔记本才能做iOS开发?因此,这讲就为广大有意学习iOS开发的朋友们进行解惑。

一、什么是iOS开发

iOS是由苹果公司开发的手持设备操作系统,目前搭载这款操作系统的设备有:iPhone、iPad、iPod touch、iPad mini。也就是说,学习了iOS开发,就可以编写运行在iPhone上的应用程序。

二、学习iOS开发需要哪些准备

1.Objective-C

大家都知道,应用程序的开发都要用到编程语言,比如用Java开发android程序,而iOS开发的核心语言是Objective-C。因此,要想学习iOS开发,就必须先学习Objective-C这门语言。

2.Xcode

我们要掌握一门编程语言的话,都必须使用相应的开发工具进行学习和调试,比如用eclipse学习Java。至于Objective-C,我们可以使用苹果公司提供的开发工具---Xcode。

3.Mac OS X

* Xcode没有Windows版本的,只有Mac版本的,也就是只能跑在Mac OS X系统上。因此,你要先拥有Mac OS X系统才能使用Xcode进行Objective-C的学习和iOS开发。

* Mac OS X是苹果公司为Mac系列产品开发的专属操作系统,目前搭载这款操作系统的设备有:MacBook、iMac、Mac mini。

* 大概有3种途径可以获取Mac OS X系统:虚拟机、黑苹果、购买苹果设备。

1> 虚拟机

相信计算机人士都知道什么是虚拟机了。这里的虚拟机就是说在你的Windows系统上面模拟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系统,装好之后开机选择启动Mac OS X系统即可。这跟虚拟机是有本质区别的:虚拟机是同时跑两个系统,黑苹果只是跑一个系统。

优点:零成本,运行速度快。只要你有Mac OS X的镜像文件。当然,你要会装系统才行。

缺点:安装难度大,并不是所有的PC机都能顺利安装Mac OS X,因为苹果当初设计这款操作系统,是专门给Mac系列产品使用的。当然,也会有兼容性问题。不过,只是用作学习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。

4.调试设备

Xcode自带了iOS模拟器功能,因此我们可以将开发好的应用程序,运行到模拟器上进行测试,不一定要买iPhone\iPad进行调试。当然,真机和模拟器肯定是区别的,因此在发布应用程序之前肯定要进行真机测试。

5.开发者证书

如果你是想把开发好的iOS程序发布到App Store上去卖,或者把程序运行到真机(iPhone\iPad)上,那么就必须有iOS个人开发者证书。这个需要向苹果买,一年99$。如果纯粹是学习,不用买这个证书,一切开发都是免费的。

综上所述,学习iOS开发要准备的有:

1> 苹果电脑或者黑苹果主机

2> 安装开发工具Xcode

3> 真机(iPhone\iPad)。这项可选。

4> 开发者证书。这项可选。

三、iOS开发的学习难度如何

* 苹果提供的API非常强大,用简单几句代码就可以实现非常炫酷的效果,可以说苹果很为开发者着想。对比android,我个人觉得iOS会容易一些。

* 用我和周边朋友的经历来说:如果你有过其他语言的开发经验,而且能一心一意学习iOS、不走弯路,在半个月内上手iOS开发是完全没有问题的。

【Objective-C】02-Objective-C学习及iOS开发的准备的更多相关文章

  1. IOS开发初步

    由于工程实践项目的原因,得学习下IOS开发,今天才知道苹果09年才出的开发工具和开发包,也就是说,满打满算,现在顶多有5年IOS开发的工作经验.在我国2010年才火起来,因为那时候国内的iphone4 ...

  2. iOS开发中调试小技巧

    对于软件开发而言,调试是必须学会的技能,重要性不言而喻.对于调试的技能,基本上是可以迁移的,也就是说你以前在其他平台上掌握的很多调试技巧,很多也是可以用在iOS开发中.不同语言.不同IDE.不同平台的 ...

  3. iOS开发如何提高

    阅读博客 在现在这个碎片化阅读流行的年代,博客的风头早已被微博盖过.而我却坚持写作博客,并且大量地阅读同行的iOS开发博客.博客的文章长度通常在 3000字左右,许多iOS开发知识都至少需要这样的篇幅 ...

  4. iOS开发资源整理【01】

    一.网站 Code4App         开发者常用库分享网站 GitHub        git是一个优秀的分布式版本控制系统 stackoverflow    技术在线问答网站 CocoaChi ...

  5. iOS 开发调试技巧

    对于软件开发而言,调试是必须学会的技能,重要性不言而喻.对于调试的技能,基本上是可以迁移的,也就是说你以前在其他平台上掌握的很多调试技巧,很多也是可以用在iOS开发中.不同语言.不同IDE.不同平台的 ...

  6. ios开发之通知事件

    每天学习一点点,总结一点点,成功从良好的习惯开始! 昨天学习了ios开发中的关于通知事件的一些东西,在这里简单总结下,仅供初学者学习,更多的是怕我自己忘了,咩哈哈~~~~ 通知(notificatio ...

  7. ios 开发之本地推送

    网络推送可能被人最为重视,但是本地推送有时候项目中也会运用到: 闲话少叙,代码如下: 1.添加根视图 self.window.rootViewController = [[UINavigationCo ...

  8. iOS - 开发中调试小技巧

    对于软件开发而言,调试是必须学会的技能,重要性不言而喻.对于调试的技能,基本上是可以迁移的,也就是说你以前在其他平台上掌握的很多调试技巧,很多也是可以用在iOS开发中.不同语言.不同IDE.不同平台的 ...

  9. iOS开发调试技巧总结(持续更新中)

    作者:乞力马扎罗的雪  原文 对于软件开发而言,调试是必须学会的技能,重要性不言而喻.对于调试的技能,基本上是可以迁移的,也就是说你以前在其他平台上掌握的很多调试技巧,很多也是可以用在iOS开发中.不 ...

随机推荐

  1. easyui combobox设置只读属性

    $("#id").combobox('readonly',true); //只读 $("#id").combobox('readonly',false); // ...

  2. git log --oneline --graph的读法

    星号表明这个提交所在的分支: 最左边的直线表示当前分支的历史状态,从图看,当前分支HEAD是master分支 :提交历史是:8cfbb25<--d486463<--a88c595<- ...

  3. unity quaternion vector

    做脚印呢 做了曲面细分和decal两种 先用正交camera生成 高度图 采样uv由pos 从world到camera space生成 unity对tessellation的支持限制还是比较大的 只能 ...

  4. ArrayList源码深度解析

    jdk:1.8 一.先看看ArrayList类的整体概述, ArraList是基于动态数组实现的一种线性列表,这种基于动态数组的好处就是索引比较快,时间复杂度为O(1):但是对数据修改比较慢,因为需要 ...

  5. [转] copy_to_user和copy_from_user两个函数的分析

    在内核的学习中会遇到很多挺有意思的函数,而且能沿着一个函数扯出来很多个相关的函数.copy_to_user和copy_from_user就是在进行驱动相关程序设计的时候,要经常遇到的两个函数.由于内核 ...

  6. iOS 中 JSON 数据交换格式

         JSON (JavaScript Object Notation)是一种轻量级的数据交换格式. JSON 的详细教程,能够參见 JSON 中国:http://www.json.org.cn/ ...

  7. PHP的抽象类、接口的区别和选择[转载]

    区别: 1.对接口的使用是通过关键字implements.对抽象类的使用是通过关键字extends.当然接口也可以通过关键字extends继承. 2.接口中不可以声明成员变量(包括类静态变量),但是可 ...

  8. 数据採集器服务——Socket(今天才发现AES加解密代码跟贴的时候不一样,貌似乱码,不知什么情况)

    近期刚做的一个项目.关于 Socket TCP 通信. 需求方提供了一个 ARM 机器,及数据採集器,须要我做一个服务端与数据採集器进行交互. 目的: 数据採集器:定时将读取到的数据发送到服务端. 服 ...

  9. 重载delete时的那点事

    重载delete时的那点事 C++的异常处理机制就会自动用与被使用 的operator new匹配的operator delete来释放内存(补充一点:在operator new中抛出异常不会导致这样 ...

  10. Android 底部TabActivity(1)——FragmentActivity

    先看看效果图: 第一篇Tab系列的文章首先实现这样的风格的底部Tab:背景条颜色不变,我们是用了深灰的颜色,图标会发生对应的变化.当选中某个标签后该标签的背板会由正常的颜色变为不正常,哈哈,是变为加深 ...