💬 Pofat 的話
如題,大家小心別感冒了,上週我才被流感襲擊倒地不起。
我本來是個不太會感冒的人,但搬到現居城市後變得容易生病,一定是工作改變了我。
🌎 On Swift Community
Swift Everywhere: Using Interoperability to Build on Windows
透過已成熟不少的 C++ 與 C 的 Interoperability,Swift 如今也能和 Windows 既有的 API 和通訊模式有良好的互動,Arc 瀏覽器在 Windows 上就是選擇用 Swift 開發,相信是條充滿荊棘之路,但同時也推進了 Swift 在 Windows 上的更多可能。我覺得 Swfit 具備許多不錯的語言特性來開展新道路,比如這種開發狀況下充滿的各類模版程式碼,Swift macros 便能在此大展身手。
如果對 C++ 和 Swift 其它類型互動關係有興趣的,如今透過已成熟不少的 C 和 Swift 其它類型互動關係有興趣的,這裡還有另一個影片 - “Swift as C++ Successor in FoundationDB”,分享用為何要以及如何使用 Swift 替代 C++。
Fatbobman's Swift Weekly
惠我良多的东坡肘子將平時閱讀推薦的材料吸收烹調後,推出新的電子報 Fatbobman's Swift Weekly ,還是雙語版本,第一期的內容每篇我都讀完了,皆是相當吸引人的選文。
本期我最喜歡的一篇是 - 「 iPhone 15 Pro / Apple Vision Pro 上的空间视频,到底是什么?」 ,新的媒體格式仍然能夠相容全 Apple 設備, Apple 在多媒體格式支援佈局的遠見與下的功夫,著實令人佩服。總之,這個週報乾貨量充足,波報的讀者不要錯過。
Xcode 15.1 修復 Unit Test 性能問題
Release note 相信 13報會準備給大家,我只想點出其中重要的一點,Xcode 15.1 修復了 15.0 引入的嚴重 unit test 性能問題。
MacCast
這個還在早期的專案可以把 macOS 上的視窗投到 visionOS 中,且可以移動、調整位置大小和角度,殺手級應用啊!!
Demo 效果可以看這則推文。
Repo: https://github.com/saagarjha/MacCast
🗣️ On Swift Forum
Macro Adoption Concerns around SwiftSyntax
同時使用 SwiftSyntax 和 Macros 的開發者(用第三方套件也是)要小心了,你很可能會遇到 SwfitSyntax 版本衝突的問題,而且目前除了互相協調外沒有太好的解法。這主因是 SwiftSyntax 並不是語意化版本的信奉者,它快速地進化中且不停地帶來 breaking change,且各個套件都可以直接輕易地依賴於它,Swift OpenAPI generator 最近就遇到這個狀況。這個問題未來可能會變得更嚴重,因為重要功能被綁定在幾個特定版本時,大家就更容易在版本選擇上發生衝突,說到底還是有賴 Apple 更系統化的解方。詳細討論可以看:
https://forums.swift.org/t/macro-adoption-concerns-around-swiftsyntax/66588/65
[SE-0409]: Access-level modifiers on import declarations (Accepted)
SE-0409 為 import 帶來了 access level:public, package, internal, fileprivate, 和 private 共五個層級,正如我們一般使用在物件和函數上的相同,所以心智模型直接沿用即可,比如說你不能把 pirvate import
取得的型別暴露在 public
的方法上。我個人對這個提案感到非常開心,因為這是大家私用已久的 @_implementationOnly
的正式、且更完整的替代方案。
現在預設的使用情況是把引入的 depenednecy 都當作是 public,縱使你暴露的所有 API 都沒有用到這個引入的 dependency(僅內部使用),這樣帶來的問題是拖慢編譯速度(因為你引進的 dependency 會包含其所有子 dependency),以及更大的 binary size(露出更多符號)。解法則是把僅內部使用的 import 冠上 @_implementationOnly
,不過使用底線開頭的 api 總是不太舒服,這個提案為此困境帶來曙光。
值得留意的是 Swift 5 預設的 level 是 public,而 Swift 6 則是 internal。
🤪 Pofat 選推
想必微軟已經履歷接到手軟
寫了 Swift macros 你也是 compiler 工程師
現在才知道原來 Nintendo 帳號已經正式支援 Passkey,這應該是我第一個頻繁使用的 Passkey
https://9to5mac.com/2023/09/21/nintendo-adds-passkey-support/