蘋果在 WWDC 2020 上除了發(fā)布最新的 macOS Big Sur 之外,還宣布未來 Mac 將會采用基于 ARM 架構(gòu)的自研芯片 Apple silicon。因此,蘋果也推出了相應(yīng)的集成開發(fā)環(huán)境Xcode 12。
Xcode 12 采用了全新的設(shè)計,外觀方面保持與macOS Big Sur 一致的風(fēng)格。部分新變化包括:側(cè)邊導(dǎo)航欄的字體可自定義大小、精簡的代碼補全功能、新的文檔標(biāo)簽頁可更快打開多個文件,并支持在各自的標(biāo)簽頁中打開界面文件、日志文件和項目文件,以及重新設(shè)計的 organizer。
作為橋接新舊 Mac 架構(gòu)的角色,Xcode 12 默認(rèn)構(gòu)建 macOS 通用 app (Universal app),以支持搭載 Apple 芯片的新 Mac,該過程通常無需更改任何代碼。
事實上,Xcode 12 本身就是作為 Universal app 而構(gòu)建,可以原生運行在 Intel x86_64 CPU 和基于 ARM 的 Apple 芯片上。Xcode 12 還提供了統(tǒng)一的 macOS SDK,其中包含所有框架、編譯器、調(diào)試器和其他工具,以幫助構(gòu)建在 Apple 芯片和 Intel x86_64 CPU 上原生運行的應(yīng)用程序。
當(dāng)在 Xcode 12 中打開項目時,app 會自動更新,以生成作為 Universal app 的 release builds 和 archives。當(dāng)構(gòu)建 app 時,Xcode 會為蘋果芯片和 Intel x86_64 CPU 分別生成一個二進制文件,然后把兩者打包在一起,作為單個 app 發(fā)布或共享到 Mac App Store。開發(fā)者可以點擊工具欄中的 “Any Mac”選項來測試此項功能。在搭載蘋果芯片的新 Mac 上,開發(fā)者可以選擇工具欄上的 “My Mac (Rosetta)”選項,模擬原生基礎(chǔ)架構(gòu)或是英特爾虛擬化,來執(zhí)行并測試 app。
在 Xcode 12 中,蘋果還對用戶界面 UI 框架 SwiftUI 進行了改進,除了優(yōu)化性能還增加了一些新特性。由于保持了穩(wěn)定的 API,因此開發(fā)者可以輕松地將現(xiàn)有的 SwiftUI 代碼引入 Xcode 12。而針對使用 SwiftUI 構(gòu)建的 app 的全新生命周期管理 API 讓開發(fā)者可以在 SwiftUI 中完整編寫 app,并在所有 Apple 平臺上共享更多代碼。
基于 SwiftUI 構(gòu)建的全新小組件平臺讓開發(fā)者可以構(gòu)建在 iPad、iPhone 和 Mac 上運行良好的小組件。SwiftUI 視圖現(xiàn)在支持與其他開發(fā)者共享,并作為一等 (first-class) 控件出現(xiàn)在 Xcode 庫中。現(xiàn)有的 SwiftUI 代碼可以繼續(xù)運行,同時提供了更快的性能、更好的診斷和對新控件的訪問。