跳转到内容

计算机编程/MacOS 编程

来自维基教科书,为开放的世界提供开放的书籍

关于平台

[编辑 | 编辑源代码]

macOS 是 Macintosh 计算机的主要操作系统。它最初是由苹果公司私下设计的系统,但随着 Mac OS X 的出现,它已经基于 Unix。具体来说,是经过修改的 FreeBSD 操作系统,称为“Darwin”。

有许多不同类型的软件可以为 Mac OS X 开发。人们通常想到应用程序,但我们将简要介绍其他一些类型。

Mac OS X 软件类型

[编辑 | 编辑源代码]

应用程序

[编辑 | 编辑源代码]

应用程序是人们通常想到的 Mac OS X 软件。Cocoa 应用程序包括:Finder、Mail、通讯录、Safari、Microsoft Word 和 Microsoft Excel。任何人都可以使用苹果公司的免费开发工具开发应用程序,这些工具包括 XCode。Mac OS X 应用程序使用 Objective-C 开发,尽管可以使用其他编程语言。

macOS 平台上最流行的语言是 Objective-C,它可以被认为是 Mac OS X 的“原生语言”,因为 Mac OS X 库或“框架”都具有 Objective-C 接口。Objective-C 包含了普通 C 可以做的一切,并增加了面向对象编程。请参阅:Objective-C.

C++ 可以用于 Mac 开发,但通常它与 Objective-C 一起使用,而不是替代 Objective-C。同时使用 Objective-C 和 C++ 被称为“Objective-C++”,在为 Mac OS X 开发软件时被认为是可选的:C++

请参阅 编程:Objective-C 以了解 Objective-C 基础知识的课程 [1] 也可能会有帮助。

一些初步想法

Objective-C 是 Mac OS 编程中最常用的语言。Objective-C 进入了 Mac OS X,其祖先来自 NeXT。 Cocoa。在学习 Mac 编程之前,您必须了解 C 的基础知识,因为它是 Objective-C 的基础。

曾经有三个独立的 API 用于开发带有 GUI 的 Mac 应用程序

1. Classic(Mac OS 9 及更低版本)。Classic API 的开发不再进行。当 Mac OS X 首次推出时,用户和开发人员在为 Mac Classic OS 编写的软件方面投入了巨资,而 Mac OS X 曾经有一个模拟模式,以便用户可以运行他们旧的软件。苹果已经停止支持 Mac OS X 中的 Classic API 和 Classic 模拟。

2. Carbon(Mac OS 8.5 到 Mac OS X 10.6 Snow Leopard 包括)。Carbon 是一个 API,供开发人员更新使用 Classic API 的应用程序,以便在没有 Classic 模拟器的情况下运行。Carbon 是苹果公司提供给开发人员的一种很好的方法,让他们升级软件以便在 Mac OS X 上运行,而无需完全重写软件,但与 Classic 一样,Carbon 也不再受苹果公司的支持。

3. Cocoa(所有版本的 Mac OS X)。Cocoa 是最原生的 API,可用于为 Mac OS X 开发真正“Mac 风格”的应用程序。通常,Objective-C 将与 Cocoa 一起使用,尽管还有其他选择,例如 Cocoa-AppleScript 和 Cocoa-Python,但 Cocoa-Objective-C 确实是开发 Cocoa 应用程序的“主流”方式。

资源分叉 Mac OS X 中的文件有一个 Mac OS 独有的特性,即磁盘上的每个文件都可以有两个“分叉”。此特性曾经用于 Classic 和 Carbon 应用程序,将代码与资源(如菜单、窗口等)分开,Mac OS X 文件系统仍然支持两个分叉,但您应该只使用“数据分叉”。资源分叉是非标准的,在将 Mac 文件传输到其他文件系统时可能会丢失。

AppleScripts

[编辑 | 编辑源代码]

另一种为 Mac OS X 应用程序开发的“原生语言”是 AppleScript。AppleScript 是苹果公司发明的一种用于自动化重复性任务的语言。AppleScript 应用程序位于您 Mac 上的 /Applications/Utilities/AppleScript Editor。AppleScript 可用于录制 AppleEvents,即应用程序发送给自己或其他应用程序的事件。为什么不试一试呢?打开 AppleScript 编辑器,按下录制按钮,对其他应用程序执行一些操作,然后观察脚本自行编写。AppleScript 可以单独使用,也可以与 XCode 一起使用,以开发主要使用 AppleScript 而不是 Objective-C 的 Cocoa 应用程序。此选项主要适用于不了解 Objective-C 的经验丰富的 AppleScript 程序员。

Automator 工作流程

[编辑 | 编辑源代码]

苹果还提供了一个名为“Automator”的应用程序,可用于轻松地自动化重复性任务。它位于 /Applications/Automator.app。

Shell 脚本

[编辑 | 编辑源代码]

Mac OS X 具有一个名为 Terminal 的应用程序,它为 Mac OS X 提供了一个命令行界面。可以为命令行开发脚本。Terminal.app 位于 /Applications/Utilities/Terminal.app 要创建 shell 脚本,您需要一个文本编辑器。Mac OS X 附带了一个名为“TextEdit.app”的文本编辑器。它位于 /Applications/TextEdit.app。但实际上,比 TextEdit 更好的程序是 TextWrangler.app,它可以从以下链接免费获得:http://www.barebones.com/products/textwrangler/

Terminal.app 默认使用的 shell 称为“bash”。这里有一个关于开发 bash 脚本的简单教程 http://www.maclife.com/article/columns/terminal_101_automate_terminal_bash_scripts

我们不会在这本维基教科书中更深入地探讨 shell 脚本,但了解它们是什么很重要。现在您知道要搜索什么了,您可以随时在 Google 上搜索更多信息。

命令行工具

[编辑 | 编辑源代码]

当您打开 Terminal 并学习如何输入命令时。这些命令通常是命令行工具或脚本。在上面,我们刚刚讨论了使用文本编辑器开发自己的脚本。也可以使用 XCode 开发自己的命令行工具。这是一件高级的事情。通常,高级用户会编写 shell 脚本(或其他一些东西,例如 AppleScript 或 Automator 工作流程),但了解命令行工具是什么很重要。命令行工具具有文本用户界面,而不是图形用户界面 (GUI)。

过去,Java 被苹果视为开发 macOS 的“一等语言”。然而,近年来,苹果对 Java 的支持有所减少。在 macOS X 10.7 "Lion" 和 10.8 "Mountain Lion" 中,Java 甚至不再预装在 macOS X 中。虽然 Java 仍然可用,但用户需要从 Oracle 网站下载并自行安装。苹果的 Mac App Store 甚至不允许 Java 应用程序在其商店中出售,将 Java 称为“已弃用”。

然而,仍有一些 Mac 开发人员使用 Java,因为它具有跨平台兼容的优势。例如,相同的源代码可用于生成在 Mac、Windows 和 Linux 上运行的软件。

苹果表示,Java 将 Mac 降低到“最低公分母”。这就是他们减少对 Java 支持的原因。

苹果对 Python 提供了一定程度的支持。事实上,Python 与 macOS X 一起发布,并且是系统文件夹的一部分。有一些第三方库允许开发人员使用 Python 和 Cocoa 共同开发应用程序,但这些库维护得不是很好,Mac 上的 Python 最适合开发命令行实用程序或非 Mac 风格的跨平台脚本。

与 Python 类似。

大多数 Mac 用户使用 Safari 作为他们的网页浏览器。Safari 使用 w3c.org 制定的标准。您可以通过遵循 w3c.org 的标准来开发与 Safari 兼容的网站。请记住验证您的 HTML、CSS 和 JavaScript。

HTML 验证器:http://validator.w3.org/

CSS 验证器:http://jigsaw.w3.org/css-validator/

JavaScript Lint:http://www.javascriptlint.com/online_lint.php

如果您使用 Mac 开发网站并使用 Safari,请记住在其他平台和使用其他网页浏览器上测试您的网页。

macOS 特定语言

[编辑 | 编辑源代码]

Objective-C 是 macOS X 开发的“原生”语言。

您也可以将 AppleScript 称为“原生”语言,但它实际上并未用于制作商业应用程序。它旨在供真正的资深用户使用,以自动化他们的任务。虽然可以使用 AppleScript 在 XCode 中构建 Cocoa 应用程序,但这更适合已经了解 AppleScript 而不愿学习 Objective-C 的用户。

macOS X 框架

[编辑 | 编辑源代码]
华夏公益教科书