💬 Pofat 的話
雖然上週才講過 AR/VR 流言滿天的感想,但上週五的 iOS Dev Weekly 完全與我所見雷同(蹭),就想再說說我的看法,的確從現有的所有認知中,很難想像蘋果能端出什麼突破好幾年的產品情境,就算有也很難想像使用者跟得上。
如果真的今年發佈,我想也是運作在非常充滿限制的環境下,像是室內之類的環境。畢竟我猜測他們會先主攻 AR ,而和真實世界所有物品都能互動又太困難,蘋果也不可能端出一個提供勉強堪用場景的產品,要端出來也是炫但沒用(信仰充值用)才是啊比如初代 Apple Watch,不過無論理智如何思考還是想存點錢期待一下。
🌎 On Swift Community
Foundation Package Preview Now Available
去年 12 月就預告過 Foundation 的開源重寫會是今年 Swift 的一個重要里程碑,上週正式宣佈了 Preview 版本,亮點就是提昇的效能,減少了和 Objective-C 之間的往返和轉換,FormatStyle 提昇了 150% 而 JSON 解析竟達到 200-500% 的提昇,我想除了轉換開銷外,能夠使用 Swift 更有效率的基礎型別也是一點,只是想到 Objective-C 的集合類型效能如此之差。
Foundation 借鏡 Swift 的運作模式,也會有自己 的 Proposal ,以及 workgroup 來協調社群和 Apple 本身的目標。此外,目前的 swift-corelib-foundation
將會退休,如何交替仍在研究中,裡面可用的實作會先慢慢地搬進來使用,想玩的朋友要注意目前 Foundation 依賴開發中的 Swift 5.9 Toolchain。
對 Apple 開發者來說這代表什麼?除了滿足純粹 Swfit 的潔癖外,既然 Foundation 變成一個(包含數個) Swift Package,我們是否能在自己的 app 中內嵌某個版本而不用等待 OS 的更新?目前還不清楚,但可以確定的是,迫不及待想嘗鮮的你已可以把那些高效能的實作先抄進 app 中了。
不過我私心還是想懇求水果先開源 SwiftUI 吧!
Xcode 14.3 編的 app 會在 iOS 15.0,15.1,15.1.1 Crash
是 Structured concurrency 的 bug,目前貌似沒 workaround 只能把最小支援版本升到 15.2 以上,大家留意了。
Conferences for Swift!
今年 conference 蓬勃地發生,把前面幾年被疫情打壓的活力一口氣舒展回來,發刊同時 DeepDishSwfit 正在進行中,如果覺得是時候找個參加的話別錯過這個新 app : Conferences for Swift。也不要錯過別週報與 13 報,原因嘿嘿嘿。
🗣️ On Swift Forum
New Section For Foundation
Foundation Preview 釋出後,論壇畫也開了新的專區用來討論提案和交流,第一篇討論就很有意思,swift-measurement 的作者提出了幾個基於易用性的改善方向,其中我對為什麼 Measure 不能有基本的運算單元很有同感,原來 compiler team 對於此議題早提出了顧慮,恐有 type checker 的效能問題,想想 opeartor 本身就是 overloading 的熱點沒錯,期待這方面能有更大的突跛,畢竟 compile time 一直是 Swift 開發者們的痛。
SE-0397: Freestanding declaration macros (Reviewing)
Macro 宇宙會因此提案再擴張(一層),因為可以在 macro 裡使用別的 macro 來使出組合技了,不過只能一層,而且上層的 macro 得用新的型別宣告: @freestanding
。舉例比較快懂,比如可以利用給字串模型和變數生成單一宣告的 GYBMacro 來組成一次生成多個宣告的 macro。
SE-0398: Allow Generic Types to Abstract Over Packs (Reviewing)
把人搞得暈頭轉向的 SE-0393 (variadic generic,順道一提它被 accepted 了 😌) 有新的後繼提案繼續把你搞得更花,我已可以想見 Swift 5.9 出來後網路會有一大票的泛型教學文章。
不過這提案也是因應必要而生,在處理集合類型時會遇到一個顯然的問題,當源頭已定義了 pack (比如 each U
),生出來的集合很自然會與這個 pack 有關,於是把這定義傳給集合以推導出新的組合結果是很自然的需求,聽不懂請看下圖如何傳遞使用參數:
老實說泛型搞到現在我覺得實在有點太複雜,這幾年的新功能很多都是難以一下子理解的,雖然越來越強大但代價也未免太沉重。
🤪 Pofat 選推
這個 thread 很有趣,關於 IAP 轉換效果的因素分析,獨立開發者都想知道的事情
https://twitter.com/KrauseFx/status/1651646245344092160?s=20