波報 #32 - 降價打擊的 HomePod
Swift 大小事 2023/1/30 - 2023/2/5
💬 Pofat 的話
請原諒波報又延遲一日發刊,最近每週都有不同的突發小狀況(絕不是在打電動!),但還是要堅持發刊!
🌎 On Swift Community
HomePod
這次在外地依慣例尋訪蘋果直營店時正好是 HomePod 上市的第一天,店員們弄了一間舒服的客廳並把 HomdPod 擺在中間的櫃子上,大聲地放著搖滾樂,看到我在張望便邀請我進去坐著試聽。音質非常地通透清亮(原諒我木耳也沒有第一代 HomePod),單聽這音質我是會想買的,在不大的空間中表現很優秀。在和店員的聊天中得知,二代相較一代的聲音輸出更為精準,這代雖少了兩個單體和麥克風,大部分評測仍給出了音質相等的評價,注意只是相等。
其它差異還包含布料織法的不同、
以及可移除的電源線(人民的聲音),


上述的差異加上減少了 50 美元的價格,你會心動嗎?
最後附上和水果店的合照,大家猜猜這是哪間分店。
The Evolution of Facebook’s iOS App Architecture
程式碼數量在 OS 規模的 iOS App 會採用怎麼的架構,FB iOS 的歷史演化讓你一窺究竟。
如何在 ScrollView 取得 offset
SwiftUI 的 ScrollView 本身並不支援這個很常被使用的功能,這篇文章提供了一種特別的思路來實現這個功能,當然少了不 Color.clear 夾帶 Preference 大法。


SwiftUI 炸裂談
苦主的血淚體驗,tvOS 本來就是個艱難的環境,加上 SwiftUI 更雪上加霜。本來我都會說只你支援範圍保持在 iOS n-1 大多都會相安無事,但 iOS 16 各個子版本對 SwiftUI 諸多元件都有各自解讀,百花齊放,現在我也不敢這麼說了。
Rust Magazine 第一期
有鑑於 Swift 的 Rust 化,Rust 的事務也可以算是 Swift 社群的事了吧?
Rust Magazine 首期採訪到 Rust package manager 目前的主要維護者 Weihang Lo,關於加入 Rust 的心路歷程與挑戰、以及 Cargo team 如何運作。


WebKit 也有 hard coding
這三個分別是 Microsoft,Outlook 和 PS。


🗣️ On Swift Forum
SE-0387: Cross-Compilation Destination Bundles (Reviewing)
Swift Cross Compile 的體驗仍然很不好,這顯然是 Swift Everywhere 的一大阻礙,而改善的方法自然是有更集中化的介面來管理,而最需要管理的自然是 build-time 與 run-time 的組合(在哪裡編譯 v.s. 在哪裡執行)。這個提案基於 SE-305 對 SPM Binary 對象的改良來繼續發展,會在 .artifactbundle
裡長出樹狀結構,並用頂層的 json 來存放 metadata。
Attached Macros (Pitching)
Swift Macros 的第二步,這個提案可以讓你只要在需要的地方加上標記(需要遵循 AttachedMacro),便能依場所生成不同的程式碼:
Peer macros:使用在函數上,能夠改變其宣告介面,例如自動新增 completion handler 的參數。
Member macros:使用在物件上,比如為
OptionSet
生成每個Option
的rawValue
。Accessor macros:使用在 property 上,可以生成 getter setter。
對於整個 Swift Macros 的發展狀況有興趣的可以參考這個統一整理的文件。
🤪 Pofat 選推
很棒的入行心路歷程和實用的建議


我常忘
Netflix



好圓
迴轉壽司信任危機解方:非對稱加密