【Mac技术概览】(1)Mac开发简介
说明:这是我对Apple开发文档《Mac Technology Overview》的翻译,这是一份对Mac平台开发技术进行总体介绍的文档,适合初学Mac开发的人员阅读,可以较快地了解Mac开发所需掌握的工具和技术,对整个Mac平台的开发架构也会有总体的认识。整份文档共有9篇,我会根据翻译进度定期发布。
OS X操作系统将稳定的内核和许许多多先进技术结合在一起,帮助我们在Mac平台上打造出世界级的产品。了解并掌握这些技术,可以帮助我们提高开发效率,也将带领我们领略OS X的诸多关键特性。
![](https://img.haomeiwen.com/i10980935/702173fd40e180a0.png)
1.1 概览
本教程将向大家介绍我们可以开发什么样的Mac软件,也会讲解开发Mac软件的各种技术并提供相关信息资源。但是本教程不会介绍用户级的系统功能或者与软件开发无关的功能。
1.1.1 OS X具备分层架构(每一层均提供不同的关键技术)
把OS X的实现视为不同的层级对我们是有所帮助的。系统较低的层级为所有软件提供了依赖的基础服务。上面的各个层级都包含了一些更加复杂的服务和技术,这些服务与技术又是基于它们之下的层级被构建出来的(或者是一种补充)。
![](https://img.haomeiwen.com/i10980935/9fb67a1430135da9.png)
一种技术所在的层级越低,它所提供的服务就越加的具体。一般来说,较高层级上的技术会包含一些较低层级的技术,从而实现一些常见的应用行为。从经验来看,我们要使用最高层级的编程接口去满足我们的应用所要实现的目标。以下是OS X各个层级的简要概括。
· Cocoa(Application)层包含了实现应用用户界面、响应用户事件及管理应用行为的相关技术。
· Media层包含了一些特定的技术,主要实现视听媒体的播放、录制、编辑以及2D、3D图形的渲染和动画生成。
· Core Services(核心服务)层包含了许多基础的服务和技术,涉及范围从引用自动计数(Automatic Reference Counting)、底层网络通讯到字符串操作、数据格式化等各个方面。
· Core OS(核心操作系统)层定义了硬件和网络通讯相关的编程接口,包括利用计算机CPU和GPU运行高性能计算任务的一些接口。
· Kernel and Device Drivers(内核与设备驱动)层是由Mach内核环境、设备驱动、BSD库函数(libSystem)和其他底层组件所构成的。这一层对文件系统、网络通讯、安全、进程间通讯、编程语言、设备驱动均提供了支持,并对内核进行了一些扩展。
1.1.2 我们可以为Mac开发许多不同类型的软件
使用一些开发人员工具和系统框架,我们可以为Mac开发多种多样的软件,包括:
· 应用(App)。应用可以帮助用户实现一些任务,无论是内容创作、数据管理、与他人沟通还是娱乐。OS X提供了诸如应用扩展和handoff这样丰富的系统技术,我们可以利用这些技术去扩展应用的能力,增强我们的用户体验。
· 框架和库(Frameworks and libraries)。框架和库实现了应用之间的代码共享。
· 命令行工具和后台驻留程序(Command-line tools and daemons)。命令行工具允许专业用户在Terminal应用的命令行环境中进行数据操作。后台驻留程序通常会持续不断地运行,作为服务端负责处理客户端的请求。
· 应用插件与可加载bundle(App plug-ins and loadable bundles)。插件对其他应用的功能进行扩展;bundle包含了应用运行时可以动态加载的代码和资源。
1.1.3 迁移Cocoa Touch应用时应注意API的异同
Cocoa和Cocoa Touch应用的技术栈有许多相似之处。两个平台之间的一些系统框架是相同的(或差不多一样),包括Foundation、Core Data和AV Foundation。这种API的共通性使得一些迁移任务变得简单。例如,对Cocoa Touch应用的数据模型进行迁移就比较简单。
其他一些迁移任务则因为所依赖的框架在平台之间存在差异,使得迁移更具挑战性。例如,迁移controller对象和修改用户界面都是更费劲的任务,因为它们依赖于AppKit和UIKit,而这二者分别是Cocoa和CocoaTouch层的主要应用框架。
1.2 参考
Apple提供了一些开发人员工具和其他一些的资料来支持我们的开发工作。
Xcode是Apple的集成开发环境,帮助我们设计、创建、调试和优化软件。我们可以从Mac App Store中下载Xcode。
关于OS X开发工具的概览,请访问Xcode Apple Developer网页。Xcode功能的概览,请阅读Xcode Overview。
OS X Developer Library包含了一些文档、示例代码、教程和编写OS X应用所需的其他一些资料。我们可以从Apple Developer网站或Xcode中访问OS X Developer。在Xcode中,请选择Help > Documentation and API Reference,可以在Organizer窗口中查看文档和其他一些资源。
除了OS X Developer库之外,另外还有一些资源是介绍为Mac开发其他一些不同类型的软件的:
· Apple Open Source。Apple把OS X的一些主要组件(包括UNIX核心)对开发人员社区进行开放。要了解Apple的开源开发的承诺,请访问Open Source Development Resources。要更深入学习一些特定的开源项目(比如Bonjour和WebKit),请访问Mac OS Forge。
· BSD。Berkeley Software Distribution(BSD)是OS X内核环境中必不可少的基于UNIX的一部分。书店里有几本BSD和UNIX的好书,但我们也可以在一些涉及BSD变异版本的网站上找到其他一些资料,例如The FreeBSD Project。
· 第三方书籍。我们可以在网上和一些书店的技术区中找到几本关于Mac应用开发的好书。
英文原文在此:About Developing for Mac MacThinking翻译于2018-10-13
![](https://img.haomeiwen.com/i10980935/9753b44c42a7db5c.jpg)