這十年來在蘋果開發(fā)者生態(tài)系統(tǒng)最重大的變化就是引入了 Swift 編程語言,并且今年 WWDC 上可能會(huì)看到的下一個(gè)重大變化是在 Mac 上引入第三方 UIKit 應(yīng)用程序。
Swift,這種新語言是在 WWDC 2014 上宣布的。在蘋果工程師和開源社區(qū)的貢獻(xiàn)下,它進(jìn)行了多次迭代更新,現(xiàn)在是 4.2.1 版本。
自第一個(gè)版本以來一直影響用戶的 Swift 一個(gè)重要方面是它的應(yīng)用程序二進(jìn)制接口(或 ABI)不穩(wěn)定。這在實(shí)踐中意味著蘋果不能在其操作系統(tǒng)中包含 Swift 語言支持,因?yàn)槭褂?Swift 3 編寫的應(yīng)用程序?qū)⒉荒芘c Swift 4 的語言支持二進(jìn)制文件一起使用。而其解決方案是包含 Swift 從 App Store 下載的 app bundle 中的語言庫,但是這樣增加了應(yīng)用程序所需的帶寬和存儲(chǔ)空間。
據(jù)外媒新聞,蘋果已經(jīng)開始使用最新的 Swift 5,該語言變?yōu)槎M(jìn)制兼容。新版本包含在 iOS 12.2,tvOS 12.2,watchOS 5.2 和 macOS 10.14.4 中,所有這些版本目前都處于開發(fā)者測試階段。這意味著,當(dāng)新版本的蘋果操作系統(tǒng)可供用戶使用時(shí),使用 Swift 5 編程語言發(fā)布到 App Store 的應(yīng)用程序?qū)τ谶\(yùn)行新操作系統(tǒng)的用戶來說將會(huì)小得多。
另一個(gè)好處是更快的啟動(dòng)時(shí)間,因?yàn)閼?yīng)用程序使用的每個(gè)動(dòng)態(tài)庫都會(huì)稍微增加其啟動(dòng)時(shí)間,但操作系統(tǒng)附帶的庫將會(huì)緩存在內(nèi)存中并在所有應(yīng)用程序之間共享。
但具體減小了多少的存儲(chǔ)空間呢?從 App Store 下載一些應(yīng)用程序,并檢查了 Swift 庫占用了多少空間,以下是一些示例:
Apollo for Reddit 的大小為 35.7 MB,包括 7.5 MB 的 Swift 庫。而在 iOS 12.2 中更新為 Swift 5 時(shí),應(yīng)用程序大小將減少 20% 以上,降至 30 MB 以下。PCalc 的大小為 86.8 MB,包括 7.5 MB 的 Swift 庫。更新到 Swift 5 后,應(yīng)用程序大小將減少 9%,降至 80 MB 以下。
蘋果 Watch 的 Chirp 大小為 28.8 MB,包含 11.6 MB 的 Swift 庫。更新到 Swift 5 后,應(yīng)用程序大小將減少 30% 以上,降至 20 MB 以下。這個(gè)應(yīng)用程序與我們計(jì)算的應(yīng)用程序相比節(jié)省了最多,因?yàn)樗粋€(gè)用 Swift 編寫的蘋果 Watch 應(yīng)用程序,其中包括用于 watchOS 的 Swift 庫。
節(jié)省的存儲(chǔ)空間因設(shè)備而異。上面使用了 iPhone XS Max 上的應(yīng)用程序大小作為參考,但考慮到安裝了許多應(yīng)用程序的設(shè)備,可以節(jié)省更多空間。
當(dāng)然,這建立在開發(fā)人員將采用 Swift 5 的假設(shè)上,但大多數(shù)使用 Swift 編寫的應(yīng)用程序都會(huì)得到積極維護(hù),遷移也不會(huì)太困難。該語言的新版本還包括一個(gè)與為 Swift 4.2 編寫的代碼兼容的模式,這將使具有大量代碼的開發(fā)人員遷移變得更加容易。
所有用戶都必須利用這一點(diǎn)來更新到 iOS 12.2,tvOS 12.2,watchOS 5.2 和 macOS 10.14.4,并等待開發(fā)人員更新他們的應(yīng)用程序。目前,所有系統(tǒng)都已經(jīng)開始面向開發(fā)人員。使用 Swift 5 構(gòu)建并發(fā)布到 TestFlight 的應(yīng)用程序已經(jīng)為運(yùn)行測試版的用戶節(jié)省了空間。
【來源:IT之家】