基本信息
- 原书名:Cocoa Programming Developer's Handbook
- 原出版社: Addison-Wesley Professional
编辑推荐
《Cocoa编程开发者手册》编著者奇斯纳尔。 Cocoa编程环境——Apple的一套非常强大的、干净的、面向对象的API——正日益成为几乎所有当代Mac os x开发的基础。经过了长时间的不断完善和改进,Cocoa已经成熟,形成了一个综合的编程环境,可用于陕速高效地开发Mac os x应用,甚至使其富有乐趣。 然而,Cocoa家族API惊人的规模,还有海量的官方文档,可能会吓到你,甚至是经验丰富的程序员。为了帮助Mac os x开发人员梳理和实际使用Cocoa的众多工具和技术,本书对Mac os x上的Cocoa API做了一个导览,深入讨论和实践展示了Cocoa的核心框架和其他重要组件,同时还提请读者注意一些更有趣,但往往被忽视的API和工具。本书以专家级的视角,对于从用户界面设计,到网络编程和性能优化等诸多重要主题进行了探讨。
内容简介
作译者
目录
第一部分 Cocoa概述
第1章 Cocoa 与Mac OS X
1.1 理解何时该用Cocoa
1.1.1 Carbon
1.1.2 Java
1.1.3 Cocoa
1.1.4 UNIX API
1.1.5 其他选择
1.2 理解Cocoa 在Mac OS X 中的角色
1.2.1 Cocoa
1.2.2 Quartz
1.2.3 Core Foundation
1.2.4 Darwin
1.2.5 XNU
1.3 概览
第2章 Cocoa 的可选语言
2.1 面向对象
2.2 Objective-C
2.2.1 Objective-C 的可选编译器
前言
这些API 数量非常庞大。在大多数Cocoa 程序中,你会包含Cocoa.h 这个头文件,它包含了两个构成Cocoa 的核心框架。这个头文件在预处理之后( 包含了所有引用的头文件) 足有100 000 行之多。如果把预处理后的头文件打印出来,你将能得到两倍于本书厚度的手册,而这还只是包括了核心的API,没有其他在本书讨论过的更高级的部分。
本书希望作为一本指引性的图书,标出这组庞大的API 中有价值的地方供进一步学习。和许多旅游书籍一样,这本书也会包含一些“非看不可”的目的地,所有人都应该了解一下,此外还有一些更为有趣但被关注过多的部分。
对Cocoa 这样的框架更精深的掌握来自于经年的练习和使用它所包含的类。这本书虽然提供了一份导引,但只有在你阅读了书中的内容并实践来开发自己的应用之后,才能成为一名OS X 开发专家。
谁该阅读这本书
这本书面向的是希望学习用Cocoa 的丰富API 开发OS X 应用程序的人。它的目标读者并非想学iPhone 开发的人。iPhone SDK 虽然是设计为让有经验的Mac 程序员能够很容易学习,而且和桌面API 也共享了很多核心的概念和框架,但仍然是一个独立的系统。阅读本书确实能让你在以后学习iPhone 开发时更容易一些,同时我们也指出了桌面和移动平台API 的区别,但它不会直接涵盖iPhone API。
如果你希望学习如何开发Mac OS X 下的丰富应用程序,这本书能帮到你。它涵盖了所有的核心API——自20 世纪90 年代初期NeXT 的工作站开始就基本没有变化,只是加入了互联网络环境的集成和处理多媒体的内容。
阅读本书需要一些基本的编程知识,前面的几章包含了对Objective-C 的介绍,对于已经熟悉类似C 或者Java 语言的读者应该足够了。但这一部分并不是为介绍基本编程概念而写的。
概览与组织
本书分为七个部分,每个部分都包含一部分的Cocoa API。
“Cocoa 概述”包含Cocoa 的背景,它在OS X 中的地位,它来自哪里。这部分包含并描述了Objective-C 语言,并给读者提供了用来创建Cocoa 应用的工具的概览。
在“Cocoa 框架” 中你会接触到组成Cocoa API 核心的Foundation 和Application Kit 框架。Foundation 提供了底层的核心函数,而Application Kit 则在它之上提供了构建丰富应用所需的特性。这部分介绍了这两个框架,概述它们如何结合起来,以及如何用它们创建应用程序。你将看到Cocoa 应用程序模型之下的基本概念,包括事件如何传送、绘图模型如何工作。在本部分的末尾你将理解如何用Cocoa 创建简单的应用。
“Cocoa 文档”涵盖了用Cocoa 开发文档驱动应用程序。文档驱动的应用会给某些持久化模型创建一致的窗口,通常是给文件。Cocoa 包含了很多支持此类应用的代码。你还会在这部分接触到Core Data 框架,它处理文档的自动持久化。
第四部分,“复杂用户界面”,将深入Application Kit。你会学习到更高级的视图对象,通过数据源与程序交互,并学会如何给它们动态提供数据。你还会看到如何创建新的视图对象。
第五部分,“高级图形技术”,在以上基础上探索了Cocoa 的一些更复杂的图形能力。包括桌面和iPhone OS X 都有的Core Animation 框架,让你能用少量代码就创建吸引人的动画效果。这部分还划出了一小部分讨论音频世界,如何提供用户界面的听觉响应。这包括使用OS X 的语音识别和合成API。本部分结束你将可以编写复杂的多媒体Cocoa 应用程序。
“用户界面集成”集中于让应用程序融入OS X 环境的那部分技术,这样它们就不再像是孤立的程序。这包括与系统搜索功能,以及许多共享存储,比如地址簿与日历的集成。
最后一部分,“系统编程”,介绍了Cocoa 的底层特性,包括网络编程和并发。这包括创建socket 到从远程URL 下载数据,并探讨了Foundation 框架的分布式对象系统。
本书不希望作为Apple 优秀文档的替代品,Cocoa 的每个类都有附带的参考,同时有在线版本并随Xcode 环境提供。其中有很多还提供了包含特定集合的类之间关系的指南。这样的材料总共有数万页。
你不会在书中找到每个类每个方法的详细描述,如果想仔细了解具体一个类有什么用,可以查看Apple 文档。但你能找到这些类大多数重要而且常用的特性,以及它们之间的关系。Apple 文档尽管详细,但详细得有点过头。阅读本书能帮你找到解决特定问题所需的那个子集。
Apple 提供的示例程序同样也和本书提供的不同。本书的每个例子都是为了展示Cocoa API 的某个独立方面的,而Apple 的例子则一般是展示完整API 的完整应用程序。OS X 包含的TextEdit 应用就是这样一个例子。这是一个功能完整的富文本编辑器,有数千行代码。如果你希望看到一个Cocoa 的文档支持和文本系统如何一起工作的详细例子,那这是不可多得的资源,但在你对Cocoa 还不非常熟悉的时候要理解整份代码是非常困难的。