Phone 开发基础教程之

在开始编写iPhone软件之前,需要做一些准备工作。对于初学者,需要一台运行Leopard(OS X 10.5.3或更高版本)的基于Intel的Macintosh计算机。2006年之后上市的任何Macintosh计算机(不管是笔记本还是台式机)应该都符合要求。

  无需使用具备顶级配置的计算机,MacBook或Mac Mini就能够出色地完成任务。但是,对于较早且运行速度较慢的计算机型号,进行RAM升级能够获得较大的性能提升。

  你还需要注册成为iPhone开发人员。只有完成了这一步,苹果公司才允许下载iPhone SDK(软件开发工具包)。

  要进行注册,请访问http://developer.apple.com/iphone/(中文网站为 http://www.apple.com.cn/ developer/iPhone/,如图所示),该页面应该与图中显示的页面类似。页面中提供了最新且功能最强大的iPhone SDK的下载链接。单击该链接将进入包含3个选项的注册页面。

  最简单(而且免费)的选项是单击Download the Free SDK按钮。页面将提示输入Apple ID。使用你的Apple ID登录。如果还没有Apple ID,请单击Create Apple ID按钮,创建一个Apple ID,然后再登录。登录之后,将进入iPhone开发主页面。其中不仅有SDK的下载链接,还提供了各类文档、视频和示例代码等的链接,所有这些资源都能 帮你进行iPhone应用程序开发。

  

  iPhone SDK中包含的一个最重要的元素是Xcode,它是苹果公司的IDE(集成开发环境)。Xcode提供了各种实用工具,用于创建和调试源代码,编译应用程序以及调优应用程序性能。学习完本书,你将会迷恋上Xcode!

  这个免费的SDK还包含一个仿真器,它支持在Mac上运行大多数iPhone程序。这对于学习如何编写iPhone程序极其有用。但是,免费选 项不支持将应用程序下载到实际的iPhone(或iPod Touch)中。此外,它也不支持在苹果公司的iPhone App Store上分发应用程序。要实现这些功能,需要使用另外两个下载选项,它们不是免费的。

  说明 仿真器不支持依赖于硬件的特性,比如iPhone的加速计或摄像功能。要支持这些特性,需要使用其他选项。

  标准版程序的价格为99美元。它提供了全面的开发工具、资源和技术支持,支持通过苹果公司的App Store分发应用程序,并且最重要的是,支持在iPhone上(而不只是在仿真器上)测试和调试代码。

  企业版程序的价格为299美元,可供企业开发专用的、内部的iPhone和iPod Touch应用程序。

  有关这两种程序的详细信息,请访问http://developer.apple.com/iphone/program/。

  由于iPhone是一种始终连网的移动设备,并且使用的是其他公司的无线基础设施,因此苹果公司对iPhone开发人员的限制比对Mac开发人员多得多,Mac开发人员无需经过苹果公司的审查或批准就能够编写和分发程序。

  苹果公司添加这些限制,更多的是为了尽量避免分发恶意或效率低下的程序,因为这类程序可能降低共享网络的性能。开发iPhone应用程序似乎麻 烦不少,但苹果公司在简化开发过程方面付出了巨大努力。还应该提及的是,99美元的价格比微软公司的软件开发IDE ——Visual Studio的价格低得多。

  另外,很明显,你还需要一部iPhone。虽然大部分代码都可以通过iPhone仿真器进行测试,但并非所有程序都是如此。一些应用程序需要在实际的iPhone上进行全面测试,然后才能分发给公众。

  说明 如果要注册标准版或企业版程序,你应该立即注册。批准过程可能需要一些时间,并且通过批准之后才能在iPhone或iPod Touch上运行应用程序。但是不必担心,前几章中的所有项目以及本书中的大多数应用程序,都可以在iPhone仿真器上运行。

  学习本文应该具备一定的编程知识。你应该理解面向对象编程的基础知识,例如,了解对象、循环和变量的含义,还应该熟悉Objective-C编 程语言。 SDK中的Cocoa Touch是本书使用的主要工具,它使用的是Objective-C 2.0编程语言,但是如果不了解Objective-C语言的新增特性也没有关系。我们将重点介绍要使用的2.0语言特性,并解释其工作原理和使用它的原 因。

  你还应该熟悉iPhone本身。就像在任何其他平台中编写应用程序一样,你需要熟悉iPhone的各种特性,并了解iPhone界面以及iPhone程序的外观。

  还不熟悉Objective-C?

  如果你从未使用Objective-C编写过程序,那么以下资源有助于你了解该语言。

请参看iPhone开发资料之Objective-C语言简介:http://tech.it168.com/a2009/0505/274/000000274996.shtml

  或者,阅读由Mac编程专家Mark Dalrymple和Scott Knaster撰写的Learn Objective-C on the Mac一书,该书浅显易懂,是学习Objective-C基础知识的优秀图书:

  http://www.apress.com/book/view/9781430218159

  接下来,访问Apple iPhone开发中心网站并下载The Objective-C 2.0 Programming Language一书的电子版,该书深入浅出地介绍了Objective-C 2.0的方方面面,是一本优秀的参考指南:

  http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/ObjectiveC

  注意,需要登录才能访问此文档。

  编写iPhone应用程序有何不同

  如果从未使用过Cocoa或它的前期产品NextSTEP,那么你可能会发现Cocoa Touch(用于编写iPhone应用程序的应用程序框架)稍显另类。它与其他常用应用程序框架(如用于构建.NET或Java应用程序的框架)之间存在 一些基本差异。你起初可能会有点不知所措,但不必担心,只要勤加练习,就可以掌握其中的规律。

  如果你具备使用Cocoa或NextSTEP编程的经验,则会发现iPhone SDK中有许多熟悉的身影。其中的许多类都是从用于Mac OS X开发的程序版本中原样借鉴过来的,一些类即便存在不同,它们也遵循相同的基本原则,并使用类似的设计模式。

  无论你的知识背景如何,都需要谨记iPhone开发与桌面应用程序开发之间的重要差异。

  只有一个正在运行的应用程序

  除了操作系统之外,任何时候iPhone上都只能运行一个应用程序。随着iPhone内存的增大、处理器的增强,这一点在未来可能会发生变化。但是在目前,在执行代码时,你的应用程序将是唯一正在运行的程序。若你的应用程序不是用户正在交互中的,那么它不会起作用。

  只有一个窗口

  在桌面及笔记本操作系统中,多个程序可以同时运行,并且可以分别创建和控制多个窗口。而iPhone则有所不同,它只允许应用程序操作一个“窗口”。应用程序与用户的所有交互都在这个窗口中完成,而且这个窗口大小就是iPhone屏幕的大小,是固定的。

  受限访问

  计算机上的程序可以访问启动它们的用户能够访问的任何内容,而iPhone则严格限制了应用程序的权限。你只能在iPhone为应用程序创建的文件系统中读写文件。此区域称为应用程序的沙盒,应用程序在其中存储文档、首选项等需要存储的数据。

  应用程序还存在其他方面的限制。举例来说,你不能访问iPhone上端口号较小的网络端口,或者执行台式计算机中需要根用户或管理员权限才能执行的操作。

  有限的响应时间

  由于其使用方式特殊,iPhone及其应用程序需要具备较快的响应时间。启动应用程序之后,需要打开应用程序,载入首选项和数据,并尽快在屏幕 上显示主视图,这一切要在几秒之内发生。只要应用程序在运行,就可以从其下方拖出一个菜单条。如果用户按主页(home)按钮,iPhone就会返回主 页,并且用户需要快速保存一切内容并退出。如果未在5秒之内保存并放弃控制,则应用程序进程将被终止,无论用户是否已经完成保存。

  因此,你在设计iPhone应用程序时需要注意这一点,以确保用户退出时不会丢失数据。

  有限的屏幕大小

  iPhone的屏幕显示效果非常出色,从它推出直到现在,它一直是消费者设备上分辨率最高的屏幕。但是,iPhone的显示屏幕并不大,你施展 的空间要比现代计算机小很多,仅有480×320像素。而在撰写本书时,苹果公司最便宜的iMac支持 1680×1050像素,最便宜的笔记本电脑MacBook支持1280×800像素。而苹果公司最大的显示器,30英寸的Cinema Display,支持2560×1600像素。

  有限的系统资源

  阅读本书的任何资深程序员可能都会对128 MB内存、4 GB存储空间的机器嗤之以鼻,因为其资源实在是非常有限,但这种机器却是真实存在的。或许,开发iPhone应用程序与在内存为48 KB的机器上编写复杂的电子表格应用程序不属于同一级别,二者之间没有可比性,但由于iPhone的图形属性和它的功能,所以其内存不足是非常容易出现 的。目前上市的iPhone具备128 MB物理内存,当然这还会随时间不断增长。内存的一部分用于屏幕缓冲和其他一些系统进程。通常,大约一半内存将留给应用程序使用。

  虽然64 MB对于这样的小型计算机可能已经足够了,但谈到iPhone的内存时还有另一个因素需要考虑:现代计算机操作系统,如Mac OS X,会将一部分未使用的内存块写到磁盘的交换文件中。这样,当应用程序请求的内存超过计算机实际可用的内存时,它仍然可以运行。但是,iPhone OS并不会将易失性内存(如应用程序数据)写到交换文件中。因此,应用程序可用的内存量将受到电话中未使用物理内存量的限制。

  Cocoa Touch提供了一种内置机制,可以将内存不足的情况通知给应用程序。出现这种情况时,应用程序必须释放不需要的内存,甚至可能被强制退出。

  缺少Cocoa工具

  如果你在接触iPhone之前有过Cocoa方面的经验,那么你过去习惯使用的一些工具在iPhone中已经不可用了。iPhone SDK不支持Core Data或Binding。我们之前已经说过,Touch使用的是Objective-C 2.0,但该语言中的一个关键特性在iPhone中并不可用:Touch不支持垃圾收集。

  新属性

  前面已经说过,Touch缺少Cocoa的一些功能,但iPhone SDK中也有一些新功能是Cocoa所没有的,或者至少不是在任何Mac上都可用的。iPhone SDK为应用程序提供了一种定位方法,即使用Core Location确定电话的当前地理坐标。iPhone还提供了一个内置的摄像和照片库,并且SDK允许应用程序访问这两者。iPhone还提供了一个内 置的加速计,用于检测iPhone的持有和移动方式。

  与众不同的方法

  iPhone没有键盘和鼠标,这意味着它与用户的交互方式与通用的计算机截然不同。所幸的是,大多数交互都不需要你来处理。举例来说,如果在应用程序中添加一个文本字段,则iPhone知道在用户单击该字段时调用键盘,而不需要编写任何额外的代码。

  准备开始吧

  iPhone是一款全新的、令人难以置信的计算平台,是轻松开发的利器。编写iPhone应用程序将成为一种全新的体验,这种体验与之前你使用 过的任何平台都不同。所有看似熟悉的功能都具有其独特的一面,但随着深入体会本书中的代码,你将能把这些概念紧密联系起来并融会贯通。

  应该谨记,本书中的练习并不是一份检验清单,似乎完成这些练习之后,你就自动具有了iPhone开发专家的资格。在继续下一个项目之前,确保已经理解了这些概念和原理。不要害怕修改代码。多多尝试并观察结果是在Touch环境中克服编码困难的最佳方法。

  如果你已经安装了iPhone SDK,请继续阅读此系列文章。如果还没有,请立即安装iPhone SDK。然后开始iPhone之旅!

iPhone 开发基础教程相关推荐

  1. iPhone开发基础教程笔记(二)--第三章 处理基本交互

    第三章 处理基本交互 本章将编写一个稍微复杂的应用程序,他有两个按钮和一个标签.当用户按下任一按钮时,标签的文本将随之变化 3.1 模型-视图-控制器泛型 首先,让我们了解一些基本概念.Cocoa T ...

  2. 绘制对象iPhone开发基础教程 笔记

    每日一贴,今天的内容关键字为绘制对象 1. 虚拟内存 iPhone OS其实不会将易掉性内存(如应用程序数据)写到交换文件,因此应用程序可用内存量将受到更多的制约. Cocoa Touch供给一种内置 ...

  3. iPhone开发基础教程笔记(十二)--第十二章 使用Quartz和OpenGL绘图

    第十二章 使用Quartz和OpenGL绘图 有时应用程序需要能够自定义绘图.一个库是Quartz 2D,她是Core Graphics框架的一部分:另一个库是OpenGL ES,她是跨平台的图形库. ...

  4. 《iPhone开发基础教程》第13章 我在哪里?使用Core Location定位功能

    Core Location可以利用三种技术实现定位:GPS.蜂窝基站三角网定位(cell tower triangulation)和Wi-Fi定位服务(WPS). GPS是最精确的,但在第一代iPho ...

  5. Iphone开发基础教程 (7章 标签栏与选取器)--读书笔记

  6. phone开发基础教程

    Iphone开发基础教程>第九章 导航控制器和表视图(2009-08-11 12:06:17) 这一章比较庞大,里面的例子也比较多,我看书和实践一共花了我一周的时间,然后自己又摸索构建一个Vie ...

  7. iPhone 4与iPad开发基础教程

    iPhone 4与iPad开发基础教程 创造销售奇迹的经典著作 针对iOS SDK新特性全面改版 从这里,拥抱软件开发的未来 基本信息 原书名:Beginning iPhone 4 Developme ...

  8. Xamarin图表开发基础教程(13)OxyPlot框架支持的其它图表

    Xamarin图表开发基础教程(13)OxyPlot框架支持的其它图表 除了以上提到的图表外,OxyPlot组件还包含了6种类型的其它图表,分别为等高线图.箱线图.饼图.热图.散点图和散点误差图,如图 ...

  9. Xamarin图表开发基础教程(12)OxyPlot框架支持的金融图表类型

    Xamarin图表开发基础教程(12)OxyPlot框架支持的金融图表类型 OxyPlot组件中支持5种类型的金融图表,它们分别为销量图.高低图.股票K线图.股票走势图和旧式股票图,如图1.20~1. ...

最新文章

  1. VS2010使用Skin++
  2. CFileDialog 在使用sdk 后出现异常 Access violation
  3. Android:手把手带你深入剖析 Retrofit 2.0 源码
  4. P5445-[APIO2019]路灯【set,树状数组套线段树】
  5. 【Jmeter篇】jmeter+Ant+Jenkins实现自动化测试集成(一)
  6. 【Oracle】删除手工创建的数据库
  7. python日常能做什么-为什么Python这么火?看看它能做什么你就知道了
  8. 如何更改 Windows XP 中的 Windows 登录屏幕保护程序
  9. 【C语言】学习gotoxy() 与 clrscr() 函数
  10. 模块“*.dll“已加载,但对DllRegisterServer的调用失败,错误代码0x8002801c
  11. linux设置library path,如何在linux中设置环境变量LD_LIBRARY_PATH
  12. 【FPGA】Verilog编程实现SDRAM读写(一) ----- 初识SDRAM
  13. PHPExcel设置单元格值下拉选择
  14. kubeadm安装部署k8s(1)
  15. 【ROM制作工具】V1.0.0.23新版全新发布啦
  16. 数商云工业制造行业B2B电商平台解决方案
  17. JS的重绘(repaints)和重排(reflows)
  18. 毕业设计 推荐系统设计与实现 协同过滤推荐算法
  19. 猿创征文丨深度学习基于双向LSTM模型完成文本分类任务
  20. 《ANSYS CFX 14.0超级学习手册》——1.4 CFD软件结构及常用的CFD软件

热门文章

  1. 中国家庭医生签约服务基地项目在杭州启动
  2. 电脑显卡matlab,什么配置的电脑可以用Matlab?
  3. 列表与表格(自己的学习分享)
  4. Logback 日志打印格式思考
  5. Java项目:基于JSP的养老院管理系统
  6. html5实现frame效果,html5 frameset标签的替代方案是什么
  7. 从前端视角谈 IoT 物联网三部曲:连接智能、交互智能、数据智能
  8. Java实现k个数乘(cheng)(自然数的k乘积问题)
  9. (20)-- 制作兄弟连首页
  10. google app engine 部署 proxy