十年对任何人来说都是意义非凡的,对苹果开发者生态系统来说也一样。要说苹果开发者生态系统最重要的变化,当属 Swift 编程语言的发展。今年的 WWDC 上我们可以期待***的进度,其中有一项重大改变,那就是第三方 UIKit 应用登陆 Mac 平台。
Swift 语言最早在 2014 WWDC 上亮相,在苹果工程师和开源社区的共同努力下,它不断更新,现在已经达到了 4.2.1 版本。
自***版以来,Swift 一直存在一个问题,那就是它的应用程序二进制接口(ABI)并不稳定。简单的说,就是苹果不能在其操作系统中包含 Swift 语言支持,因为使用 Swift 3 编写的应用程序将不能与 Swift 4 的语言支持二进制文件一起使用。
为了解决这个问题,苹果系统的 App 需要自己的安装包中内置 Swift 语言库,这就增加了 App 的容量。
现在,Swift 5 要出来解决问题了。
Swift 5 兼容二进制接口,它已经包含在 iOS 12.2、tvOS 12.2、watchOS 5.2 和 macOS 10.14.4 这四个系统中,这几大系统目前正在测试阶段,很快会带来***公众测试版。
使用 Swift 5 的所有 App 将共享 Swift 动态库,就可以缩小容量,举个例子,Apollo for Reddit 目前的容量为 35.7 MB,其中包含 7.5 MB Swift 库。当升级至 iOS 12.2 后,容量会缩小 20%,也就是不到 30 MB。PCalc 的容量为 86.8 MB,其中也包含 7.5 MB Swift 库,升级后可以缩小 9%,也就是不到 80 MB。Apple Watch 的 Chirp 大小为 28.8 MB,包含 11.6 MB 的 Swift 库,更新到 Swift 5 后大小将减少 30% 以上。
Swift 5 的另一个好处是让 App 启动速度变快,因为每个动态库都会增加其启动时间,而新系统的动态库会缓存在内存中,并在所有应用程序之间共享。
所以,等到几大系统的新版本上线,最终与 Swift 语言相关的限制将在一夜之间消除,这是令人欣喜的成果。