NeXT电脑公司(随后更名为NeXT软件公司)是一间设立在美国加利福尼亚州红木城的电脑公司,专门制造和开发高等教育和商业市场上的工作站电脑。NeXT是由苹果公司(当时称为苹果电脑)的创办人史蒂夫·乔布斯于1985年被苹果公司辞退后同年成立。NeXT在1988年推出了第一个工作站电脑产品NeXT Computer,随后在1990年推出了体积较小的NeXTStation。总体来说,NeXT的产品销售量相当有限,估计大约只卖出了约50,000台。然而NeXT创新的面向对象操作系统──NEXTSTEP,以及它的开发环境,对往后的电脑产业有着深远影响。
NeXT不久后发布了NEXTSTEP系统程序开发中用到的API,NeXT将这个组API命名为OPENSTEP。随后NeXT在1993年中止了硬件业务,转为专注于OPENSTEP的软件市场开发上。NeXT也开发了一套网络程序架框-WebObjects,用于产生动态网页。可能因为售价过高之故(超过美金50,000元),它并没有流行起来。尽管如此,WebObjects仍为动态网页程序创建了一个良好的示例。
另外,世界上第一个互联网网站info.cern.ch就是架设于一台NeXT工作站上的。
NEXTSTEP,(官方写法很多种,一开始叫做NextStep、NeXTstep、 NeXTSTEP,最后才叫做NEXTSTEP,是由NeXT.Inc所开发的操作系统。NeXT是已故苹果电脑CEO乔布斯在1985年离开苹果电脑后所创立的公司。
这套系统是以Mach和BSD为基础,以Objective-C作为原生语言,具有很先进的GUI接口。1.0版推出时间是在1989年9月18日。刚开始NEXTSTEP只能在NeXT电脑的Motorola68000上运行,1992年推出PC版的NEXTSTEP 486。3.1版和3.2版分别在1993年的5月及10月推出,但是终究失败。最后版本3.3在1995年发布,平台也已经不限于Motorola 68000家族,亦可在IBM PC x86、SunSPARC及HP PA-RISC等平台上运行。后来苹果电脑在1997年2月将NeXT买下,成为Mac OS X的基础。
OpenStep是一组面向对象的API,大部分是由NeXT与SunMicrosystems开发。作为一种面向对象的操作系统的规范,有一些现代操作系统用它作为核心。对于OpenStep一个重要的认识是,它只是一组API规范,而OPENSTEP(一定要大写)是由NeXT开发的一个OpenStep的特殊实现。尽管它构建于Mach-即基于Unix(也是NEXTSTEP的核心),OPENSTEP的同样有在Solaris和Windows NT上的版本。此外,OPENSTEP库(由OPENSTEP操作系统提供的库)实际上已经成为了原始OpenStep规范的超集。
OpenStepAPI的建构是在1993年由NeXT(NeXT Computer)和Sun Microsystems共同合作的成果,这个合作使NeXT的NEXTSTEP作业系统物件层可以运作在Sun的Solaris操作系统上(更明确的 说,是基于SPARC硬件架构的Solaris)。OpenStep分离了NEXTSTEP的Mach基础或NeXT特定硬件的部分。这个结果产生了一个 更小的系统,来自于Display PostScript的主要部分,Objective-C的执行环境和编译器由大部分NEXTSTEP的Objective-C函式库组成。不包含基本的 作业系统或者显示系统。
在1994年夏天,API的首个草案由NeXT发布了。接下来一年,NeXT释出了一个应用了OpenStep,并可以执行几个支援平台上的先进操 作系统NEXTSTEP,并将OpenStep重新命名为OPENSTEP。令人不解的是,OPENSTEP同样可以独立于Solaris执行在 SPARC平台上。OPENSTEP作为NeXT的主要作业系统产品,直到1997年被苹果电脑收购。接下来,OPENSTEP与现存的Mac OS的相关技术相结合,成为Mac OS X。
Cocoa是苹果公司为Mac OS X所创建的原生面向对象的API,是Mac OS X上五大API之一(其它四个是Carbon、POSIX、X11和Java)。
苹果的面向对象开发框架,用来生成 MacOS X 的应用程序。主要的开发语言为 Objective-c, 一个c 的超集。 Cocoa 开始于1989年9月上市的NeXTSTEP 1.0,当时没有Foundation框架,只有动态运行库, 称为 kit, 最重要的是AppKit.1993 年 NeXTSTEP 3.1 被移植到了 Intel, Sparc, HP 的平台上,Foundation 首次被加入,同时Sun 和 NeXT 合作开发OpenStep 也可以运行在Windows 系统上。
Cocoa 应用程序一般在苹果公司的开发工具Xcode(前身为Project Builder)和Interface Builder上用Objective-C写成。
Cocoa 是从1980年代由 NeXT 开发的编程环境NeXTSTEP 和 OPENSTEP 演变而来,这点可由其类别之名皆以 NS 前缀(代表NeXTSTEP)看出端倪。苹果电脑公司在1996年12月收购了NeXT。开发 NeXTSTEP 和 OPENSTEP 的大量工作都转化到了 Mac OS X 中,最显而易见的部分当属 Cocoa。但差异也存在。例如,NeXTSTEP 和 OPENSTEP 使用 Display Postscript 实现文字和图形的屏幕显示,而 Cocoa 依赖苹果的 Quartz(基于 PDF 的绘图模型)。
Cocoa包含两个主要的Objective-C对象库,称为“框架”。框架的功能类似于动态库,即可以在运行时动态的载入应用程序的地址空间,但框架作为一个捆绑 (计算机)而非独立文件,其中除了可执行代码外,也包含了资源,头文件和文档。
“Foundation工具包”,或简称为“Foundation”,首先出现在OpenStep中。在Mac OS X中,它是基于Core Foundation的。作为通用的面向对象的函数库,Foundation提供了字符串,数值的管理,容器及其枚举,分布式计算,事件循环,以及一些其它的与图形用户界面没有直接关系的功能。其中用于类和常数的“NS”前缀来自于Cocoa的来源,NeXTSTEP。它可以在Mac OS X和iOS中使用。
“应用程序工具包”,或称AppKit(Application Kit)是直接衍生自NeXTSTEP的AppKit的。它包含了程序与图形用户界面交互所需的代码。它是基于Foundation建立的,也使用“NS”前缀。它只能在Mac OSX中使用。
“用户界面工具包”,或称UIKit(User Interface Kit),是用于iOS的图形用户界面工具包。与AppKit不同,它使用“UI”的前缀。
Cocoa构架的一个关键部分是其多样的视图模型。总体而言,它是基于由Quartz提供的PDF绘制模型的,该特性允许使用PostScript绘制自定义图形内容,同时也自动的支持了打印机以及类似设备。由于Cocoa框架管理了全部的绘图操作,例如裁剪,滚动,缩放等,程序员可以不再重复实现基础的功能,而可以集中于提供程序的关键功能上。
也有开源项目把 Cocoa 的大部分在其它操作系统上实现(包括 Windows),从而使开发跨平台的 Cocoa 应用成为可能。比如 GNUStep 和 Cocotron。
CocoaTouch由苹果公司提供的软件开发api, 用于开发 iPhone\iPod\iPad上的软件。也是苹果公司针对iPhone应用程序快速开发提供的一个类库。此库以一系列框架库的形式存在,支持开发人员使用用户界面元素构建图像化的事件驱动的应用程序。
CocoaTouch 框架推动了iOS 应用程序的开发,为开发者提供了很多 Mac 平台上久经考验的模式,同时又特别专注于基于触摸的开发接口和性能优化。其中,UIKit 提供了开发 iOS 上的图形化事件驱动程序所需的基本工具。UIKit 基于 Foundation 框架,该框架同样存在于 Mac OS X 系统中,提供了文件处理、网络、字符串处理以及其他基础架构。
iOS 独特的界面意味着 Cocoa Touch 具有同样独特的设计。通过 UIKit,您可以访问 iOS 上特殊的 GUI 控制、按钮和全屏幕视图。您还可以通过加速计和 Multi-Touch 手势控制应用程序。
大部分 Cocoa Touch 的功能是用 Objective-C 实现的。Objective-C 是一种面向对象的语言,它编译运行的速度令人难以置信。更值得一提的是采用了真正的动态运行时系统,从而增添了难能可贵的灵活性。由于 Objective-C 是 C 的超集,因此您可以轻松地将 C 甚至是 C++ 融入 Cocoa Touch 应用程序中。
当应用程序运行时,Objective-C 运行时会根据执行逻辑(而不仅是编译期间定义的方式)实例化对象。例如,运行中的 Objective-C 应用程序可以载入界面(Interface Builder 创建的 nib 文件),将界面中的 Cocoa 对象连接到应用程序代码,然后在按下 UI 按钮后运行正确的方法。无需进行重新编译。
除 UIKit 之外,Cocoa Touch 包含创建世界一流 iOS 应用程序所需的所有框架,从 3D 图形、专业音频到网络,甚至提供特殊设备访问 API 以控制摄像机或从 GPS 硬件获取位置。Cocoa Touch 既包含只需要几行代码就可以完成全部任务的强大的 Objective-C 框架,也在需要时提供基础的 C 语言 API 来直接访问系统。这些框架示例包括:
CoreAnimation
通过 Core Animation,您就可以通过基于组合独立图层的简单编程模型来创建丰富的用户体验。
CoreAudio
CoreAudio 是播放、处理和录制音频的专业级技术,能够轻松为您的应用程序添加强大的音频功能。
CoreData
CoreData 提供面向对象的数据管理解决方案,该方案易于使用和理解,甚至可处理任何应用或大或小的数据模型。
iphone 技术层编辑
iphone 技术层
CocoaTouch 层由多个框架组成,他们为应用程序提供了核心功能。
UIKit 负责启动和结束应用程序,控制界面和多触点事件
Map Kit 提供地图的相关服务
Game Kit创建和使用网络机制
MessageUI/Adress Book UI 提供操作电子邮件和联系人的信息
GNUstep,GNU计划的项目之一。它将Cocoa(前身为NeXT的OpenStep)Objective-C软件库,部件工具箱(widgettoolkits)以及其上的应用软件,以自由软件方式重新实作。它能够运行在类Unix操作系统上,也能运作在Microsoft Windows上。
GNUstep最早是由保罗·昆茨(Paul Kunz)与其他在史丹福线性加速器中心的同事所撰写。最早的目的是为了将NEXTSTEP上的HippoDraw移植到其他平台。但是他们并不是重头写出HippoDraw,而是决定把HippoDraw这套软件所依赖的二进制对象层重写出来。因此他们写作了第一版的libobjcX。这个软件库,让他们可以在不更动HippoDraw源代码的状况下,把HippoDraw移植到Unix系统下,可以在X视窗系统下运作。1994年,OpenStep规格书出版,他们决定重写出新的objcX库,把新的API涵盖进去,这就是我们今天所知的GNUstep。GnuStep可以使用Objective-c和Cocoa,注意这个Cocoa和apple的官方cocoa实现还是有差别的。这个工具实现了AppKit,对于iOS的UIKit没有实现,不过只要对这个熟悉了以后,那么进行iPhone/iPad和MAC的开发很容易