出版时间:2010-1 出版社:人民邮电出版社 作者:乔纳森 页数:351
Tag标签:无
前言
参与iPhone破解开发社区这么久以来,我常常被问到一个问题,那就是:你觉得iPhoneSDK到底怎么样。对于购买了本书的读者,我需要花点工夫给出答案。简而言之,苹果公司的iPhone SDK带来了一些非常棒的高层功能,厘清了一种可怕的混乱局面。然而,深深埋藏在SDK怡人外表之下的,却是一组无序的、设计低劣的框架,但是这些低劣之物中的某些成员却又非常适用于一些SDK所不适合的领域。无疑,对于想要针对AppStore进行开发的人而言,依靠SDK已经足可以编写出质量优秀、功能强大的应用程序(若非如此,我也不会写这本书)。对于大多数希望开发出不错的软件的开发者来说,SDK所提供的接口已经足够了,不过大多数人并不清楚他们到底错过了哪些功能。而对那些在开源世界里成长起来的人来说,iPhone的SDK不过是沧海一粟。你现在可以了解到,开发者接口有两组:SDK提供的,以及苹果公司自己使用的。尽管这二者之间有一定重叠,但是在我的另外一本书iPhone Open Application Development中介绍的许多类与框架,都会是你闻所未闻的。你对它们闻所未闻,是因为它们并不存在于SDK当中。我们iPhone破解开发社区中的许多人通过直接破解iPhone的操作系统而发现了它们。我们经过日以周计的工作,导出类与符号表,不断进行出错查错的试验,最终拼凑出了iPhone用户界面包以及其他许多框架的“基因图谱”,其中包括许多现在仍然处于保密状态的接口。通过开源工具链构建iPhone软件的开发者,使用的正是这些底层API。我们发现,苹果公司的许多应用程序也同样正是利用了这些底层API,从而可以做到一些SDK根本不允许的行为。
内容概要
本书全面概括了使用苹果公司官方SDK为iPhone/iPod Touch开发应用程序的方方面面,包括开发工具、编程语言和各种框架库。书中全方位覆盖了iPhone编程,包括UIKit、多点触摸、Quartz Core、音频、视频、地理定位、地址簿、网络编程等内容,详细介绍了UIKit组件,并配以实用的例子,简要介绍了Objective-C,重点讲解其与C/C++的异同之处,并介绍了几种Objective-C特有的语法概念。本书还专门介绍如何自行编码实现专用高级特效:CoverFlow和Flip Page。 本书适合具有一定编程经验同时又希望进行iPhone开发的程序员阅读。书中的各种提示和技巧无论对iPhone开发的新手和资深程序员都大有裨益,本书还可以作为iPhone SDK开发的参考手册,在需要时快速查找特定组件的相关内容。
作者简介
Jonathan Zdziarski是全职进行研究的科学家,同时也是资深的移动设备黑客,在破解iPhone环境以便进行第三方软件开发的过程中扮演了重要角色。他是O’Reilly的iPhone Open Application Development和iPhone Forensics两书的作者。
书籍目录
第1章 iPhone SDK初探 1.1 应用程序剖析 1.1.1 Xcode揭密 1.2 安装iPhone SDK 1.2.1 开发所需资源 1.2.2 iPhone模拟器 1.2.3 下载并安装iPhone SDK 1.3 配备iPhone 1.4 构建并安装应用程序 1.4.1 模型-视图-控制器 1.4.2 应用程序模板 1.4.3 Xcode项目布局 1.4.4 原型 1.4.5 添加框架 1.4.6 设置活跃SDK 1.4.7 构建应用程序 1.4.8 安装应用程序 1.5 转换到Objective-C 1.5.1 消息机制 1.5.2 类和方法的声明 1.5.3 实现 1.5.4 属性 1.5.5 协议 1.5.6 类别 1.5.7 替位 1.5.8 其他资源 第2章 Interface Builder:Xcode中制作GUI的GUI 2.1 窗口、视图和视图控制器 2.2 现有模板 2.3 新建模板 2.4 用户界面元素 2.4.1 控制器 2.4.2 数据视图 2.4.3 输入和数据 2.4.4 窗口、视图和栏 2.5 查看器 2.6 设计UI 2.6.1 窗口 2.6.2 视图控制器 2.6.3 视图 2.6.4 创建视图间联系 2.6.5 在代码中添加联系 2.7 从项目中移除Interface Builder 第3章 介绍UI Kit 3.1 基本用户界面元素 3.2 窗口和视图 3.2.1 创建窗口和视图 3.2.2 显示视图 3.2.3 史上最无用的应用程序:HelloView 3.2.4 行为解释 3.2.5 从UIView派生 3.2.6 传统废柴程序:HelloWorld 3.2.7 行为解释 3.3 视图控制器 3.3.1 创建视图控制器 3.3.2 从Interface Builder载入视图 3.3.3 方向变换 3.3.4 弃置视图控制器 3.3.5 使用视图控制器的Hello World:ControllerDemo 3.3.6 行为解释 3.3.7 进一步学习 3.4 文本视图 3.4.1 创建文本视图 3.4.2 赋予内容 3.4.3 显示HTML 3.4.4 网页源码阅读器:SourceReader 3.4.5 行为解释 3.4.6 进一步学习 3.5 导航栏与控制器 3.5.1 创建导航控制器 3.5.2 导航控制器属性 3.5.3 添加分段控件 3.5.4 添加工具栏 3.5.5 分页导航练习:PageDemo 3.5.6 行为解释 3.5.7 进一步学习 3.6 转场动画 3.6.1 创建转场 3.6.2 附加转场 3.6.3 翻页转场:FlipDemo 3.6.4 行为解释 3.6.5 进一步学习 3.7 操作表单与警报 3.7.1 警报 3.7.2 操作表单 3.7.3 解除操作表单 3.7.4 世界末日(待批准):EndWorld 3.7.5 行为解释 3.7.6 进一步学习 3.8 表格视图与控制器 3.8.1 创建表格 3.8.2 表格单元 3.8.3 实现多选 3.8.4 编辑与扫动删除 3.8.5 重新载入表格 3.8.6 简单的文件浏览器:TableDemo 3.8.7 行为解释 3.8.8 进一步学习 3.9 操纵状态栏 3.9.1 隐藏状态栏 3.9.2 状态栏风格 3.9.3 状态栏方向 3.10 应用程序徽章 3.10.1 显示应用程序徽章 3.10.2 移除应用程序徽章 3.10.3 进一步学习 3.11 应用程序服务 3.11.1 挂起与复原 3.11.2 程序终止 3.12 调用Safari 3.13 发起电话呼叫 第4章 多点触摸事件与界面几何 4.1 界面几何结构体介绍 4.1.1 CGPoint 4.1.2 CGSize 4.1.3 CGRect 4.2 处理多点触摸事件 4.2.1 UITouch通知 4.2.2 UIEvent 4.2.3 事件处理 4.2.4 例子:点触计数器 4.2.5 例子:单击并拖曳 4.2.6 处理多点触摸 4.2.7 捏合检测:PinchMe 4.2.8 Tracking多点触摸图标跟踪:TouchDemo 4.2.9 行为解释 4.2.10 进一步学习 第5章 Quartz Core图层编程 5.1 了解图层 5.1.1 图层层次结构 5.1.2 尺寸与位置 5.1.3 排布与显示 5.1.4 绘制 5.1.5 变换 5.1.6 图层动画 5.1.7 图层变换 5.1.8 玩转图层:BounceDemo 5.1.9 行为解释 5.1.10 进一步学习 第6章 喧嚣:Audio Toolbox和 AVFoundation 6.1 AVFoundation框架 6.1.1 音频播放器 6.1.2 播放器属性 6.1.3 播放声音 6.1.4 代理方法 6.1.5 仪表计数 6.2 构建一个VU表:AVMeter 6.2.1 行为解释 6.2.2 进一步学习 6.3 音频服务 6.3.1 行为解释 6.4 音频队列 6.4.1 音频队列的结构 6.4.2 供应音频输出 6.4.3 音频缓冲区 6.4.4 回调函数 6.4.5 音量控制 6.4.6 例子:PCM播放器 6.4.7 行为解释 6.4.8 进一步学习 6.5 录音 6.5.1 音频队列结构体 6.5.2 供应音频输入 6.5.3 音频缓冲区 6.5.4 回调函数 6.5.5 访问原始数据 6.5.6 写入文件 6.5.7 例子:录音机 6.5.8 行为解释 6.5.9 进一步学习 6.6 振动 第7章 CFNetwork网络编程 7.1 套接字编程基础 7.1.1 套接字类型 7.1.2 CFSocket 7.1.3 CFSocketContext 7.1.4 套接字流 7.1.5 CFSocket例子:笑话服务器 7.1.6 进一步学习 7.2 CFHTTP与CFFTP 7.2.1 CFHTTP 7.2.2 CFFTP 7.2.3 进一步学习 第8章 定位:Core Location 8.1 Core Location管理器 8.1.1 查询参数 8.1.2 提交查询 8.1.3 接收更新 8.1.4 完成查询 8.1.5 错误处理 8.1.6 土话Core Location:WhereYouAt 8.1.7 行为解释 8.1.8 进一步学习 第9章 地址簿框架 9.1 访问地址簿 9.1.1 高层地址簿函数 9.1.2 查询地址簿 9.1.3 创建记录 9.1.4 操纵记录 9.1.5 多值属性 9.1.6 使用字典 9.1.7 图像数据 9.1.8 进一步学习 9.2 地址簿界面 9.2.1 联系人视图 9.2.2 联系人选取器 9.2.3 进一步学习 第10章 UI Kit进阶设计 10.1 通用控件 10.1.1 基类UIControl 10.1.2 分段控件 10.1.3 开关 10.1.4 滑块 10.1.5 文本字段控件 10.1.6 按钮 10.1.7 分页控件 10.1.8 进一步学习 10.2 偏好设置表格 10.2.1 创建偏好设置表格 10.2.2 显示偏好设置表格 10.2.3 偏好设置表格的例子:ShootStuffUp 10.2.4 行为解释 10.2.5 进一步学习 10.3 分段列表 10.3.1 创建分段列表 10.3.2 添加索引条 10.3.3 显示分段列表 10.3.4 一个更好的文件浏览器:TableDemo 10.3.5 行为解释 10.3.6 进一步学习 10.4 进度与活动指示器 10.4.1 小小转子:UIActivityIndicatorView 10.4.2 嫌转子俗就用UIProgressView 10.4.3 网络活动指示器 10.4.4 进一步学习 10.5 图像 10.5.1 图像对象 10.5.2 玩转图像和图案:ImageFun 10.5.3 图像视图:UIImageView 10.5.4 图像选取器 10.6 键盘属性 10.6.1 键盘风格 10.6.2 键盘外观 10.6.3 回车键 10.6.4 自动大写 10.6.5 自动更正 10.6.6 安全文本输入 10.7 选取器 10.7.1 创建选取器 10.7.2 显示选取器 10.7.3 读取选取器 10.7.4 挑选你的鼻子:NosePicker 10.7.5 行为解释 10.7.6 进一步学习 10.8 时间/日期选取器 10.8.1 创建时间/日期选取器 10.8.2 显示日期选取器 10.8.3 读取日期 10.8.4 选取独立日:DatePicker 10.8.5 行为解释 10.8.6 进一步学习 10.9 标签栏 10.9.1 标签栏控制器 10.9.2 构建一个标签栏控制器 10.9.3 可定制按钮 10.9.4 导航 10.9.5 代理的动作 10.9.6 又一个教科书式的例子:TabDemo 10.9.7 行为解释 10.9.8 进一步学习 10.10 感应器与设备信息 10.10.1 读取设备方向 10.10.2 读取设备信息 10.10.3 读取加速计 10.10.4 近距离感应器 10.10.5 进一步学习 10.11 滚动视图 10.11.1 创建滚动视图 10.11.2 属性 10.11.3 代理方法 10.11.4 滚动中的气象地图:BigImage 10.11.5 行为解释 10.11.6 进一步学习 10.12 网页视图 10.12.1 创建网页视图 10.12.2 显示网页视图 10.12.3 加载内容 10.12.4 导航 10.12.5 代理方法 10.12.6 Google搜索工具:WebDemo 10.12.7 行为解释 10.12.8 进一步学习 第11章 应用程序设定 11.1 字典和属性列表 11.1.1 创建字典 11.1.2 管理关键字 11.1.3 写入属性列表 11.1.4 读取属性列表 11.1.5 进一步学习 11.2 偏好设置束 11.2.1 添加关键字 11.2.2 读取偏好设置束的值 11.2.3 进一步学习 第12章 Cover Flow 12.1 用SDK编写Cover Flow:CovertFlow 12.1.1 行为解释 12.1.2 进一步学习 第13章 页面翻转 13.1 页面翻转的例子:PageControl 13.1.1 行为解释 13.1.2 进一步学习 13.2 用于多个视图的PageScrollView 13.2.1 行为解释 第14章 媒体播放器框架 14.1 电影播放器控件 14.1.1 属性 14.1.2 开始和停止播放电影 14.1.3 通知 14.1.4 进一步学习
章节摘录
插图:如果你是Macintosh世界的新手,也许会惊奇地发现应用程序并不是.exe文件的形式。苹果公司的卓越设计著称于世,不仅体现在硬件和图形方面,也同样延伸到了软件架构的领域,其中就包括应用程序在文件系统上的组织方式。这种应用于苹果桌面系统中的策略,也被原样引入到了iPhone系统中。苹果采取的策略,就是创建一种模块化、自包含的应用程序,这种应用程序仅由其自身内部的文件资源构成。因此,安装应用程序非常容易,将其拖曳到应用程序文件夹即可;删除应用程序同样轻松,将其拖曳到废纸篓即可。在本章中,我们将研究iPhone应用程序的结构、运行iPhone SDK、探索苹果公司的Xcode IDE,并学习如何在iPhone上安装应用程序。最后,我们将介绍Objective-C语言及其特质,以便能从C和C++语言轻松过渡。1.1 应用程序剖析苹果公司想出了一种优雅的方式来在操作系统中存放应用程序。由于OS x是基于UNIX的平台,因此苹果公司希望它能符合基本的UNIX文件约定,所以古旧的资源分支方案就不敷使用了(就这一点来说,也不够高效)。挑战是:要设计一种结构,既能让一个应用程序仍然可以自包含,同时在那些不想用专有的权宜之计来破坏自己架构的文件系统上也可以使用。解决方案来自于Mac OS x的前身,也就是名为NeXT的系统,它将应用程序视为一个目录(directory)所构成的束(bundle)。束这个概念引入了一种方法,可以聚合应用程序资源、二进制文件和其他相关文件。
编辑推荐
《AppStore掘金:iPhone SDK应用程序开发》提供了极其实用的知识与代码,教你使用苹果公司的SDK为iPhone和iPod Touch创建移动应用程序和游戏。《AppStore掘金:iPhone SDK应用程序开发》通过大量的例子介绍了这一开发模式及其所使用的Objective-C语言,同时也将带你领略设计功能全面的应用程序所必需的各种SDK框架。《AppStore掘金:iPhone SDK应用程序开发》将助你完成下列功能:使用Interface Builder和UI Kit框架设计用户界面元素;创建应用程序控件,如窗口和导航栏等;使用Core Graphics和Quartz Core创建并且管理图层和图像变换;通过AVFoundation对声音文件进行混音并播放,使用Audio Toolbox录制并回放数字音频流;使用CFNetwork框架进行网络编程;用Core Location框架操作iPhone的GPS;在应用程序中加入视频播放器。
图书封面
图书标签Tags
无
评论、评分、阅读与下载