SwiftUI 和 Catalyst:苹果执行其隐形过渡策略

paroject Catalyst mac

上周在圣何塞,我发现自己在思考约翰·格鲁伯 (John Gruber) 在本世纪初为 Macworld 撰写的一些内容——关于苹果如何与普遍的看法相反,产品设计不会在短时间内发生。这是一场马拉松,而不是短跑。科技行业中没有其他公司拥有苹果这样的记录。

“这是一个缓慢而稳定的持续迭代改进过程——事实上,这个过程非常缓慢,如果你实时观察的话,很容易忽视它,”格鲁伯写道。 “只有事后看来,才会发现苹果的平台开发过程有多么出色。”

九年后仍然如此。我们正处于其中。这种事就发生在我们身边——苹果公司继续打持久战,缓慢地拖着厌恶变革的人们度过过渡期,以至于他们常常没有注意到正在发生的事情,直到一切都说完了。

重复的特权

多年来,苹果公司的产品转型次数超过了其份额。 Mac 已经从 Motorola 680×0 处理器过渡到 PowerPC 芯片,再到 Intel 芯片,并且有传言称即将转向 Apple 设计的 ARM 芯片。在软件方面,Apple 从经典的 Mac OS 转向 Mac OS X,然后在 OS X 的基础上构建了一个额外的操作系统 – iOS。

对于用户来说,这些转变相对顺利。苹果在两次芯片过渡期间都将仿真技术引入了 Mac 操作系统,因此旧软件可以在新硬件上透明地运行。 (在这两种情况下,新芯片都比旧芯片快得多,以至于仿真或代码翻译的大部分缓慢问题都被解决了。)

从经典 Mac OS 到 Mac OS X 的过渡过程比较坎坷,但即便如此,Apple 也给了每个人大量的时间——OS 9 却没有得到直到 Mac OS X 10.2 Jaguar 即将到来时才正式宣告死亡。即便如此,捷豹仍然在特殊的兼容性环境中运行经典 Mac OS 应用程序。虽然不是无缝的,但它确实有效 – 那时大多数应用程序已经更新到 OS X。

忒修斯的应用程序

当然,对于软件开发人员来说,这段旅程更加坎坷。从经典 Mac OS 到 OS X 的转变是由 Apple 创建了名为 Carbon 的东西实现的,这是一组工具,可以让为旧 Mac OS 编写的应用程序在新 OS 上本机运行。但 Carbon 是一个过渡框架,是 Mac 开发人员通向 OS X 的桥梁。 OS X 的本机系统(从 NextStep 引入)称为 Cocoa。

经典的 Mac 开发人员使用 Carbon 将他们的应用程序移植到 OS X 上,但随着时间的推移,Cocoa 才是未来的趋势变得越来越明显——在一个决定性的时刻,苹果公司背弃了之前的承诺,宣布永远不会有 64 位——位碳应用程序。不祥之兆:未来属于 Cocoa。事实上,随着今年秋天 Mac OS Catalina 的发布,Carbon 最后幸存的部分将被一扫而光。

然而,经典时代的 Mac 应用程序依然存在。就像 忒修斯之船,它们已经更新了很多次,以至于原始版本几乎没有保留下来。这是苹果公司管理其缓慢、无形的过渡魔术的一种方式——开发人员随着时间的推移逐渐调整他们的应用程序,用户继续使用这些应用程序,然后一切都开始转动。

我每天在 Mac 上使用 Bare Bones Software 的 BBEdit。它最初是为经典的 Mac OS 编写的,在 PowerPC 过渡中幸存下来(可能对其开发环境进行了一系列幕后更改),然后使用 Carbon 迁移到 Mac OS X,并开始循环到 Cocoa,以便利用新的操作系统功能并支持 64 位。 BBEdit 1.0 所剩无几,但 BBEdit 作为 Mac 应用程序一直存在。

缓慢但不懈

Swift UI 屏幕 苹果

SwiftUI 的实际应用。

这让我们来到了今天,苹果正在同时进行多项转型。 Catalyst 将于今年秋天推出,它将允许精通 iOS 应用程序编写的开发人员使用这些技能来编写 Mac 应用程序。最常见的形式是将 iPad 应用程序带到 Mac 上,并添加一些附加功能,使它们感觉更像本机 Mac 应用程序,但它不仅如此,它还为 iOS 开发人员提供了一套熟悉的工具和对全新平台的访问,并且通过将 iPad 和 Mac 纳入其中,使得跨 Apple 平台的专业应用程序的目标更加广泛。

iOS 应用程序目前是为了在运行 Apple 设计的 ARM 处理器的设备上运行而构建的,如果传言属实,那么这将是另一个即将发生的转变。但考虑到所有 Mac 和 iOS 开发人员都已经在使用 Apple 的 Xcode 工具来开发他们的应用程序,我怀疑这些部分已经准备就绪,可以相当简单地过渡到新的处理器架构。

然后是 SwiftUI,这对于普通用户来说可能是一个更难掌握的概念,但对苹果来说这是一个巨大的进步。这是苹果公司的终极长期游戏——一种基于 Swift 语言(五年前作为苹果公司长期游戏的另一部分推出)跨所有苹果平台设计和构建应用程序的全新方式。

短期内,iOS 应用程序开发人员将能够通过 Catalyst 访问 Mac。但从长远来看,Apple 正在为所有 Apple 设备创建一种基于 Swift 和 SwiftUI 的新的统一开发方法。从这个角度来看,Catalyst 感觉更像是一种过渡技术,而不是苹果平台的未来。

但我们在这里谈论的是长期游戏。过渡技术都是长期游戏的一部分。 Catalyst 将把这些应用程序带到 Mac 上。 iOS 和 Mac 开发人员将选择 Swift 和 SwiftUI。 Mac 应用程序可以通过 Catalyst 集成 iOS 内容。 iOS 应用程序可以集成 Mac 内容以在 Mac 上使用。所有开发人员都可以开始尝试 SwiftUI,逐步构建新界面并替换旧界面。

然后我们将在 2020 年代的某个时候回过头来,意识到所有有关 UIKit、AppKit 和 Catalyst 的讨论都已成为过去,我们的应用程序是用 Swift 编写的,界面是使用 SwiftUI 创建的。由于苹果缓慢而稳定的迭代、持续改进的步伐,这一切都将发生改变。漫长的游戏永远不会停止,而且很难看出您是否已参与其中。