这十年来在苹果开发者生态系统最重大的变化就是引入了 Swift 编程语言,并且今年 WWDC 上可能会看到的下一个重大变化是在 Mac 上引入第三方 UIKit 应用程序。
Swift,这种新语言是在 WWDC 2014 上宣布的。在苹果工程师和开源社区的贡献下,它进行了多次迭代更新,现在是 4.2.1 版本。
自第一个版本以来一直影响用户的 Swift 一个重要方面是它的应用程序二进制接口(或 ABI)不稳定。这在实践中意味着苹果不能在其操作系统中包含 Swift 语言支持,因为使用 Swift 3 编写的应用程序将不能与 Swift 4 的语言支持二进制文件一起使用。而其解决方案是包含 Swift 从 App Store 下载的 app bundle 中的语言库,但是这样增加了应用程序所需的带宽和存储空间。
据外媒新闻,苹果已经开始使用最新的 Swift 5,该语言变为二进制兼容。新版本包含在 iOS 12.2,tvOS 12.2,watchOS 5.2 和 macOS 10.14.4 中,所有这些版本目前都处于开发者测试阶段。这意味着,当新版本的苹果操作系统可供用户使用时,使用 Swift 5 编程语言发布到 App Store 的应用程序对于运行新操作系统的用户来说将会小得多。
另一个好处是更快的启动时间,因为应用程序使用的每个动态库都会稍微增加其启动时间,但操作系统附带的库将会缓存在内存中并在所有应用程序之间共享。
但具体减小了多少的存储空间呢?从 App Store 下载一些应用程序,并检查了 Swift 库占用了多少空间,以下是一些示例:
Apollo for Reddit 的大小为 35.7 MB,包括 7.5 MB 的 Swift 库。而在 iOS 12.2 中更新为 Swift 5 时,应用程序大小将减少 20% 以上,降至 30 MB 以下。PCalc 的大小为 86.8 MB,包括 7.5 MB 的 Swift 库。更新到 Swift 5 后,应用程序大小将减少 9%,降至 80 MB 以下。
苹果 Watch 的 Chirp 大小为 28.8 MB,包含 11.6 MB 的 Swift 库。更新到 Swift 5 后,应用程序大小将减少 30% 以上,降至 20 MB 以下。这个应用程序与我们计算的应用程序相比节省了最多,因为它包含一个用 Swift 编写的苹果 Watch 应用程序,其中包括用于 watchOS 的 Swift 库。
节省的存储空间因设备而异。上面使用了 iPhone XS Max 上的应用程序大小作为参考,但考虑到安装了许多应用程序的设备,可以节省更多空间。
当然,这建立在开发人员将采用 Swift 5 的假设上,但大多数使用 Swift 编写的应用程序都会得到积极维护,迁移也不会太困难。该语言的新版本还包括一个与为 Swift 4.2 编写的代码兼容的模式,这将使具有大量代码的开发人员迁移变得更加容易。
所有用户都必须利用这一点来更新到 iOS 12.2,tvOS 12.2,watchOS 5.2 和 macOS 10.14.4,并等待开发人员更新他们的应用程序。目前,所有系统都已经开始面向开发人员。使用 Swift 5 构建并发布到 TestFlight 的应用程序已经为运行测试版的用户节省了空间。
【来源:IT之家】