AppStore掘金:iPhone SDK应用程序开发
基本信息
- 原书名: iPhone SDK Application Development
- 原出版社: O'Reilly Media
- 作者: (美)Jonathan Zdziarski [作译者介绍]
- 译者: 鲁成东 戚文敏
- 丛书名: 人民邮电出版社O'Reilly系列
- 出版社:人民邮电出版社
- ISBN:9787115218230
- 上架时间:2010-1-8
- 出版日期:2010 年1月
- 开本:16开
- 页码:351
- 版次:1-1
- 所属分类:
计算机 > 软件与程序设计 > 移动开发 > iPhone
编辑推荐
注解清楚的示例项目,iPhone开发者将受益匪浅
作者的讲述权威、清晰,与读者分享丰富经验
内容简介回到顶部↑
本书全面概括了使用苹果公司官方sdk为iphone/ipod touch开发应用程序的方方面面,包括开发工具、编程语言和各种框架库。书中全方位覆盖了iphone编程,包括uikit、多点触摸、quartz core、音频、视频、地理定位、地址簿、网络编程等内容,详细介绍了uikit组件,并配以实用的例子,简要介绍了objective-c,重点讲解其与c/c++的异同之处,并介绍了几种objective-c特有的语法概念。本书还专门介绍如何自行编码实现专用高级特效:coverflow和flip page。
本书适合具有一定编程经验同时又希望进行iphone开发的程序员阅读。书中的各种提示和技巧无论对iphone开发的新手和资深程序员都大有裨益,本书还可以作为iphone sdk开发的参考手册,在需要时快速查找特定组件的相关内容。
本书适合具有一定编程经验同时又希望进行iphone开发的程序员阅读。书中的各种提示和技巧无论对iphone开发的新手和资深程序员都大有裨益,本书还可以作为iphone sdk开发的参考手册,在需要时快速查找特定组件的相关内容。
作译者回到顶部↑
本书提供作译者介绍
Jonathan Zdziarski是全职进行研究的科学家,同时也是资深的移动设备黑客,在破解iPhone环境以便进行第三方软件开发的过程中扮演了重要角色。他是O'Reilly的iPhone OpenApplication Development和iPhone Forensics两书的作者。
.. << 查看详细
.. << 查看详细
目录回到顶部↑
第1章 iphone sdk初探 1
1.1 应用程序剖析 1
1.1.1 xcode揭密 3
1.2 安装iphone sdk 5
1.2.1 开发所需资源 6
1.2.2 iphone模拟器 6
1.2.3 下载并安装iphone sdk 7
1.3 配备iphone 8
1.4 构建并安装应用程序 10
1.4.1 模型-视图-控制器 11
1.4.2 应用程序模板 11
1.4.3 xcode项目布局 12
1.4.4 原型 13
1.4.5 添加框架 14
1.4.6 设置活跃sdk 15
1.4.7 构建应用程序 16
1.4.8 安装应用程序 16
1.5 转换到objective-c 16
1.5.1 消息机制 17
1.5.2 类和方法的声明 18
1.1 应用程序剖析 1
1.1.1 xcode揭密 3
1.2 安装iphone sdk 5
1.2.1 开发所需资源 6
1.2.2 iphone模拟器 6
1.2.3 下载并安装iphone sdk 7
1.3 配备iphone 8
1.4 构建并安装应用程序 10
1.4.1 模型-视图-控制器 11
1.4.2 应用程序模板 11
1.4.3 xcode项目布局 12
1.4.4 原型 13
1.4.5 添加框架 14
1.4.6 设置活跃sdk 15
1.4.7 构建应用程序 16
1.4.8 安装应用程序 16
1.5 转换到objective-c 16
1.5.1 消息机制 17
1.5.2 类和方法的声明 18
前言回到顶部↑
2008年3月,苹果公司发布了它的官方SDK,世界各地企业的开发者为之欢呼。经过漫长的期待,终于等到了这个可以为iPhone设计商业软件的开发环境,与之相伴的还有一个可以直达每一个iPhone用户的发布渠道。本书中涵盖了苹果公司官方许可的SDK及其内置API,可以用于开发专门为AppStore设计的应用程序。苹果公司的SDK代表了移动软件开发领域的一大进步,也提供了一扇诱人的、通往纯粹的“一夜暴富”的门户。成为一名SDK开发者,你就拥有了一个直接接触数以百万的最终用户的渠道,而这些用户有可能马上购买你的产品。期待已久的苹果公司NDA的撤销,进一步聚集了对这种迷人设备和商业模式所累积起来的巨大热情。毫无疑问,伴随iPhoneSDK而来的,是巨大的创新机会和利润。
然而,这种热情必须用现实的预期加以调节。作为iPhone开发者,你将进行设计工作的平台在很大程度上仍然是一个封闭设备。你的应用程序将会被限制在一个沙箱里运行,以避免进行某些特定类型的访问,同时苹果公司禁止你使用许多私有API,而这些API却可以访问设备上更强大的资源。你要清楚环境的限制,这样才不会对于何事可为做出错误的假定,从而在编码上白白浪费时间。
尽管SDK有着这样那样的限制,但它仍无疑是一个强大的平台,足以编写出高质量的游戏和应用软件。SDK引入了易于使用的对象,掩盖了下面更加复杂的iPhone底层框架。与其他开发环境相比,SDK使得某些方面的编码工作都变得更加轻松,比如用户界面、全球定位查询甚至是设置程序束(bundle)。也正是因为这一点,开发者可以集中注意力关注项目中更重要的方面。只要不多的几行代码,就可以创建出许多不同类型的用户界面,使用三维动画,并加入音响效果。本书将为你介绍iPhone开发的范式,并带你领略那些对于在iPhone上设计完整功能的软件至关重要的关键框架。
本书的目标读者
本书内容经过精心调整,只要读者希望为iPhone开发应用程序,无论是新手还是有经验的开发者,都可以从中获益。但阅读的前提是,需要预先了解一些编写代码方面的知识。iPhone的开发环境使用的语言是Objective-C,马上我们就会对其进行介绍。好消息是,你也可以在应用程序里使用C和C++,所以只要你以前有这方面的知识,就可以对Objective-C很快上手。本书不会完整地介绍Objective-C,不过讲解了一些必要的基础知识,还有大量完整的例子代码,可以帮助你快速入门。
当阅读本书时还要了解,关于这个设备尚有另外一面,并未被本书涵盖。众多的底层对象与框架被隔离于SDK之外,但是却已经被iPhone破解开发社区所充分利用。在本书中,除了几个被明确标示的例子中之外,你将不会找到任何这类未被批准的API,因此不必困扰于APl是否可用。如果你正在使用SDK编写内部使用的应用程序,或者希望更好地了解iPhone的底层是如何工作的,可以将本书与一本iPhone Open ApplicationDevelopment结合使用。这两本书加在一起,将不仅令你全面了解SDK的能力所在以及能力所限,同时也会知道在哪些功能上,你将不可避免地会与破解开发社区编写的应用软件进行竞争。
本书的组织结构
第1章“iPhone SDK初探”,解释了如何设置、运行iPhone SDK,以及如何编译并安装例子应用程序。
第2章“Interface Builder:Xcode中制作GUI的GUI”,介绍了Interface Builder,这是一个所见即所得的工具,用来设计iPhone特有的用户界面。
第3章“介绍UIKit”,介绍了mKit框架,并讲授如何设计基本的用户界面元素。
第4章“多点触摸事件与界面几何”,讲解事件处理和基本的界面几何结构。
第5章“Quartz Core图层编程”,展示了如何使用Core Graphics和Quartz Core来创建并管理图层和图形变换。
第6章“喧嚣:Audio Toolbox和AVFoundation”,向你演示了怎样将声音文件通过AVFoundation进行混响并播放出来,也包括如何使用AudioToolbox框架录制数字音频流并回放。
第7章“CFNetwork网络编程”,讲解了如何使用CFNetwork框架进行网络编程。
第8章“定位:Core Location”,介绍了Core Location框架,并展示了如何与iPhone的GPS进行交互。
第9章“地址簿框架”,讲解了如何使用地址簿API对联系人进行查询和显示。
第10章“UIKit进阶设计”,涵盖了更多UIKit中的高级类。
第11章“应用程序设定”,解释了如何读写应用程序的配置,以及如何利用属性列表来工作。
第12章“CoverFlow”,讲解如何构造CoverFlow风格的相册。
第13章“页面翻转”,实例演示了页面翻转这种效果,并说明如何在不同视图之间进行翻转,就像书翻页一样。
然而,这种热情必须用现实的预期加以调节。作为iPhone开发者,你将进行设计工作的平台在很大程度上仍然是一个封闭设备。你的应用程序将会被限制在一个沙箱里运行,以避免进行某些特定类型的访问,同时苹果公司禁止你使用许多私有API,而这些API却可以访问设备上更强大的资源。你要清楚环境的限制,这样才不会对于何事可为做出错误的假定,从而在编码上白白浪费时间。
尽管SDK有着这样那样的限制,但它仍无疑是一个强大的平台,足以编写出高质量的游戏和应用软件。SDK引入了易于使用的对象,掩盖了下面更加复杂的iPhone底层框架。与其他开发环境相比,SDK使得某些方面的编码工作都变得更加轻松,比如用户界面、全球定位查询甚至是设置程序束(bundle)。也正是因为这一点,开发者可以集中注意力关注项目中更重要的方面。只要不多的几行代码,就可以创建出许多不同类型的用户界面,使用三维动画,并加入音响效果。本书将为你介绍iPhone开发的范式,并带你领略那些对于在iPhone上设计完整功能的软件至关重要的关键框架。
本书的目标读者
本书内容经过精心调整,只要读者希望为iPhone开发应用程序,无论是新手还是有经验的开发者,都可以从中获益。但阅读的前提是,需要预先了解一些编写代码方面的知识。iPhone的开发环境使用的语言是Objective-C,马上我们就会对其进行介绍。好消息是,你也可以在应用程序里使用C和C++,所以只要你以前有这方面的知识,就可以对Objective-C很快上手。本书不会完整地介绍Objective-C,不过讲解了一些必要的基础知识,还有大量完整的例子代码,可以帮助你快速入门。
当阅读本书时还要了解,关于这个设备尚有另外一面,并未被本书涵盖。众多的底层对象与框架被隔离于SDK之外,但是却已经被iPhone破解开发社区所充分利用。在本书中,除了几个被明确标示的例子中之外,你将不会找到任何这类未被批准的API,因此不必困扰于APl是否可用。如果你正在使用SDK编写内部使用的应用程序,或者希望更好地了解iPhone的底层是如何工作的,可以将本书与一本iPhone Open ApplicationDevelopment结合使用。这两本书加在一起,将不仅令你全面了解SDK的能力所在以及能力所限,同时也会知道在哪些功能上,你将不可避免地会与破解开发社区编写的应用软件进行竞争。
本书的组织结构
第1章“iPhone SDK初探”,解释了如何设置、运行iPhone SDK,以及如何编译并安装例子应用程序。
第2章“Interface Builder:Xcode中制作GUI的GUI”,介绍了Interface Builder,这是一个所见即所得的工具,用来设计iPhone特有的用户界面。
第3章“介绍UIKit”,介绍了mKit框架,并讲授如何设计基本的用户界面元素。
第4章“多点触摸事件与界面几何”,讲解事件处理和基本的界面几何结构。
第5章“Quartz Core图层编程”,展示了如何使用Core Graphics和Quartz Core来创建并管理图层和图形变换。
第6章“喧嚣:Audio Toolbox和AVFoundation”,向你演示了怎样将声音文件通过AVFoundation进行混响并播放出来,也包括如何使用AudioToolbox框架录制数字音频流并回放。
第7章“CFNetwork网络编程”,讲解了如何使用CFNetwork框架进行网络编程。
第8章“定位:Core Location”,介绍了Core Location框架,并展示了如何与iPhone的GPS进行交互。
第9章“地址簿框架”,讲解了如何使用地址簿API对联系人进行查询和显示。
第10章“UIKit进阶设计”,涵盖了更多UIKit中的高级类。
第11章“应用程序设定”,解释了如何读写应用程序的配置,以及如何利用属性列表来工作。
第12章“CoverFlow”,讲解如何构造CoverFlow风格的相册。
第13章“页面翻转”,实例演示了页面翻转这种效果,并说明如何在不同视图之间进行翻转,就像书翻页一样。
序言回到顶部↑
参与iPhone破解开发社区这么久以来,我常常被问到一个问题,那就是:你觉得iPhone SDK到底怎么样。对于购买了本书的读者,我需要花点工夫给出答案。简而言之,苹果公司的iPhone SDK带来了一些非常棒的高层功能,厘清了一种可怕的混乱局面。然而,深深埋藏在SDK怡人外表之下的,却是一组无序的、设计低劣的框架,但是这些低劣之物中的某些成员却又非常适用于一些SDK所不适合的领域。无疑,对于想要针对AppStore进行开发的人而言,依靠SDK已经足可以编写出质量优秀、功能强大的应用程序(若非如此,我也不会写这本书)。对于大多数希望开发出不错的软件的开发者来说,SDK所提供的接口已经足够了,不过大多数人并不清楚他们到底错过了哪些功能。而对那些在开源世界里成长起来的人来说,iPhone的SDK不过是沧海一粟。
你现在可以了解到,开发者接口有两组:SDK提供的,以及苹果公司自己使用的。尽管这二者之间有一定重叠,但是在我的另外一本书iPhone Open Application Development中介绍的许多类与框架,都会是你闻所未闻的。你对它们闻所未闻,是因为它们并不存在于SDK当中。我们iPhone破解开发社区中的许多人通过直接破解iPhone的操作系统而发现了它们。我们经过日以周计的工作,导出类与符号表,不断进行出错查错的试验,最终拼凑出了iPhone用户界面包以及其他许多框架的“基因图谱”,其中包括许多现在仍然处于保密状态的接口。通过开源工具链构建iPhone软件的开发者,使用的正是这些底层API。我们发现,苹果公司的许多应用程序也同样正是利用了这些底层API,从而可以做到一些SDK根本不允许的行为。
相对于SDK开发者而言,使用开源工具链的开发者通过这些底层API获得了一种优势,而且在我看来,这些API也提供了比官方SDK更好的开发框架。存在于设备上的许多框架都被悄悄地隐藏了起来,使得AppStore的开发者无法使用它们的功能。当你要想构建有竞争力的应用程序时,就会发现很多被隐藏的功能正是关键所在,而这样的应用程序却恰恰可以使苹果公司在与他们自己预置软件的对手的竞争中获得优势,这绝非巧合。在这些隐藏的接口中间,最突出的就是对CoreSurface框架的使用限制,这个框架可以令开发者有能力直接将原始像素绘制到屏幕表面,并充分利用图像加速功能。缺少了这个框架,你就需要耗时费力地去榨取程序的性能,才能令需要2D显示的应用程序达到满意的效果,这些程序包括电影播放器、视频摄像机以及高性能2D游戏,比如我的免费任天堂模拟器。在编写类似Flash或者Java这样的应用程序时,如果需要像样一点的性能,也需要这个关键框架。另外一组缺失的API是能够访问iTunes音乐的接口。这就是NateTme的SDK版本Tap Tap Revolution不再从你的iTunes曲库中挑选歌曲的原因,也正是因为这样,你才只能从第三方程序库中找到像SynchStep(它会根据你的步伐播放相应节奏的音乐)这么酷的音乐应用程序。即使是简单如后台运行或者显示状态栏图标这样的功能,也只存在于被AppStore所禁止的API之中。更不用说开源的iPhone编译器,令你可以做到许多SDK无能为力的事情。
从单纯的技术角度来讲,开源编译器构建的应用程序既可以使用SDK接口,也可以使用底层“私有”接口,完全取决于你愿意使用哪一组头文件。对于Xocde也同样成立:未见诸文档的私有接口可以被轻易地引入你的项目中,只要简单地指引SDK找到正确的头文件。这样在开发应用程序时,你就有了4种可能的工具组合来选择。
如果你是商业开发者或者是设计在自己企业内部部署的软件,那么确实只有一条可行之路,就是使用本书中所记录的这些官方批准的API。然而,如果你是开源爱好者,并希望你的代码更优雅,那么你应该更关心去自由自在地编写软件——而不是带着镣铐和枷锁。若是这样,建议你不要仅仅使用本书中能找到的API,而要进一步扩展你的知识,了解众多可以找到的未公开的API和框架。正是开源社区第一个为iPhone建立了开放的编译器以及网上在线社区软件库,我们欢迎优美的、功能完整的应用程序。
——Jonathan Zdziarski
2009年1月
你现在可以了解到,开发者接口有两组:SDK提供的,以及苹果公司自己使用的。尽管这二者之间有一定重叠,但是在我的另外一本书iPhone Open Application Development中介绍的许多类与框架,都会是你闻所未闻的。你对它们闻所未闻,是因为它们并不存在于SDK当中。我们iPhone破解开发社区中的许多人通过直接破解iPhone的操作系统而发现了它们。我们经过日以周计的工作,导出类与符号表,不断进行出错查错的试验,最终拼凑出了iPhone用户界面包以及其他许多框架的“基因图谱”,其中包括许多现在仍然处于保密状态的接口。通过开源工具链构建iPhone软件的开发者,使用的正是这些底层API。我们发现,苹果公司的许多应用程序也同样正是利用了这些底层API,从而可以做到一些SDK根本不允许的行为。
相对于SDK开发者而言,使用开源工具链的开发者通过这些底层API获得了一种优势,而且在我看来,这些API也提供了比官方SDK更好的开发框架。存在于设备上的许多框架都被悄悄地隐藏了起来,使得AppStore的开发者无法使用它们的功能。当你要想构建有竞争力的应用程序时,就会发现很多被隐藏的功能正是关键所在,而这样的应用程序却恰恰可以使苹果公司在与他们自己预置软件的对手的竞争中获得优势,这绝非巧合。在这些隐藏的接口中间,最突出的就是对CoreSurface框架的使用限制,这个框架可以令开发者有能力直接将原始像素绘制到屏幕表面,并充分利用图像加速功能。缺少了这个框架,你就需要耗时费力地去榨取程序的性能,才能令需要2D显示的应用程序达到满意的效果,这些程序包括电影播放器、视频摄像机以及高性能2D游戏,比如我的免费任天堂模拟器。在编写类似Flash或者Java这样的应用程序时,如果需要像样一点的性能,也需要这个关键框架。另外一组缺失的API是能够访问iTunes音乐的接口。这就是NateTme的SDK版本Tap Tap Revolution不再从你的iTunes曲库中挑选歌曲的原因,也正是因为这样,你才只能从第三方程序库中找到像SynchStep(它会根据你的步伐播放相应节奏的音乐)这么酷的音乐应用程序。即使是简单如后台运行或者显示状态栏图标这样的功能,也只存在于被AppStore所禁止的API之中。更不用说开源的iPhone编译器,令你可以做到许多SDK无能为力的事情。
从单纯的技术角度来讲,开源编译器构建的应用程序既可以使用SDK接口,也可以使用底层“私有”接口,完全取决于你愿意使用哪一组头文件。对于Xocde也同样成立:未见诸文档的私有接口可以被轻易地引入你的项目中,只要简单地指引SDK找到正确的头文件。这样在开发应用程序时,你就有了4种可能的工具组合来选择。
如果你是商业开发者或者是设计在自己企业内部部署的软件,那么确实只有一条可行之路,就是使用本书中所记录的这些官方批准的API。然而,如果你是开源爱好者,并希望你的代码更优雅,那么你应该更关心去自由自在地编写软件——而不是带着镣铐和枷锁。若是这样,建议你不要仅仅使用本书中能找到的API,而要进一步扩展你的知识,了解众多可以找到的未公开的API和框架。正是开源社区第一个为iPhone建立了开放的编译器以及网上在线社区软件库,我们欢迎优美的、功能完整的应用程序。
——Jonathan Zdziarski
2009年1月
媒体评论回到顶部↑
“本书内容详尽,书中有很多包含清晰注解的示例项目,iPhone开发者将从中受益匪浅。Jonathan的讲述详细易懂,极具权威性。”
——Jon Hohle
GoDaddy.com软件工程师
——Jon Hohle
GoDaddy.com软件工程师







点击看大图

加载中...

