本帖最後由 javacomhk 於 2025-6-13 05:07 編輯
Xcode 26 帶來了多項新功能:
* 內建 AI 支援:您現在可以直接在 Xcode 中編寫程式碼 。您可以提供自己的 AI 金鑰(例如用於 Shivity 或 Clock),甚至可以使用本地模型。
* 檔案與介面建立:您可以將檔案加入到 sht 中,並從參考圖像或塗鴉中建立使用者介面 (UI) 。
* 更改歷史記錄:Xcode 26 具有更改歷史記錄功能,方便您回溯修改。
* 編碼工具:
* 使用 Option Command Zero 捷徑可以為非 UI 的程式碼區塊產生 UI 預覽,或在沒有提示的情況下修復問題。
* 這些編碼工具也能為您生成 Doxy 文件。
* AI 生成指令:AI 可以為您生成使用者紀律指令 [1]。
* 語音控制:您現在可以完全透過語音來控制和導航 Xcode。
這是一個關於 Swift 6.2 新功能和改進的簡短摘要:
Swift 6.2 帶來了多項更新,旨在提高 Swift 開發者的生產力,無論他們在哪裡或編寫何種程式碼 。這些改進主要集中在以下幾個方面:
* 工作流程改進:
* 構建系統統一:開放原始碼的 Swift Build 正在努力成為 Swift Package Manager 的低層構建系統,以統一 Xcode 和 Swift.org 工具鏈之間的構建引擎 。
* 工具鏈管理:新的版本管理器 swiftly (1.0 版已在 swift.org 上發布) 簡化了 Swift 工具鏈的安裝和管理,並支持 macOS 和 Linux。
* VS Code 開發體驗提升:Swift 官方擴展現已具備背景索引、更相關的代碼補全、自動包含 LLDB 調試支持、新的專案面板和實時 DocC 預覽功能 。
* 更快的構建速度:Swift 6.2 顯著改進了使用基於巨集的 API 專案的 乾淨構建時間,透過支持預構建的 `swift-syntax` 依賴項來消除耗時的構建步驟。
* 更清晰的診斷訊息:擴展了常見警告和錯誤的文檔說明,提供具體解決方案。
* 靈活的編譯器警告控制:開發者現在可以自定義哪些警告應視為錯誤。
* 改進異步代碼調試:LLDB 現在可以在異步函數中追蹤執行流程,即使需要切換執行緒;並且支持任務命名和提供任務資訊的命令,例如 `swift task info` 。
* 新的核心函式庫 API:
* Subprocess 包:Foundation 工作組引入了用於啟動子進程的新 API。
* 類型化通知:UIKit 和 Foundation 的通知現在支持具體類型,提高了編譯器檢查能力並消除了模板代碼。
* 觀察庫更新:`@Observable` 類型現在支持使用 AsyncSequence 串流狀態變更 [17-19]。
* Swift Testing 改進:引入了 自定義附件 以診斷測試失敗,並支持 退出測試,允許測試預期終止的程式碼。
* 擴大 Swift 應用範圍:
* 嵌入式 Swift 擴展:涵蓋了完整的字串 API,`any` 類型現在可用於受類別約束的協議,並新增了 `InlineArray` 和 `Span` 等高效記憶體操作 API。
* 嚴格記憶體安全模式:一個新的 可選功能,要求明確標註所有不安全 API 的使用,以增強安全關鍵型程式碼的識別和審查。
* 服務器端 Swift 的顯著效益:Apple 內部的服務以及 Cultured Code 的 Things Cloud 均證明 Swift 在服務器端能帶來 吞吐量增加、硬體需求減半或計算成本降低、回應時間縮短** 等顯著效益。
* 互操作性改進:發布了 gRPC Swift 2.0,並宣布了實驗性的 swift-java 項目,旨在實現 Swift 與 Java 的無縫互操作。
* 新的容器化函式庫:Apple 正在發布一個新的開源容器化函式庫,允許在 Mac 上構建基於 Linux 容器的工具。
* 新增平台支持:Swift 6.2 新增了對 FreeBSD 的官方支持,並正在支持 WebAssembly (Wasm),允許將 Swift 應用部署到瀏覽器或其他 Wasm 運行時環境。
* 新的語言特性:
* 性能優化:引入了*InlineArray (固定大小、內聯儲存) 和 Span (安全、直接訪問連續記憶體) 兩種新類型,以提高記憶體使用效率和性能。
* 更易用的並發模型:
* Swift 6.2 改變了並發處理的哲學,預設保持單執行緒,直到您選擇引入並發。
* 異步函數現在會繼續在調用它們的 Actor 上執行,從而消除了在默認情況下自動將工作卸載到背景的數據競爭風險。
* 支持主 Actor 類型上的隔離一致性,讓編譯器確保主 Actor 一致性只在主 Actor 上使用。
* 引入了一種可選模式,可以預設推斷專案中的所有程式碼都受主 Actor 保護,減少並發註釋。
* 新的 `@concurrent` 屬性允許您將 CPU 密集型工作明確卸載到並發執行緒池中,同時保持 Actor 的響應性。
這些並發改進是可選加入的,並提供了遷移工具來幫助您自動進行必要的程式碼更改。 |