什么是Cocoa?什么是Xcode?什么是Framework?
什么是Cocoa?
NeXTSTEP(以Unix作为内核的操作系统)内置的许多库(libraries)和工具,让程序员以一种优雅的方式与窗口管理器进行交互,这些libraries叫做Framework,在1993年这些frameworks和工具被重新修改并重命名为 OpenStep,后来被重命名为Cocoa(大家应该知道为什么Cocoa的类都有着NS的前缀了吧)
那么这些libraries是什么呢?
通常是一些可能一起使用的类集合,这些类被一起编译成可复用的代码库(libraries)
什么是Xcode?
Cocoa开发用到的所有工具都作为Mac OS X Developer Tool的一部分一起提供给用户,你可以从Mac OS X安装盘中免费的得到它们。虽然Mac OS X Developer Tool将会在你的系统中添加许多有用的程序。但是我们将主要使用这两个程序:Xcode 和 Interface Builder。而在这些IDE内部,gcc作为编译器来编译代码,gdb来调试。
Xcode掌控应用程序中所有使用到的资源,代码,图片,声音等等.你只要在Xcode中编写代码,由Xcode来编译和运行你的程序。同时Xcode也能调用和控制调试器。
Interface Builder是一个GUI构建工具,通过它你可以创建窗口布局并且把各个组件添加到窗口中,Interface Builder使程序员能方便的创建各种对象并编辑它们的属性,这些对象多数是用户界面元件,比如按钮和文本输入框,但是也可以是你自定义的对象
什么是FrameWork?
FrameWork是一些类的集合,通常是一些可能一起使用的类集合.换句话说,这些类被一起编译成可复用的代码库(library of code)。所有相关的资源和代码库一起放入一个带扩展名“.framework”的目录(Mac OSX bundle 的概念可以参考苹果的一些文档). 系统自带的framework可以在/System/Library/Frameworks找到.
Cocoa有3个framework组成
1. Foundation: 所有的面向对象语言都会有一些标准结构: value , collection , String, dates, lists, thread等等.所有的这些都在Foundation framework里面(可以对比C++的STL)
2. Appkit: 所有和用户界面相关的类都在这里. Windows,buttons,text field, event, drawing. 它还有个名字: ApplicationKit
3. Core Data: Core Data可以方便的让你把你的对象存储成文件,或是从文件中加载你的对象.
当然Mac OSX 开发包还提供了其他的很多framework. 比如QuickTime, CD 刻录等等. 这本书我们只关注上面提到的3个基本framework. 一旦你掌握了这些基本framework.你将会更容易理解其他的framework.(cocoa 只是MacOSX的一个开发环境,它提供基本的开发Max OSX应用程序的SDK. 当然如果你要开发某种特定的应用,你可以需要使用Apple提供的其他SDK. 例如要开发播放DVD的程序.你可能会使用到DVDPlayback.framework.它甚至是C++接口的)
当然,你也可以创建你自己的framework. 一个典型的例子,当相同的类被好几个应用程序使用的时候.你可能会扔给他们一个framework.
小结:
Framework是一个类库;
Cocoa是三个Framework的合集;
Xcode是一个集成开发环境。
补充小知识:
IDE 集成开发环境
较早期程序设计的各个阶段都要用不同的软件来进行处理,如先用字处理软件编辑源程序,然后用链接程序进行函数、模块连接,再用编译程序进行编译,开发者必须在几种软件间来回切换操作。现在的编程开发软件将编辑、编译、调试等功能集成在一个桌面环境中,这样就大大方便了用户。
集成开发环境(简称IDE Integrated Develop Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。就是集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫做集成开以环境。如微软的Visual Studio系列,Borland的C++ Builder、Delphi系列等。该程序可以独立运行,也可以和其它程序并用。例如,BASIC语言在微软办公软件中可以使用,可以在微软Word文档中编写WordBasic程序。IDE为用户使用Visual Basic、Java和PowerBuilder等现代编程语言提供了方便。 不同的技术体系有不同的IDE。比如visual studio.Net可以称为C++、VB、C#等语言的集成开发环境,所以visual studio.Net可以叫做IDE。同样,Borland的JBuilder也是一个IDE,它是Java的IDE。zend studio、editplus、ultraedit这些,每一个都具备基本的编码、调试功能,所以每一个都可以称作IDE。
IDE有三项必须集成的基本功能:“编辑器”、“编译/链接器”、“调试器”。还有一些更强大的功能,如:代码提示、项目管理、界面设计、建模功能