图书介绍

深入浅出iPhone/iPad开发(第2版)

  • [美] Dan Pilone,[美] Tracey Pilone 著;杨光伟,魏丹 译
  • 出版社: 人民邮电出版社
  • ISBN:9787115300300
  • 版次:2
  • 商品编码:11226470
  • 包装:平装
  • 开本:12开
  • 出版时间:2013-05-01
  • 页数:614
  • 字数:1097000
  • 正文语种:中文版

手机扫码下载

手机扫码下载

赞助商链接

图书目录

介绍
你的大脑在思考iOS开发。在这里你将尝试学习一些内容,而你的大脑则使你的学习不会太持久。你的大脑在想,“最好离开这个房间去做一些更重要的事情,比如远离野兽,或者裸体滑雪哪一个主意更糟。”因此,你如何才能骗你的大脑去思考,获取足够的知识来开发自己的iPhone和iPad应用程序呢?

这本书适合谁
元认知:关于思考的思想
下面是你可以怎样使你的大脑屈服
读我
技术审查小组
鸣谢

1 入门 使用iOS的移动终端
iPhone改变一切
iPhone 4“又一次改变了一切”。而现在你所拥有的iPad也将要改变一切。iOS设备现在能够胜任文字处理、电子阅读和摄像机的工作。它们被应用在商业和医学领域作为企业设备,而App Store作为一个平台被每一个开发人员所使用,从个人产品到大牌公司产品。苹果公司提供了软件,而我们将帮助你获得知识,我们相信你已经拥有了超级高的热情。

因此,你想要建立一个iOS应用程序……
……因为每个人都想要一个!
应用程序生活在名为iTunes的宇宙中
作出决定的时间
所有的一切都从iOS SDK开始
四处看看
Xcode包含了应用程序模板,帮助你开始创建新的应用程序
Xcode是一个全功能的集成开发环境
Xcode是你的iOS项目的枢纽
在Xcode中建立你的界面
添加按钮到你的视图中
iOS模拟器让你可以在Mac上测试你的应用程序
iDecide的逻辑
替换按钮的文本
你正在使用模型-视图-控制器模式
iDecide实际上很简单
发生了什么
使用GUI编辑器连接UI控制到代码
组件可以触发特定事件
连接你的事件到方法
你已经创建了自己的第一个iPhone应用程序!
你的iOS工具箱

2 iOS 应用程序模式 你好,Renee!
应用程序有很多移动部件。
好吧,实际上,它们没有任何真正的移动部件,但它们确实有很多的UI控件。一个典型的iOS应用程序绝对不仅只有一个按钮,那么是时候来创造一个了。使用一些很复杂的控件,意味着你需要付出比平常更多的精力去考虑如何设计你的应用程序。在这一章中,你将学习如何把一个更大的应用程序与iOS SDK中使用的基本设计模式结合在一起。

首先,我们需要想出Mike(真的)想要什么
应用程序设计规则——iOS HIG
HIG对选择器和按键的准则
为InstaEmail创建一个新的基于视图的项目
根视图的生命周期
我们需要数据
当你想要控制输入时使用选择器
选择器从数据源获取它们的数据……

3 适于iOS的Objective-C 电子邮件需要多样化
我们在第2章中做了很多,但那是什么语言?
你编写的部分代码可能看起来很熟悉,现在是时候去发现在它们之下的到底是什么了。iOS SDK有一个很棒的工具,那意味着你不需要为任何事情编写代码,但是这并不代表你编写应用程序时不需要了解一些相关的底层代码,包括属性、消息传递以及内存管理。除非你不使用它们,所有的应用程序都只用默认部件!但你想要更多的部件,不是吗?

Renee正在怀疑……
为自定义输入提供空间
头文件描述到你的类的接口
自动生成的访问器还处理内存管理
为了保持你的内存清晰明了,你只需要记住两件事情
但是当Mike完成输入时……
自定义你的UITextField
使用键盘的组件会要求它出现……
请求UITextField放弃聚焦
在Objective-C中的消息使用命名参数
当完成按键被按下时,使用消息传递告诉我们的视图控制器
自定义便签在哪里
你的Objective-C工具箱

4 多视图 一个带有视图的表格
大部分iOS应用程序的视图都不止一个。
我们编写过一个很酷的带有一个视图的应用程序,但是只要用过智能手机的人都知道,大部分应用程序并不是那样的。一些令人印象深刻的iOS应用程序,通过使用多视图处理复杂的信息,来完成一个完美的工作。我们将要开始学习导航控制器和表格视图,就像你在你的邮件和联系人程序中看到的那样。我们仅仅只需要进行一次转折……

那么,这些视图是如何结合在一起的呢
导航模板使多个视图结合在一起
建立表格试图
一个表格是一个单元格的集合
只是几个饮料……
plist是保存和加载数据的一种简单方法
数组(以及更多)内置支持plist
使用一个详细视图向下钻取数据
仔细观看详细视图
使用导航控制器在视图之间切换
导航控制器维护一个视图控制器栈
字典以键值对存储信息
调试——iOS开发的阴暗面
调试冒险旅程上的第一步:控制台
当你的应用程序运行时与其互动
Xcode在你的应用程序中断后也会给你支持
Xcode调试器显示你的应用程序的状态
你的iOS工具箱

5 plist 和模式视图 改善你的应用程序
所以,你有了一个快要完成的应用程序……
这是每一个应用程序必需的过程!你使一些功能工作,决定添加一些东西,需要一些代码重构,并回复一些从应用程序商店得到的反馈。开发一个应用程序,不会一直是一个线性的过程,而是在这个过程中不断地去学习。

一切都随着Sam而开始……
使用调试器来研究崩溃的原因
更新你的代码,使之处理一个plist的字典
详细视图需要数据
另一个键值是关键
我们有一个可用性问题
允许使用公开按键显示这里有更多详细信息
销售势头强劲
使用导航控制器按键添加饮料
按键应该创建一个新的视图
我们需要一个视图……但没必要是一个新的视图
视图控制器定义视图的行为
nib文件包含UI组件和连接……
你可以像处理其他类那样,子类化和扩展视图控制器
模式视图让用户聚焦在手头的任务
任何试图都可以呈现出模式视图
我们的模式视图没有导航栏
创建保存和取消按键
编写保存和取消动作
你的iOS工具箱

6 保存、编辑和整理数据 每个人都是一个编辑……
显示数据是很好,但是添加和编辑信息才是真正使应用程序能够运行的关键。
DrinkMixer是伟大的——它使用了一些单元格自定义,并使用plist字典来显示数据。它是一个有借鉴意义的应用程序,你已经在添加新饮料上有了一个良好的开端。现在,是时候给用户修改数据(保存、编辑和整理)的能力了,使它对每个人都更有用。在这一章中,我们会看看iOS应用程序中的编辑模式,以及如何引导用户使用导航控制器。

Sam准备添加一个Red-Headed School Girl
……被键盘挡住了
将你的内容装进一个滚动视图
滚动视图与屏幕尺寸一致
键盘改变了可见区域
iOS通知你有关键盘的事情
在默认通知中心为事件注册
键盘事件告诉你键盘的状态和大小
表格视图不知道它的数据已经改变
数组也会发生故障
表格视图已经内置了对编辑和删除的支持
你的iOS开发工具箱
Sam有了另一个项目的想法……

7 向iPad 迁移 我们需要更多的空间
iPhone很伟大,但是屏幕再大一点会更好。
当iPad第一次出现时,一些评论批评它“只是一部大点儿的iPhone”(但是,唔,它不是电话)。在很多方面,屏幕创造了很多机会,给予用户更好的交互体验。更大的屏幕意味着阅读会更舒适,网页会更容易查看,并且使设备看起来更像是一本书,或者一个日历,或者你已经知道如何使用的其他很多事物,例如一个菜单……

在iPad上的DrinkMixer
iPad模拟器
HIG同样涉及了iPad
使用Xcode来建立你的通用应用程序
检查你的设备
旋转是iPad的关键
视图持久性的问题
不要忘记tableview
你的iOS开发工具箱

8 标签栏和核心数据 企业应用程序
企业应用程序意味着以不同方式管理更多的数据。
大大小小的公司是iPhone和iPad应用程序的重要市场。一个带有定制应用程序的小型手持设备,可以在员工外出办事时为公司做出巨大贡献。大多数这种类型的应用程序是用来管理大量数据的,而且自从iOS 3.0,开始有了内置的核心数据支持。有了核心数据和另外一个新的控制器(标签栏控制器),我们可以为正义建立一个应用程序!

HF赏金猎人
一个新的iPhone控件
选择一个模板开始iBountyHunter
对于通用应用程序有不同的结构
画出iBountyHunter iPhone如何工作……
……以及它如何适应通用应用程序
创建逃犯列表视图
记下来:抓获视图
一个视图的内容实际上是子视图
在与Bob的快速会面之后……
核心数据让你聚焦在你的应用程序
核心数据需要知道去加载什么
核心数据使用一个管理对象模型描述一个实体
建立你的逃犯实体
使用一个NSFetchRequest去描述你的搜索
Bob的数据库是一个资源
返回核心数据堆栈
模板为一个SQLite DB建立东西
iOS应用程序是只读的
iPhone的应用程序结构定义了你可以在哪里读取和写入
复制数据库到Documents目录
你的核心数据工具箱

9 核心数据的迁移和优化 事情改变了
我们有了一个伟大的应用程序在工作。
iBountyHunter成功加载了Bob需要的数据,让他可以简单地查看逃犯。但是,当数据发生改变时会怎么样?Bob需要一些新的功能,那会对数据模型做些什么?在本章中,你将学会如何处理你的数据模型变化,以及如何使用更多的核心数据特性。

Bob需要文档
任何事情都源于我们的对象模型
数据没有被更新
数据迁移是一个常见的问题
迁移旧的数据到新的模型
Xcode让你轻松地命名数据模型版本
核心数据可以“轻量化”迁移数据
这里是你目前为止所做的……
Bob有一些设计想法
你的应用程序拥有自己的生命周期……
多任务衔接的规则
给Bob的一个快速演示
为过滤数据使用判断
我们需要在NSFetchRequest上设置一个判断
核心数据控制器类提供高效率的结果处理
一些高效的一体化流程
创建新的FetchedResultsController获取方法
我们需要刷新数据
你的数据工具箱

10 照相机、地图套件与核心位置 现实世界中的证明iOS设备知道它们在哪里且看到了什么。
任何iPhone、iPod Touch或者iPad的用户都会知道,这些设备不仅仅只是管理数据,它们还可以拍摄照片,找出你的位置,并通过应用程序把那些信息放在一起。这些华丽的功能只需通过点击进入iOS提供给你的工具就可以实现,你可以很轻松地导入图片、位置和地图,而不需使用很多的代码。

对于Bob来说,支付需要证明
应用照相机的方式……
有方法进行检查
使用动作表单提示用户
Bob除了时间以外,还需要位置
核心位置可以通过多种方法找到你
添加一个新的框架
只是纬度和经度没有为Bob工作
iOS中的地图套件
为地图做一些小的自定义设置
注解需要多一些的工作技巧
完整执行注解协议
你的位置工具箱

11 iPad UI 自然的界面
iPad是关于现实世界中存在的一切。
我们已经在前几章为一个已有的应用程序DrinkMixer建立了一个基本的iPad端口,但现在是时候来建立一个界面,让它与一些现实世界的东西一起工作了。通过模仿人们在现实世界使用的东西,用户在打开应用程序时会知道如何使用该界面。我们将使用一些现实世界的元素,帮助Bob抓住坏人……

Bob也需要iPad应用程序……
iOS HIG用户体验指南
你的界面也要迭代式
BountyHunterHD是基于一个分拆视图控制器的
统一自定义的东西
似乎我们有一个麻烦……
UIWebview有很多选项
HTML、CSS和Objective-C
使用UIWebView
你的NUI工具箱

12 遗留问题 主要的4件事情(我们没有讲述的)
究竟是不是有什么事情没有说呢?我们知道你想说什么……
当你认为工作已经完成时,其实还有更多的事情。我们不会在没有给你讲述一些额外细节的情况下就结束,有些事情只是没有合适的地方放入书中。至少,你要能够拿着这本书四处移动,而无需一个金属轮在底部。
因此,瞥一眼,看看你(仍然)可能错过了什么。

1.国际化和区域化
区域化字符串资源
2.视图动画
3.加速计
理解设备的加速度
4.一两句话简单地说说游戏……
Quartz和OpenGL

13 准备发布一个应用程序 为App Store做好准备
你想要让你的应用程序到App Store,对吗?
目前为止,我们已经在模拟器中基本完成了应用程序,一切都很好。但是要让事情进入下一个阶段,你需要在申请一个应用程序进入App Store之前,在一部真正的iPhone、iPad或iPod Touch上安装这个应用程序。而唯一可以做到这件事情的方法,是注册成为苹果的开发者。即使这样,也不仅仅是在Xcode中点击一个按键,让你编写的应用程序安装到个人设备上的问题。要做到这一点,现在是时候与苹果公司谈谈了。

苹果的规矩
配置文件把它们整合到一起
在Organizer 中保持跟踪
……

查看全部 ↓

精品推荐