項(xiàng)目
安裝包更小,其他組件與工具鏈只有在需要時(shí)才會(huì)下載。
設(shè)置界面重新設(shè)計(jì),菜單從頂部挪到了左側(cè),其中 Accounts 改名為 Apple Accounts,Text Editing 改名為 Editing,Key Bindings 改名為 Shortcuts,同時(shí)增加了菜單 Notifications。
模擬器運(yùn)行時(shí)默認(rèn)不再包含對 Intel 的支持。
改進(jìn)了編輯器標(biāo)簽頁(command + T)的行為,使其更加直觀,便于搜索與釘住。
編輯區(qū)的搜索功能新增了 “Multiple Words” 模式。
功能
Xcode 支持 ChatGPT 等 LLM 服務(wù)(其他服務(wù)商需要提供 API 密鑰)與本地 LLM,開發(fā)者可以直接使用它們輔助編碼、測試,修錯(cuò)等工作。通過 Xcode 菜單 —> Xcode —> Settings... —> Intelligence 可以進(jìn)行詳細(xì)設(shè)置,調(diào)用時(shí)左下角會(huì)出現(xiàn)對話窗口。但該功能要求操作系統(tǒng)為 macOS 26 及以上。
通過 Voice Control(語音控制)可以控制 Xcode 界面的導(dǎo)航與 Swift 代碼的編寫。
內(nèi)置了 Icon Composer 應(yīng)用,能夠創(chuàng)建.icon的設(shè)計(jì)文件,可以讓開發(fā)者與設(shè)計(jì)師創(chuàng)建符合 “Liquid Glass” 風(fēng)格的 App Icon。
增加#Playground宏,可以像#Preview一樣預(yù)覽非 UI 代碼的運(yùn)行結(jié)果,甚至可以像 Debug 模式一樣查看中間變量的值。
增加#bundle宏,可以訪問當(dāng)前 Target 的 Bundle 資源,輸出的值等價(jià)于Bundle.main。
String Catalog進(jìn)一步增強(qiáng),在每個(gè) Key 的下方增加了一個(gè)可以修改的符號,這些符號可以在代碼中自動(dòng)補(bǔ)全,同時(shí)可以自動(dòng)生成描述字符串上下文的注釋。
UI Tests 自動(dòng)化錄制顯著增強(qiáng),可以一邊進(jìn)行交互,一邊自動(dòng)記錄代碼。
文本輸入性能得到優(yōu)化,打字延遲率大大降低。
內(nèi)容加載性能得到大幅優(yōu)化,加載工作區(qū)快了 40 %。
iOS 26 適配指南
同樣在 WWDC25 上 Apple 發(fā)布了 iOS 26,引入了一個(gè)名為 Liquid Glass 的時(shí)尚新設(shè)計(jì),同時(shí)推出了一些新的內(nèi)容。在掌握了基于 iOS 18 開發(fā)的基礎(chǔ)上,只要學(xué)習(xí)以下的新特性就能輕松過渡到 iOS 26。
新增 @Observable Object。
UIKit 支持@Observable類型。當(dāng)數(shù)據(jù)發(fā)生更改時(shí),視圖可以自動(dòng)更新,而無需手動(dòng)調(diào)用setNeedsLayout()、setNeedsDisplay()等方法。
使用前提:需要將 UI 更新的代碼放在layoutSubviews()、viewWillLayoutSubviews()方法中。
該功能可以支持到 iOS 18,但需要在 Info.plist 文件中增加字段UIObservationTrackingEnabled,并且將其值設(shè)置為YES。
新增 Update Properties。
UIViewController 與 UIView 均增加了一個(gè)名為updateProperties()的新方法,用于更新 UI。
它是一種輕量級的 UI 更新方式,不會(huì)觸發(fā)完整的布局過程(不會(huì)觸發(fā)layoutSubviews()或者viewWillLayoutSubviews()方法)。常見使用場景如下。
更改標(biāo)簽或者徽章等 UI 內(nèi)容。
顯示/隱藏元素。
無需移動(dòng)或者調(diào)整視圖大小。
可以通過調(diào)用setNeedsUpdateProperties()方法手動(dòng)觸發(fā)更新。
可以自動(dòng)追蹤 @Observable Object。
UIImage 使用 SF Symbols 7 可以實(shí)現(xiàn)更流暢、更實(shí)用的 UI 動(dòng)畫。
UIView 動(dòng)畫引入了一種新的選項(xiàng)flushUpdates,它可以自動(dòng)根據(jù)視圖數(shù)據(jù)或者約束的更改添加動(dòng)畫效果,而無需手動(dòng)調(diào)用layoutIfNeeded()方法。
通知使用更安全,不再需要通過userInfo攜帶數(shù)據(jù)。
iPadOS 中的 UISplitViewController 支持 3 列顯示。
iPadOS App 默認(rèn)擁有類似 macOS 風(fēng)格的菜單欄,通過從屏幕頂部向下滑動(dòng)調(diào)出,支持添加自定義菜單。
通過引入 UIHonstingSceneDelegate,UIKit 可以啟動(dòng) SwiftUI 場景,包括 visionOS 上的沉浸式體驗(yàn)。同時(shí)也可以通過編程的方式打開 SwiftUI 場景。
所有 App 必須使用 UIScene 生命周期,不再允許只使用 AppDelegate。
UIKit 支持顯示 HDR(高動(dòng)態(tài)范圍)顏色 ,而不僅僅是 HDR 圖像。
通過顏色選擇器可以選擇 HDR 顏色。
通過改進(jìn)的 UIScene 的open()方法,可以將不受支持的類型文件交給其他 App 打開。