在過(guò)去 10 年之中,蘋(píng)果開(kāi)發(fā)者生態(tài)圈中最大的改變就是全新的 Swift 編程語(yǔ)言。在今年的 WWDC 上,我們也許會(huì)看到另外一項(xiàng)重大改變,那就是第三方 UIKit 應(yīng)用登陸Mac 平臺(tái)。對(duì)于 Swift ,這款全新的編程語(yǔ)言在 WWDC 2014 發(fā)布。在蘋(píng)果工程師團(tuán)隊(duì)和開(kāi)源社區(qū)的共同努力下,Swift 不斷的升級(jí),目前最新的版本為 4.2.1。
自第一個(gè)版本以來(lái),Swift 一直影響用戶(hù)的是它的應(yīng)用程序二進(jìn)制接口(ABI)不穩(wěn)定。 簡(jiǎn)單的說(shuō),就是蘋(píng)果不能在其操作系統(tǒng)中包含 Swift語(yǔ)言支持,因?yàn)槭褂?Swift 3 編寫(xiě)的應(yīng)用程序?qū)⒉荒芘c Swift 4 的語(yǔ)言支持二進(jìn)制文件一起使用。解決方案是 App 在自己的安裝包中包含 Swift 語(yǔ)言庫(kù),這增加了 App 的容量。
Swift 5 發(fā)布后,語(yǔ)言將可以兼容 ABI。目前,Swift 5 已經(jīng)包含在 iOS 12.2、tvOS 12.2、watchOS 5.2 和 macOS 10.14.4 系統(tǒng)中,這些系統(tǒng)目前正在測(cè)試之中。未來(lái),當(dāng)新版系統(tǒng)發(fā)布后,App Store 中使用 Swift 5 開(kāi)發(fā)的應(yīng)用可以縮小容量。與此同時(shí),應(yīng)用的啟動(dòng)速度也會(huì)小幅提升,因?yàn)?Swift 動(dòng)態(tài)庫(kù)包含在系統(tǒng)之中,可以緩存在內(nèi)存中,在所有應(yīng)用中 共享。那么 App 容量會(huì)縮小多少呢?
Apollo for Reddit 目前的容量為 35.7MB,其中包含 7.5MB Swift 庫(kù)。當(dāng)升級(jí)至 iOS 12.2 后,容量會(huì)縮小 20%,也就是不到 30MB。PCalc 的容量為 86.8MB,其中也包含 7.5MB Swift 庫(kù),升級(jí)后可以縮小 9%,也就是不到 80MB。