💬 Pofat 的話
visionOS 的模擬器發佈後立刻成為 Apple 開發者們最熱門的玩具,從大多的移植經驗談看起來大多是容易的,不少人沒改 code 也可直上,真的要稱讚 Apple 這次新平台的兼容體驗(望向 Catalyst)。
🌎 On Swift Community
Plan Your visionOS App
想體驗的人可以先從這邊官方教學開始入手,如果想移植既有 app 的話可以直接從 Bringing your existing app to visionOS ,裡面有列出 visionOS 不支援但 iOS 有支援的 framework。UIKit 幾乎全部都有支援,除了 deprecate API 以外,還有要特別留意 UIScreen 不支援,利用它拿 scale factor 在 visionOS 上行不通了(目前 visionOS simulator 是 x2) 。最後 storyboard / xib 也都不支援,喵神說 Interface Builder 和純 code 的千古爭論可以劃下句點了 🤣
深度解讀 Observation
肘子哥又一篇精采好文,深入探討 Observation 何以能提供精準的觀察結果,又何以幫助 SwiftUI 提昇效能,之前我有看沒懂的 `withObservationTracking` 也從此文中得到更完整的了解。
題外話,Xcode 15 Beta 2 的 SwiftUI 重新導出了其依賴的 Observation framework ,也就是 import SwiftUI 就會一起看得到
Observable
,使用 RxSwift 的朋友們就哭泣了,因為和其基本元件 Observable 撞名, 可能的 workaround 是先自己用 typealias 來覆蓋,這不知道會不會修正,撞到的人發 feedback 吧!
GRDB in Xcode 15 and watchOS 10
GRDB 是個封裝 SQLite 與提供各種好用現代工具的 Swift framework,包括資料變更通知、加密與備份等,最近被發現使用於最新 watchOS 10 和 Xcode 15 ,這是 Swift 套件開發者的一個榮耀啊!
Interesting Swift macros
這陣子看到許多有趣的 macros,首先是直接印出 AST 結構的 #showAST,這對於學習和 debug macro 都會很有幫助;還有幫助 mock 和 stub 的 @Spyable,幫你生成遵循指定 Protocol 的 mock,使用起來感覺很像 OCMock ,這也是 Sourcery 被廣泛使用的功能之一;最後是幫助你快速定義自定義 Codable 實作的 MetaCodable。
🤪 Pofat 選推
visionOS app prototyping
https://twitter.com/Volorf/status/1671496474729824257?s=20
iOS 17 的 widget 可以在 lock screen 上直接播放聲音,很快就要有放屁聲 widget 了
https://twitter.com/leoMehlig/status/1671539238288908288?s=20
最佳操控 visionOS 模擬器的方式是遊戲手把
https://mastodon.social/@schwa/110584643371042839
或是你也可以搭配 macOS 裡的頭控指標(現在才知道系列,要有攝影機),但當然手把感受比較好
https://mastodon.social/@_inside/110588099090789064
STS 已經有許多有趣的 visionOS app 嘗試,可以到他的 mastodon 看