首页 > 范文大全 > 正文

iPhone编程的第一步

开篇:润墨网以专业的文秘视角,为您筛选了一篇iPhone编程的第一步范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

在给大家描述了一番美好的iphone“钱”途,并介绍了必不可缺的IDP申请之后。这次我来给大家介绍一下如何开始我们的iPhone开发之路。

对于开发软件,开发环境的搭建是非常重要的一环。没有这个开发环境,即使有代码,也只是一些普通的文本文件而已。如果你还记得,在上期的文章中提到过两种开发环境,官方SDK(Software Development Kit 软件开发套件)和ToolChain。用官方SDK(后文简称SDK)编写的程序可以在App Store上出售,而ToolChain编写的却不能。由于这二者并非上期的重点,因此只是寥寥数笔带过了。本期我就带领大家详细的了解它们。

iPhone之路:官方&非官方

在详细讲述这两个开发环境之前,先做一点对比吧。首先看看在开发平台上的差异,SDK只能安装于苹果公司的Mac OS X 10.5(后面简称Leopard)版的操作系统之上。同时要求必须是Intel的CPU架构,苹果公司早期使用PowerPC的苹果电脑是无法安装iPhone SDK的。关于Leopard这个系统,我就不过多的描述了,只是习惯于Windows的开发人员。可能需要一点时间来适应。而ToolChain则可以工作于Windows、Linux、Leopard甚至可以运行在iPhone上。看到这里,也许有读者要问,那为什么还要选择SDK而不用ToolChain呢?我提到过,ToolChain开发的程序,是无法放到App Store上进行销售的。ToolChain是在黑客们的努力下才出现的,在一定程度上,有着不太光鲜的外衣。而且由于ToolChain是非官方产物,并不具备SDK所自带的IDE(Integrated Development Environment 集成开发环境)、模拟器以及一些其他的辅助类工具。因此个人而言,并不推荐使用ToolChain进行开发。但ToolChain既然是黑客们的杰作,那么就少不了一些特有的优点。ToolChain由于是直接从iPhone设备上获取的执行库和头文件信息,因此包含很多不被SDK允许的底层API(Application Programming Interface 应用程序接口)。虽然这些不被允许的API并不能在我们要放到App Store上销售的程序中使用,但其中的某些API还是可以给我们的开发提供一些思路的。另外,如果打算做一些类似来电防火墙等SDK无法实现的特殊应用程序时,ToolChain是唯一的选择。

小提示

Mac OS X 10.5其实早就可以安装在普通PC电脑上了,如果你还不知道如何安装,可以从/cfan/200907/inMAC.rar下载电子书。

iPhone编程第一步

先来说说SDK吧。我们可以从iPhone Dev Center (/iphone/)上获取到最新版的SDK。打开iPhone Dev Center的页面后,点击Log in按钮,如果之前申请了IDP账号的话,就使用你的IDP账号登录。如果没有申请过,则免费注册一个iPhone开发者账号。登录后,我们就可以看到,画面的左侧出现了SDK的相关内容(见图1)。

点击iPhone SDK for iPhone OS x.x.x,就可以开始SDK的下载了。保存SDK的安装包大约需要2GB的空间,因此在下载前请保证硬盘上有充足的剩余空间。并且由于Leopard特有的打包格式,最好不要在Windows里面下载该SDK ,因为有可能在你将这个安装包从Windows上复制到Leopard时出现无法正常使用的问题。下载回来的安装包是DMG格式的,可以认为是一种压缩包或镜像文件。在Leopard系统上双击即可加载。

双击其中的iPhone SDK.mpkg就可以看到安装界面了(见图2)。有下面这些组件可以选择进行安装。

①Developer Tool Essentials:IDE、附加工具以及编译使用的工具,这个组件是强制选择的。

②iPhone SDK:进行iPhone开发所必须的部分,包括头文件、链接库等部分,必须选择。

③System Tools:一些附加的系统工具,在诸如程序崩溃分析等情况下是需要的,强烈建议安装。

④UNIX Develop-ment Support:这个包括一些命令行的开发工具,推荐安装。

⑤Mac OS X 10.3.9 Support:这个是编译10.3.9版的操作系统程序所需要的,与我们的iPhone开发无关,可以不安装。

⑥WebObjects:这个是做Web App所必须的,是否安装可以看个人需要,并非必须的。

SDK是向下兼容的,换言之就是2.2.1的SDK包中会包含有2.0/2.1/2.2/2.2.1这4个版本的SDK。这里的SDK和iPhone的固件是对应的,比如要iPhone固件2.0到2.2.1都可使用,则无论使用哪个版本的SDK,都要选择2.0进行最后的编译(见图3)。

这样,我们的SDK开发环境就算搭建好了。但到这里,还只能让我们的程序运行在模拟器上。也就是在MAC系统中,模拟iPhone或iPod Touch的运行环境。如果想在iPhone或iPod Touch设备上看到我们的程序,还需要上期介绍的99美元或299美元的IDP账号来配合。

小提示

看了前文对于ToolChain的描述,也许有些读者对这个开发环境有些兴趣,也许有些读者一时间无法使用Leopard来安装SDK。那么可以试试ToolChain。不过由于部署起来相对比较复杂(需要较多的命令行操作,并且中间未必一帆风顺),我在这里就不做出详细的介绍了。有兴趣的读者可以访问ToolChain的页面/p/iphone-dev,参考/p/iphone-dev/wiki/Building上面的编译说明进行部署。

让iPhone程序真正运行起来

现在,不管读者选择了SDK还是ToolChain,我们都已经准备好了一个可用的开发环境。回到之前咱们下载SDK的页面,那就是苹果公司的iPhone开发者中心(简称IDC)。在IDC内,有着很多的API、控件使用指南,各种类库的描述。对于那些购买了IDP账号的些朋友,登录IDC后,会看到增加了iPhone Developer Program项,点击Program Portal进入后,我们会看到一个新的页面(见图4)。整个IDP的设置流程要是Certificates(证书)Devices(设备)App IDs(程序ID) Provisioning(配置文件)Distribution(程序),可以通过how to了解到详细的过程。

小提示

①由于模拟器天生有点小残疾, 拨打电话、重力感应、摄像头的使用、录音功能以及复杂的手指操作都是无法模拟的,而GPS在模拟器上也只会给出一些固定信息。因此这类程序只能在iPhone设备上运行和调试。

②由于iPhone设备上的程序对于运行时的用户权限有比较严格的限制,而模拟器上并不是一样的严格,因此有些文件访问的操作也许在模拟器上可以做到,而在iPhone设备上是行不通的。

③也许你的程序在模拟器上可以运行的很流畅,但到了iPhone上运行效率可能会有些折扣。

④在iPhone设备上,你的程序可能会由于来电、短信等因素而做出特殊的响应,这些在模拟器上是无法模拟出来的。

Cocoa China是国内目前最大,学习及研讨气氛最好的Mac/iPhone开发者社区。本期的采访对象lvyile,不但是《电脑爱好者》的忠实读者,而且还是这个社区上的一名活跃分子。今天我们就来采访一下这个年轻的小伙子。

被采访者:lvyile

职业:自由职业者/团队创业

能否给读者讲讲是什么吸引你投入iPhone的开发呢?美好的“钱”景?还是由于对苹果公司,或iPhone这个平台本身的兴趣?

lvyile:其实说来很简单,小僧(由于lvyile留着光头, 所以称呼自己叫小僧)投身iPhone开发主要是因为iPhone的内核是Unix,纯粹的Unix。现在很多年轻的开发者对于Unix的了解相对都比较少,而我却被Unix的魅力所吸引,因此可以说,这是我投身iPhone开发的主要原因。

很出乎意料之外的答案。既然对Unix十分钟爱,那么应该是有过C语言的开发经历吧。在从C语言转到Objective-C(iPhone的编程语言,之前安装的SDK中就包含了Objective-C)时,有没有觉得什么特别困难的地方呢?

lvyile:小僧认为,自己当初最大的困难就是Objective-C的相关学习资料太少。相对来说,现在的开发者很幸福,自从2008年10月1日,IDP废除了NDA(Non-Disclosure Agreement,“不泄密协议”)后,学习用的资料、文档和示例代码等就像雨后春笋一样的出现!因此对于现在的开发者来说,只要能静心去钻,去投入,是没有什么困难的。

确实如此,我最初研究iPhone开发时,也是苦于只能读英文资料,虽然说英文资料并不难懂,但总也是没有母语的资料看着亲切。那么对于现在越来越多的iPhone开发者,Lvyile作为Cocoa China开发者社区上的元老及活跃分子,有没有什么意见或建议给他们呢?

lvyile:我觉得作为一个新加入iPhone开发队伍的开发者,只要多关注两个站点就可以了。对于愿意阅读英文资料的朋友,可以去/iphone,主要看看Getting Start Videos和Getting Start Documents。而对于偏向中文的开发者,请来Cocoa China最近新开的wiki看看吧(/wiki/index.php?title=首页)。另外,咱们国内有一个很好的网站,叫做apple4.us,就是小僧经常上去充电的地方,在这里推荐给大家!apple4.us/