这十年来在苹果开发者生态系统最重大的变化就是引入了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的应用程序已经为运行测试版的用户节省了空间。