iPhone in action introduction to web and SDK development
副标题:无
作 者:(美)Christopher Allen,(美)Shannon Appelcline著;漆振,孙文磊,陈宝国等译
分类号:
ISBN:9787115213051
微信扫一扫,移动浏览光盘
简介
本书旨在以教程的形式讲解iPhone编程的基础知识。书中介绍了针对该平台的两种主要编程风格:Web开发和SDK编程。
可以通过三种方式来阅读本书。
我们希望你从第1章一直读到第20章。在此期间,你将了解这个平台,了解iPhone编程的两种主要方法,获取关于两种编程风格适用于哪些不同场合的建议,以及两种编程风格的编程步骤。
如果你只希望阅读与Web开发相关的内容,可以只阅读第一部分和第二部分。注意,我们在第二部分的最后提供了对Objective-C的介绍,这将帮助你开始iPhone SDK编程(即便你之前从未使用过编译型编程语言)。然后,我们希望你继续阅读以获取更多知识。
如果你只想了解SDK编程,那么可以只阅读第一部分、第三部分和第四部分。我们仍然希望你至少浏览一下第二部分中的内容,因为其中专门为SDK程序员提供了一些把Web编程经验用于SDK编程的建议。
读者对象
这是一本入门级图书,针对的是有兴趣使用iPhone开发Web页面或编写本机程序的所有读者,我们竭尽所能地提供了通俗易懂的内容。本书特别适合愿意全面学习iPhone开发的人,因为它能教会你为每个项目选择编写Web应用程序还是创建本机应用程序。
如果你希望学习iPhone Web开发,那么应该知道Web设计的一些基本知识,包括HTML、CSS和JavaScript。但不需要了解很多动态语言的知识也可创建出色的iPhone Web应用程序。事实上,苹果公司强大的Dashcode开发平台就是完全使用这三种语言构建的。
如果你希望学习iPhone SDK编程,则应该具备一些基本的编程经验。最好是以前使用过C语言,不过这不是必需的。如果你没有C语言经验,那么可以阅读第9章中对C的简介,并且应该通过自学掌握相关的知识点。另外,读者也不用熟悉Objective-C、Cocoa或苹果编程的方式。本书将为你提供掌握苹果公司所特有的编程风格的一切知识。如果了解面向对象的概念,那么你将有更高的起点,但这仍然不是必需的(第9章也提供了该内容的简介)。
本书内容
本书分为四个部分,第一部分介绍iPhone基本概念,第二部分介绍Web开发,最后两个部分介绍SDK编程。
第一部分介绍iPhone和可用于此设备的编程风格。
第1章讨论iPhone的详细信息,以及它与早期的移动电话有何不同。这一章还包含一种最重要的概念:让iPhone与众不同的6个独特特性,这对于程序员也同样重要。
第2章介绍两种iPhone编程风格(Web开发和SDK编程),并讨论它们各自的优势,以便你可以就如何编写各种应用程序做出明智的决策。这一章还简要阐述了混合两种iPhone编程方式的思想。
第二部分全面介绍了如何编写和重新编写在iPhone上使用的网页。
第3章介绍重新开发已有网页以便在iPhone上查看该网页内容的基础知识。在这个过程中,涉及了许多关于iPhone网页最重要的因素,比如说视区、技术限制和事件变化。
第4章介绍在iPhone上使用的三个库中的第一个:WebKit。WebKit是苹果公司正在开发的一个针对HTML的扩展,它允许你访问各种优秀的特性,从隐式动画到内置数据库。
第5章讨论如何创建与iPhone本机应用程序的外观相匹配的网页。在此过程中,将介绍第二个著名的Web库,即iUI,使用iUI可通过简单的HTML创建iPhone样式的动画和表格。
第6章主要介绍第三个iPhone Web库Canvas——苹果公司提供的另一个HTML扩展。该图形库允许你绘制复杂的矢量图形并在iPhone上显示它们。
第7章讨论Dashcode,它是苹果公司提供的用于创建iPhone Web应用程序的开发环境。借助Dashcode集成的WebKit和Canvas链接,在处理图形布局程序时可以利用前面几章学习的知识。
第8章结束了对Web开发的讨论,阐述了如何使用各种第三方实用工具测试和调试iPhone Web应用程序。
第9章充当桥梁作用,简要介绍了一些对于Objective-C编程有用的工具,包括C语言、面向对象范型和MVC结构模式。
第三部分介绍SDK,涵盖编写iPhone本机应用程序所需的各种基础知识。
第10章重点讨论Objective-C,也就是iPhone和iPhone OS所使用的编程语言,并探讨了一系列可简化大量复杂任务的框架。
第11章介绍Xcode,这是SDK中最重要的一款工具。作为集成开发环境,Xcode的作用并非仅限于编译代码,它还能帮助你纠正一些简单的输入错误,并提供对所有iPhone编程文档快速、集成的访问。
第12章将重点转换到Interface Builder,这是一个图形设计环境,允许你创建和放置界面对象,而不需要编写任何代码。Interface Builder能为程序员节省大量时间,因此也在本书的其余内容中得到了广泛应用。
第13章介绍简单的视图控制器。基本视图控制器是MVC范型的一个重要组成部分,它将控制与视图分开,而表视图控制器则提供了一种简单的信息组织方法,同时能符合标准的iPhone外观。
第14章回过头来讨论用户交互,介绍了事件(用户使用一个或多个手指触摸屏幕可生成事件)和动作(当用户与按钮或滑块等控件对象交互时发生)。
第15章分析了两种更高级的视图控制器,结束了我们对视图控制器的讨论。选项卡栏视图控制器允许在多页内容之间实现模态选择,导航视图控制器可以为表添加层次结构。
第四部分展示了SDK的工具包,并分析了程序员可能感兴趣的许多不同特性。同时,这一部分还提供了一些比较复杂的编程示例,这些示例应该能帮助程序员开发功能全面的iPhone项目。
第16章讨论了SDK工具包对数据处理的支持。这包括用户输入,比如动作和首选项;数据存储,比如文件和数据库;结合输入和存储的工具,比如iPhone的地址簿。
第17章重点讨论iPhone最独特的两个特性——加速计和GPS,并展示了iPhone如何跟踪手机在空间中的移动。
第18章介绍iPhone的另一个优势:媒体,展示了如何对图片、影片和声音执行基本操作。
第19章全面介绍了图形,侧重讨论iPhone的矢量图形语言Quartz 2D。此外,还简要概述了Core Animation并提及了iPhone中的OpenGL。
第20章阐述了如何使用iPhone工具包与因特网交互。这一章介绍了因特网通信的整体层次结构,从低层主机的连接到URL,从Web视图到XML和JSON等现代数据交换语言。
附录包含一些额外信息。附录A列出了SDK对象及其作用。附录B提供了许多与iPhone编程相关的著名网站链接。附录C包含如何将SDK程序部署到实际iPhone的最新信息。
代码约定和下载
本书中包含了许多代码示例。较长的代码都有清楚的代码清单标题,较短的代码会出现在文本行中间。所有代码都设置为Courier字体,以便于区分它们。同样,类名也被设置为这种代码字体,如果你要将它们输入到计算机中,可以方便地找到它们。
除了一些示范概念的代码示例之外,所有代码片段都是可运行的程序。完整的程序集可以从http://www.manning.com/iPhoneinAction获得。读者下载到的应该是两个ZIP文件,分别对应于Web和SDK程序。我们鼓励你在阅读过程中尝试运行这些程序,其中经常包含本书中没有的代码,并且将提供更多上下文。此外,我们认为实际地运行一下程序可以更好地理解相应的代码。
本书中的代码片段全都有充分的说明。我们在代码旁边添加了简短的注释,并且在代码行旁边添加了编号球,将后续讨论与代码行关联起来。
在本书的第二部分中,所有代码片段都是简单的HTML(适当带有CSS或JavaScript)。在一些使用PHP作为动态语言的例子中,我们使用<? ?>尖括号做出了明确的标识。在本书的第三部分和第四部分中,所有代码片段都是Objective-C。这些代码片段中通常不包含头文件,因为它们往往是最基础的东西。
在本书的一些例子中,需要将多个文件的内容包含在一个代码清单中,以便让大家全面了解程序。在这些情况下,我们在一个代码清单中将不同文件的内容按以下方式分开:::: file #1 :::。
软件需求
本书大部分Web编程的内容都没有特殊的需求,只要能够设计和部署网页即可。但是,第7章(关于Dashcode)和第8章的部分内容(特别是关于iPhone仿真器的讨论)引用了仅在Macintosh上可用的软件。
Macintosh是进行SDK开发必不可少的。当然,还需要安装iPhone SDK,但只要在苹果公司网站注册后就可以免费下载,详细内容参见第10章。
作者在线
本书旨在介绍iPhone编程。虽然它广泛讨论了iPhone,但仍然有许多内容无法在本书中介绍。请与作者就其他iPhone话题在线交谈。
我们最常去的网站是http://iphoneinaction.manning.com。这个博客包含了我们发现值得注意的最新链接,而且经常会讨论我们在本书中未介绍的“缺失类”,以及其他一些高级技巧。
读者还可以加入Author Online论坛http://www.manning.com/iPhoneinAction,发表评论并向其他读者以及作者提问。
并且,我们将继续开放最初由Christopher创建的关于Web开发的iPhone论坛,地址为http:// www.iphonewebdev.com。
关于书名
结合了介绍、概述和实际示例的“实战”类从书旨在帮助读者学习和记忆。认知科学的研究发现,人们最容易记住的是他们在自主探索过程中获取到的知识。
虽然Manning出版社中没有人是认知科学家,但我们相信若让记忆保持长久,那么探索、尝试以及重复均是必不可少的步骤。人们只有在经过主动探索之后才能理解并记住新事物,也就是掌握它们。“实战”系列图书的另外一个特点是包含了大量的示例。它鼓励读者动手尝试,实践新代码,以及探索新思想。
另外一个比较“世俗”的原因是,我们的读者都很忙。他们读书是为了工作或解决某个问题,需要这种可以随意翻阅、跳读的图书——仅仅了解必要的知识。这就要求图书本身能够符合这类读者的需求——正如我们的“实战”系列。
关于封面插图
“iPhone开发实战”的封面插图是“Russian, Prince of the Cherkeeses”。Cherkess人是居住在俄罗斯的Caucus地区的一个民族。插图取自1805年出版的Sylvain Maréchal的关于地区和国家着装习惯及服饰的四卷汇编。Maréchal收集的多彩多样的服饰让我们深刻感受到200年前世界上一些城填和地区的文化差别。彼此隔离的人们说着不同的方言,他们的出生地和居住地非常易于辨认——通过他们的语言和穿着就可以。
从那之后,着装风格开始发生了变化,各地区域之间巨大的差异逐渐被抹平。现在已经很难分辨出欧洲大陆上不同地区或国家人们的着装差异了。或许,我们放弃了这种文化和外观上的差异,得到的却是多姿多彩的个人生活,或者说是一种更加多样有趣、充满了智慧和科技的生活。
在各种计算机图书铺天盖地、让人难以分辨的时代,Manning正是为了赞美富有创造力、开创精神的计算机技术,才选用了两个世纪前Maréchal的这幅描述两个地区之间巨大文化差异的插图。
目录
第一部分 iphone编程简介.
第1章 iphone简介 2
1.1 iphone核心规范 3
1.1.1 iphone的输入及输出规范 3
1.1.2 iphone网络规范 4
1.1.3 iphone浏览器规范 5
1.1.4 iphone的其他硬件特性 5
1.2 iphone在行业中的比较 6
1.2.1 物理比较 6
1.2.2 具有竞争力的因特网浏览 6
1.2.3 移动web标准 7
1.2.4 其他创新 7
1.3 iphone的独特之处 7
1.4 理解iphone输入和输出 8
1.4.1 输出和iphone视区 8
1.4.2 输出和方向 9
1.4.3 输入和iphone定位机制 10
1.5 小结 11
第2章 web还是sdk 12
2.1 比较两种编程风格 12
.2.2 核心思想:编程的连续性 13
2.3 优点和缺点 14
2.3.1 web开发 14
2.3.2 sdk开发 15
2.3.3 程序平台 16
2.4 独立iphone开发 17
2.4.1 web开发模型 17
2.4.2 sdk开发模式 18
2.5 集成iphone开发 19
2.5.1 镜像开发 19
2.5.2 混合开发 19
2.5.3 客户机—服务器开发 20
2.5.4 关于集成的最后想法 20
2.6 小结 20
第二部分 为iphone设计网页
第3章 为iphone重新开发网页 22
3.1 iphone视区 23
3.1.1 更改整站视区 24
3.1.2 更改局部视区 24
3.1.3 视区属性和常量 25
3.2 实现“iphone友好的”网页 26
3.2.1 避免缺少iphone功能 26
3.2.2 创建链接 28
3.2.3 web开发中的良好习惯 28
3.2.4 解决常见问题 29
3.3 实现“iphone优化的”网页 31
3.3.1 通过user_agent检测iphone 31
3.3.2 通过css检测iphone 31
3.3.3 使用css进行优化 32
3.4 使用iphone chrome 32
3.4.1 三个栏 32
3.4.2 web剪贴 33
3.5 捕获iphone事件 34
3.5.1 单指触摸 34
3.5.2 两指手势 35
3.6 重新显示网页 36
3.6.1 gmail iphone页面 36
3.6.2 facebook iphone页面 37
3.7 支持非iphone用户 38
3.8 小结 39
第4章 高级webkit和文本web应用程序 40
4.1 webkit简介 40
4.1.1 新的html元素 41
4.1.2 新的css元素 41
4.2 css变换、过渡和动画 43
4.2.1 变换函数 43
4.2.2 过渡函数 44
4.2.3 动画函数 47
4.3 webkit数据库 48
4.3.1 加载数据库 48
4.3.2 运行事务 48
4.3.3 一个示例数据库 49
4.4 调整chrome 51
4.5 识别触摸和手势 52
4.5.1 访问事件 52
4.5.2 转换事件 53
4.5.3 访问触摸 53
4.5.4 访问手势 55
4.6 识别方向 56
4.7 即将推出的特性:css渐变和蒙版 57
4.7.1 css渐变 57
4.7.2 css蒙版 58
4.7.3 canvas替代方法 58
4.8 小结 59
第5章 使用iui开发web应用程序 60
5.1 创建你自己的iphone ui 60
5.1.1 图形界面 60
5.1.2 iphone数据范型 62
5.1.3 其他iphone设计元素 62
5.2 准备iui 63
5.3 使用iui进行开发 64
5.3.1 iui工具栏 64
5.3.2 iui列表 65
5.3.3 iui对话框 67
5.3.4 iui搜索支持ajax 68
5.3.5 iui面板和行 68
5.3.6 iui按钮 70
5.3.7 iui属性 70
5.4 创建iui后端 71
5.5 其他iui技巧 72
5.5.1 组织代码 72
5.5.2 改善数据代码清单 73
5.5.3 压缩iui 74
5.5.4 选择不同的外观 74
5.6 集成iui与其他库 75
5.6.1 结合jquery与iui 75
5.6.2 结合iui与webkit 76
5.7 小结 77
第6章 使用canvas开发web应用程序 78
6.1 准备canvas 78
6.1.1 启用canvas 78
6.1.2 确保兼容性 79
6.1.3 合并功能 79
6.2 绘制路径 80
6.2.1 基本路径命令 81
6.2.2 曲线命令 82
6.3 绘制形状 84
6.3.1 绘制矩形 84
6.3.2 编写形状函数 85
6.4 创建样式:颜色、渐变和线条 86
6.4.1 颜色样式 86
6.4.2 渐变样式 86
6.4.3 线条样式 87
6.5 修改合成与剪切 88
6.5.1 全局变量 88
6.5.2 剪切路径 89
6.6 变换和恢复 90
6.6.1 变换 90
6.6.2 状态栈 90
6.7 整合图像、模式和文本 91
6.7.1 图像命令 91
6.7.2 模式命令 92
6.7.3 文本命令 92
6.8 合并功能 93
6.9 应用动画 93
6.10 小结 95
第7章 使用dashcode构建web应用程序 96
7.1 dashcode简介 96
7.1.1 开始dashcode项目 97
7.1.2 dashcode剖析 97
7.1.3 运行dashcode项目 100
7.1.4 部署dashcode项目 100
7.2 编写dashcode程序 101
7.2.1 使用库部件 102
7.2.2 添加动作按钮 104
7.2.3 使用基于列表的browser模板 105
7.2.4 使用stacklayout部件 106
7.2.5 探究dashcode的其余方面 108
7.3 集成dashcode与已有库 109
7.3.1 集成dashcode与webkit 109
7.3.2 集成dashcode与iui 110
7.3.3 集成dashcode与canvas 110
7.3.4 更深的集成 110
7.4 小结 110
第8章 调试iphone网页 111
8.1 在本地使用apache 111
8.2 使用桌面浏览器进行调试 112
8.2.1 使用safari 112
8.2.2 使用firefox 113
8.2.3 使用iphone仿真器 115
8.3 调试iphone 115
8.3.1 使用iphone调试工具.. 116
8.3.2 使用bookmarklet 116
8.4 分析iphone 117
8.5 小结 118
第9章 适用于web开发人员的sdk编程 119
9.1 c语言概念简介 119
9.1.1 声明和类型 120
9.1.2 内存管理和指针 121
9.1.3 文件结构和指令 121
9.1.4 编译 122
9.1.5 其他元素 122
9.2 面向对象编程简介 123
9.2.1 对象和类 123
9.2.2 消息传递 124
9.3 模型—视图—控制器(mvc)模式 125
9.4 小结 125
第三部分 sdk基本原理
第10章 objective-c和iphone os 128
10.1 下载sdk 128
10.1.1 安装sdk 128
10.1.2 sdk剖析 130
10.2 objective-c介绍 131
10.2.1 概述 131
10.2.2 消息 132
10.2.3 类定义 133
10.2.4 属性 135
10.2.5 其他编译器指令 137
10.2.6 类别和协议 138
10.2.7 objective-c总结 138
10.3 iphone os介绍 139
10.3.1 iphone os剖析 139
10.3.2 iphone对象的层次结构 140
10.3.3 窗口和视图 141
10.4 iphone os的方法 142
10.4.1 对象创建 142
10.4.2 内存管理 143
10.4.3 事件响应 145
10.4.4 生命周期管理 146
10.5 小结 146
第11章 使用xcode 147
11.1 xcode简介 147
11.1.1 剖析xcode 147
11.1.2 在xcode中编译和执行 148
11.2 在xcode中创建第一个项目:hello, world! 149
11.2.1 理解main.m 149
11.2.2 理解应用程序委托 150
11.2.3 编写“hello, world!” 151
11.3 在xcode中新建类 154
11.3.1 新类简介 154
11.3.2 头文件 154
11.3.3 源代码文件 155
11.3.4 链接 156
11.4 xcode的其他功能 157
11.4.1 在xcode中添加框架 157
11.4.2 在xcode中使用其他模板 157
11.4.3 xcode提示和技巧 158
11.5 小结 159
第12章 使用interface builder 160
12.1 interface builder介绍 160
12.1.1 interface builder剖析 160
12.1.2 在interface builder中模拟 163
12.2 在interface builder中创建第一个项目:图片和网页 163
12.2.1 新建对象 163
12.2.2 操作图形对象 164
12.2.3 使用inspector窗口 164
12.2.4 使用图片 166
12.3 在interface builder中建立连接 167
12.3.1 声明iboutlet 167
12.3.2 连接对象 167
12.3.3 使用iboutlet编写代码 168
12.4 其他interface builder功能 169
12.4.1 建立其他连接 169
12.4.2 创建外部对象 170
12.4.3 初始化interface builder对象 170
12.4.4 访问.xib文件 170
12.4.5 新建.xib文件 171
12.5 小结 171
第13章 创建基本视图控制器 172
13.1 视图控制器家族 172
13.2 基本的视图控制器 173
13.2.1 视图控制器的分析图 173
13.2.2 创建视图控制器 174
13.2.3 构建视图控制器界面 175
13.2.4 使用视图控制器 176
13.3 表视图控制器 180
13.3.1 表视图控制器的分析图 180
13.3.2 创建表视图控制器 180
13.3.3 构建表界面 181
13.3.4 使用表视图控制器 185
13.4 小结 186
第14章 监控事件和动作 187
14.1 事件简介 187
14.1.1 响应者链 187
14.1.2 触摸和事件 188
14.2 触摸的例子:事件报告程序 190
14.2.1 在interface builder中构建应用程序 191
14.2.2 为触摸准备视图 192
14.2.3 控制事件 193
14.3 其他事件功能 195
14.3.1 规则化事件 195
14.3.2 其他事件方法和属性 196
14.4 动作简介 196
14.4.1 uicontrol对象 196
14.4.2 控件事件和动作 197
14.4.3 addtarget:action:forcontrolevents:方法 198
14.5 向应用程序添加按钮 199
14.5.1 使用addtarget:action:forcontrolevents: 199
14.5.2 使用ibaction 200
14.6 其他动作功能 201
14.6.1 uitextfield 201
14.6.2 uislider 203
14.6.3 textfield/slider组合 203
14.6.4 创建动作很容易 204
14.6.5 使用动作 204
14.7 通知简介 204
14.8 小结 205
第15章 创建高级视图控制器 206
15.1 选项卡栏视图控制器 206
15.1.1 选项卡栏控制器分析 206
15.1.2 创建选项卡栏控制器 207
15.1.3 构建选项卡栏界面 209
15.1.4 使用选项卡栏控制器 211
15.2 导航控制器 212
15.2.1 导航控制器分析 212
15.2.2 创建导航控制器 213
15.2.3 构建导航控制器 214
15.2.4 使用导航控制器 217
15.3 使用翻转控制器 218
15.4 模式视图控制器 220
15.5 小结 221
第四部分 使用sdk工具包编程
第16章 处理数据 224
16.1 接收用户动作 224
16.2 管理用户首选项 225
16.2.1 创建自己的首选项 226
16.2.2 使用系统设置 230
16.3 打开文件 234
16.3.1 访问软件包 235
16.3.2 访问其他目录 235
16.3.3 操纵文件 236
16.3.4 filesaver:一个uitextview示例 237
16.4 使用sqlite 239
16.4.1 设置sqlite数据库 239
16.4.2 访问sqlite 240
16.4.3 访问sqlite数据库 241
16.4.4 通过数据库构建导航菜单 241
16.4.5 本例的扩展 247
16.5 访问地址簿 247
16.5.1 框架概述 248
16.5.2 访问地址簿属性 248
16.5.3 查询地址簿 249
16.5.4 使用地址簿ui 251
16.6 小结 255
第17章 定位:加速计和位置 256
17.1 加速计和方向 256
17.1.1 orientation属性 256
17.1.2 方向通知 257
17.2 加速计和移动 257
17.2.1 访问uiaccelerometer 258
17.2.2 解析uiacceleration 258
17.2.3 查看重力 259
17.2.4 查看移动 260
17.2.5 识别简单的加速计移动 261
17.3 加速计和手势 263
17.4 关于core location 265
17.4.1 位置类 265
17.4.2 使用位置和距离的示例 266
17.4.3 使用海拔的示例 268
17.4.4 core location和互联网 270
17.5 小结 271
第18章 媒体:图像和声音 272
18.1 图像介绍 272
18.1.1 加载uiimage 272
18.1.2 绘制uiimageview 273
18.1.3 在uikit中修改图像 274
18.2 利用core graphics绘制简单图像 275
18.3 访问照片 276
18.3.1 使用图像选取器 276
18.3.2 拍照 276
18.3.3 保存到相册 277
18.4 拼合:一个图像例子 277
18.4.1 拼合视图控制器 278
18.4.2 拼合临时图像视图 281
18.4.3 拼合视图 282
18.4.4 扩展这个例子 283
18.5 使用media player框架 283
18.5.1 媒体播放器类 283
18.5.2 音量视图 285
18.5.3 更好地集成媒体播放器 286
18.6 手动播放声音 286
18.6.1 播放简单声音 287
18.6.2 振动iphone 288
18.6.3 播放复杂的声音 288
18.6.4 其他音频框架 290
18.7 小结 290
第19章 绘制图形 291
19.1 quartz 2d简介 291
19.2 quartz上下文 292
19.2.1 在uiview上绘制图形 293
19.2.2 在位图上绘制图形 294
19.3 绘制路径 295
19.3.1 结束路径 296
19.3.2 创建可重用路径 296
19.3.3 绘制矩形 297
19.4 设置图形状态 298
19.4.1 设置颜色 298
19.4.2 变换 299
19.4.3 设置裁剪路径 301
19.4.4 其他设置 302
19.4.5 管理状态 302
19.5 quartz中的高级绘图功能 302
19.5.1 绘制渐变 303
19.5.2 绘制图像 304
19.5.3 绘制文字 305
19.5.4 未介绍的内容 306
19.6 示例:在图片上绘图 306
19.6.1 photodraw视图控制器 307
19.6.2 photodraw视图 308
19.6.3 扩展示例 311
19.7 core animation简介 311
19.7.1 core animation基础 312
19.7.2 core animation入门 313
19.7.3 绘制简单的隐式动画 313
19.7.4 绘制简单的显式动画 313
19.8 opengl简介 314
19.9 小结 315
第20章 web:web视图和因特网协议 316
20.1 因特网的层次结构 316
20.2 低层次联网 316
20.3 使用url 318
20.3.1 创建nsurl 318
20.3.2 构建nsurlrequest 319
20.3.3 手动操作html数据 320
20.4 使用uiwebview 320
20.4.1 调用web视图 320
20.4.2 管理web视图委托 321
20.4.3 缩略图:一个web视图例子 322
20.4.4 google maps:一个core location示例 324
20.5 解析xml 325
20.5.1 启动nsxmlparser 326
20.5.2 充当委托 326
20.5.3 构建示例rss阅读器:一个xml示例 327
20.5.4 海拔高度重读:一个core location示例 332
20.6 提交给web 334
20.6.1 手动提交 334
20.6.2 提交表单 335
20.7 访问社会网络 336
20.7.1 使用web协议 336
20.7.2 使用touchjson 337
20.8 小结 338
附录a iphone os类参考 339
附录b 外部资源和参考资料 342
附录c 发布你的sdk程序... 344
第1章 iphone简介 2
1.1 iphone核心规范 3
1.1.1 iphone的输入及输出规范 3
1.1.2 iphone网络规范 4
1.1.3 iphone浏览器规范 5
1.1.4 iphone的其他硬件特性 5
1.2 iphone在行业中的比较 6
1.2.1 物理比较 6
1.2.2 具有竞争力的因特网浏览 6
1.2.3 移动web标准 7
1.2.4 其他创新 7
1.3 iphone的独特之处 7
1.4 理解iphone输入和输出 8
1.4.1 输出和iphone视区 8
1.4.2 输出和方向 9
1.4.3 输入和iphone定位机制 10
1.5 小结 11
第2章 web还是sdk 12
2.1 比较两种编程风格 12
.2.2 核心思想:编程的连续性 13
2.3 优点和缺点 14
2.3.1 web开发 14
2.3.2 sdk开发 15
2.3.3 程序平台 16
2.4 独立iphone开发 17
2.4.1 web开发模型 17
2.4.2 sdk开发模式 18
2.5 集成iphone开发 19
2.5.1 镜像开发 19
2.5.2 混合开发 19
2.5.3 客户机—服务器开发 20
2.5.4 关于集成的最后想法 20
2.6 小结 20
第二部分 为iphone设计网页
第3章 为iphone重新开发网页 22
3.1 iphone视区 23
3.1.1 更改整站视区 24
3.1.2 更改局部视区 24
3.1.3 视区属性和常量 25
3.2 实现“iphone友好的”网页 26
3.2.1 避免缺少iphone功能 26
3.2.2 创建链接 28
3.2.3 web开发中的良好习惯 28
3.2.4 解决常见问题 29
3.3 实现“iphone优化的”网页 31
3.3.1 通过user_agent检测iphone 31
3.3.2 通过css检测iphone 31
3.3.3 使用css进行优化 32
3.4 使用iphone chrome 32
3.4.1 三个栏 32
3.4.2 web剪贴 33
3.5 捕获iphone事件 34
3.5.1 单指触摸 34
3.5.2 两指手势 35
3.6 重新显示网页 36
3.6.1 gmail iphone页面 36
3.6.2 facebook iphone页面 37
3.7 支持非iphone用户 38
3.8 小结 39
第4章 高级webkit和文本web应用程序 40
4.1 webkit简介 40
4.1.1 新的html元素 41
4.1.2 新的css元素 41
4.2 css变换、过渡和动画 43
4.2.1 变换函数 43
4.2.2 过渡函数 44
4.2.3 动画函数 47
4.3 webkit数据库 48
4.3.1 加载数据库 48
4.3.2 运行事务 48
4.3.3 一个示例数据库 49
4.4 调整chrome 51
4.5 识别触摸和手势 52
4.5.1 访问事件 52
4.5.2 转换事件 53
4.5.3 访问触摸 53
4.5.4 访问手势 55
4.6 识别方向 56
4.7 即将推出的特性:css渐变和蒙版 57
4.7.1 css渐变 57
4.7.2 css蒙版 58
4.7.3 canvas替代方法 58
4.8 小结 59
第5章 使用iui开发web应用程序 60
5.1 创建你自己的iphone ui 60
5.1.1 图形界面 60
5.1.2 iphone数据范型 62
5.1.3 其他iphone设计元素 62
5.2 准备iui 63
5.3 使用iui进行开发 64
5.3.1 iui工具栏 64
5.3.2 iui列表 65
5.3.3 iui对话框 67
5.3.4 iui搜索支持ajax 68
5.3.5 iui面板和行 68
5.3.6 iui按钮 70
5.3.7 iui属性 70
5.4 创建iui后端 71
5.5 其他iui技巧 72
5.5.1 组织代码 72
5.5.2 改善数据代码清单 73
5.5.3 压缩iui 74
5.5.4 选择不同的外观 74
5.6 集成iui与其他库 75
5.6.1 结合jquery与iui 75
5.6.2 结合iui与webkit 76
5.7 小结 77
第6章 使用canvas开发web应用程序 78
6.1 准备canvas 78
6.1.1 启用canvas 78
6.1.2 确保兼容性 79
6.1.3 合并功能 79
6.2 绘制路径 80
6.2.1 基本路径命令 81
6.2.2 曲线命令 82
6.3 绘制形状 84
6.3.1 绘制矩形 84
6.3.2 编写形状函数 85
6.4 创建样式:颜色、渐变和线条 86
6.4.1 颜色样式 86
6.4.2 渐变样式 86
6.4.3 线条样式 87
6.5 修改合成与剪切 88
6.5.1 全局变量 88
6.5.2 剪切路径 89
6.6 变换和恢复 90
6.6.1 变换 90
6.6.2 状态栈 90
6.7 整合图像、模式和文本 91
6.7.1 图像命令 91
6.7.2 模式命令 92
6.7.3 文本命令 92
6.8 合并功能 93
6.9 应用动画 93
6.10 小结 95
第7章 使用dashcode构建web应用程序 96
7.1 dashcode简介 96
7.1.1 开始dashcode项目 97
7.1.2 dashcode剖析 97
7.1.3 运行dashcode项目 100
7.1.4 部署dashcode项目 100
7.2 编写dashcode程序 101
7.2.1 使用库部件 102
7.2.2 添加动作按钮 104
7.2.3 使用基于列表的browser模板 105
7.2.4 使用stacklayout部件 106
7.2.5 探究dashcode的其余方面 108
7.3 集成dashcode与已有库 109
7.3.1 集成dashcode与webkit 109
7.3.2 集成dashcode与iui 110
7.3.3 集成dashcode与canvas 110
7.3.4 更深的集成 110
7.4 小结 110
第8章 调试iphone网页 111
8.1 在本地使用apache 111
8.2 使用桌面浏览器进行调试 112
8.2.1 使用safari 112
8.2.2 使用firefox 113
8.2.3 使用iphone仿真器 115
8.3 调试iphone 115
8.3.1 使用iphone调试工具.. 116
8.3.2 使用bookmarklet 116
8.4 分析iphone 117
8.5 小结 118
第9章 适用于web开发人员的sdk编程 119
9.1 c语言概念简介 119
9.1.1 声明和类型 120
9.1.2 内存管理和指针 121
9.1.3 文件结构和指令 121
9.1.4 编译 122
9.1.5 其他元素 122
9.2 面向对象编程简介 123
9.2.1 对象和类 123
9.2.2 消息传递 124
9.3 模型—视图—控制器(mvc)模式 125
9.4 小结 125
第三部分 sdk基本原理
第10章 objective-c和iphone os 128
10.1 下载sdk 128
10.1.1 安装sdk 128
10.1.2 sdk剖析 130
10.2 objective-c介绍 131
10.2.1 概述 131
10.2.2 消息 132
10.2.3 类定义 133
10.2.4 属性 135
10.2.5 其他编译器指令 137
10.2.6 类别和协议 138
10.2.7 objective-c总结 138
10.3 iphone os介绍 139
10.3.1 iphone os剖析 139
10.3.2 iphone对象的层次结构 140
10.3.3 窗口和视图 141
10.4 iphone os的方法 142
10.4.1 对象创建 142
10.4.2 内存管理 143
10.4.3 事件响应 145
10.4.4 生命周期管理 146
10.5 小结 146
第11章 使用xcode 147
11.1 xcode简介 147
11.1.1 剖析xcode 147
11.1.2 在xcode中编译和执行 148
11.2 在xcode中创建第一个项目:hello, world! 149
11.2.1 理解main.m 149
11.2.2 理解应用程序委托 150
11.2.3 编写“hello, world!” 151
11.3 在xcode中新建类 154
11.3.1 新类简介 154
11.3.2 头文件 154
11.3.3 源代码文件 155
11.3.4 链接 156
11.4 xcode的其他功能 157
11.4.1 在xcode中添加框架 157
11.4.2 在xcode中使用其他模板 157
11.4.3 xcode提示和技巧 158
11.5 小结 159
第12章 使用interface builder 160
12.1 interface builder介绍 160
12.1.1 interface builder剖析 160
12.1.2 在interface builder中模拟 163
12.2 在interface builder中创建第一个项目:图片和网页 163
12.2.1 新建对象 163
12.2.2 操作图形对象 164
12.2.3 使用inspector窗口 164
12.2.4 使用图片 166
12.3 在interface builder中建立连接 167
12.3.1 声明iboutlet 167
12.3.2 连接对象 167
12.3.3 使用iboutlet编写代码 168
12.4 其他interface builder功能 169
12.4.1 建立其他连接 169
12.4.2 创建外部对象 170
12.4.3 初始化interface builder对象 170
12.4.4 访问.xib文件 170
12.4.5 新建.xib文件 171
12.5 小结 171
第13章 创建基本视图控制器 172
13.1 视图控制器家族 172
13.2 基本的视图控制器 173
13.2.1 视图控制器的分析图 173
13.2.2 创建视图控制器 174
13.2.3 构建视图控制器界面 175
13.2.4 使用视图控制器 176
13.3 表视图控制器 180
13.3.1 表视图控制器的分析图 180
13.3.2 创建表视图控制器 180
13.3.3 构建表界面 181
13.3.4 使用表视图控制器 185
13.4 小结 186
第14章 监控事件和动作 187
14.1 事件简介 187
14.1.1 响应者链 187
14.1.2 触摸和事件 188
14.2 触摸的例子:事件报告程序 190
14.2.1 在interface builder中构建应用程序 191
14.2.2 为触摸准备视图 192
14.2.3 控制事件 193
14.3 其他事件功能 195
14.3.1 规则化事件 195
14.3.2 其他事件方法和属性 196
14.4 动作简介 196
14.4.1 uicontrol对象 196
14.4.2 控件事件和动作 197
14.4.3 addtarget:action:forcontrolevents:方法 198
14.5 向应用程序添加按钮 199
14.5.1 使用addtarget:action:forcontrolevents: 199
14.5.2 使用ibaction 200
14.6 其他动作功能 201
14.6.1 uitextfield 201
14.6.2 uislider 203
14.6.3 textfield/slider组合 203
14.6.4 创建动作很容易 204
14.6.5 使用动作 204
14.7 通知简介 204
14.8 小结 205
第15章 创建高级视图控制器 206
15.1 选项卡栏视图控制器 206
15.1.1 选项卡栏控制器分析 206
15.1.2 创建选项卡栏控制器 207
15.1.3 构建选项卡栏界面 209
15.1.4 使用选项卡栏控制器 211
15.2 导航控制器 212
15.2.1 导航控制器分析 212
15.2.2 创建导航控制器 213
15.2.3 构建导航控制器 214
15.2.4 使用导航控制器 217
15.3 使用翻转控制器 218
15.4 模式视图控制器 220
15.5 小结 221
第四部分 使用sdk工具包编程
第16章 处理数据 224
16.1 接收用户动作 224
16.2 管理用户首选项 225
16.2.1 创建自己的首选项 226
16.2.2 使用系统设置 230
16.3 打开文件 234
16.3.1 访问软件包 235
16.3.2 访问其他目录 235
16.3.3 操纵文件 236
16.3.4 filesaver:一个uitextview示例 237
16.4 使用sqlite 239
16.4.1 设置sqlite数据库 239
16.4.2 访问sqlite 240
16.4.3 访问sqlite数据库 241
16.4.4 通过数据库构建导航菜单 241
16.4.5 本例的扩展 247
16.5 访问地址簿 247
16.5.1 框架概述 248
16.5.2 访问地址簿属性 248
16.5.3 查询地址簿 249
16.5.4 使用地址簿ui 251
16.6 小结 255
第17章 定位:加速计和位置 256
17.1 加速计和方向 256
17.1.1 orientation属性 256
17.1.2 方向通知 257
17.2 加速计和移动 257
17.2.1 访问uiaccelerometer 258
17.2.2 解析uiacceleration 258
17.2.3 查看重力 259
17.2.4 查看移动 260
17.2.5 识别简单的加速计移动 261
17.3 加速计和手势 263
17.4 关于core location 265
17.4.1 位置类 265
17.4.2 使用位置和距离的示例 266
17.4.3 使用海拔的示例 268
17.4.4 core location和互联网 270
17.5 小结 271
第18章 媒体:图像和声音 272
18.1 图像介绍 272
18.1.1 加载uiimage 272
18.1.2 绘制uiimageview 273
18.1.3 在uikit中修改图像 274
18.2 利用core graphics绘制简单图像 275
18.3 访问照片 276
18.3.1 使用图像选取器 276
18.3.2 拍照 276
18.3.3 保存到相册 277
18.4 拼合:一个图像例子 277
18.4.1 拼合视图控制器 278
18.4.2 拼合临时图像视图 281
18.4.3 拼合视图 282
18.4.4 扩展这个例子 283
18.5 使用media player框架 283
18.5.1 媒体播放器类 283
18.5.2 音量视图 285
18.5.3 更好地集成媒体播放器 286
18.6 手动播放声音 286
18.6.1 播放简单声音 287
18.6.2 振动iphone 288
18.6.3 播放复杂的声音 288
18.6.4 其他音频框架 290
18.7 小结 290
第19章 绘制图形 291
19.1 quartz 2d简介 291
19.2 quartz上下文 292
19.2.1 在uiview上绘制图形 293
19.2.2 在位图上绘制图形 294
19.3 绘制路径 295
19.3.1 结束路径 296
19.3.2 创建可重用路径 296
19.3.3 绘制矩形 297
19.4 设置图形状态 298
19.4.1 设置颜色 298
19.4.2 变换 299
19.4.3 设置裁剪路径 301
19.4.4 其他设置 302
19.4.5 管理状态 302
19.5 quartz中的高级绘图功能 302
19.5.1 绘制渐变 303
19.5.2 绘制图像 304
19.5.3 绘制文字 305
19.5.4 未介绍的内容 306
19.6 示例:在图片上绘图 306
19.6.1 photodraw视图控制器 307
19.6.2 photodraw视图 308
19.6.3 扩展示例 311
19.7 core animation简介 311
19.7.1 core animation基础 312
19.7.2 core animation入门 313
19.7.3 绘制简单的隐式动画 313
19.7.4 绘制简单的显式动画 313
19.8 opengl简介 314
19.9 小结 315
第20章 web:web视图和因特网协议 316
20.1 因特网的层次结构 316
20.2 低层次联网 316
20.3 使用url 318
20.3.1 创建nsurl 318
20.3.2 构建nsurlrequest 319
20.3.3 手动操作html数据 320
20.4 使用uiwebview 320
20.4.1 调用web视图 320
20.4.2 管理web视图委托 321
20.4.3 缩略图:一个web视图例子 322
20.4.4 google maps:一个core location示例 324
20.5 解析xml 325
20.5.1 启动nsxmlparser 326
20.5.2 充当委托 326
20.5.3 构建示例rss阅读器:一个xml示例 327
20.5.4 海拔高度重读:一个core location示例 332
20.6 提交给web 334
20.6.1 手动提交 334
20.6.2 提交表单 335
20.7 访问社会网络 336
20.7.1 使用web协议 336
20.7.2 使用touchjson 337
20.8 小结 338
附录a iphone os类参考 339
附录b 外部资源和参考资料 342
附录c 发布你的sdk程序... 344
iPhone in action introduction to web and SDK development
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×