💬 Pofat 的話
終於把今年的 GOTY 提名的遊戲除異度神劍3外都破過一輪了,每款實力都很堅強,實在很難做出抉擇啊!西域禁地和諸神黃昏這兩款我都玩得非常愉快但也皆帶點小遺憾、瘟疫傳說:安魂曲則是遊戲性、畫面和劇情都比前作更棒的續作,也給故事一個結尾、Stray 帶來的奇妙靜謐感很讓人享受,而法環則滿足了抖 M 魂,有興趣的也可以參加投票: https://thegameawards.com/nominees/game-of-the-year。
說實在我真的很喜歡戰神這兩代在冒險路途上可以聽密米爾講故事的那種旅途氛圍,讓人不想停止旅程,只可惜遊戲中的故事會說完。
🌎 On Swift Community
SwiftUI Dismissing The Keyboard
iOS 15 推出 FocusState
用來控制鍵盤退出,最近才知道 iOS 16 有新的 scrollDismissesKeyboard
modifier 來控制在可滾動畫面裡的鍵盤退出行為。
Biggest Challenge in SwiftUI
一個簇擁 SwiftUI 的開發者所見之痛點 - 他必須常在 SwiftUI 與 UIKit 間來回,難以在開發過程中直接下決定。
Applying complex gestures to a SwiftUI view
關於各種 SwiftUI 手勢以及如何綜合起來在一個元件裡的好文章:
🗣️ On Swift Forum
The syntax for variadic generics
Variadic generics 就使用的文法上徵求社群意見,原先預定的 ... 會和已經在 Swift 中大量用來表示多個參數的用法混淆。
是說開頭的那句 It's time to bikeshed the syntax for variadic generics! 這個動詞不知道大家知道嗎?我今年在某個會議上學到這個字,大意是指雞毛蒜皮的事,通常是意指別管太多,其中一個來源可以參考這個網頁 (多 reload 幾次會發現小彩蛋)。
Memory management without guessing
關於記憶體宣告位置的有趣討論,大家可能知道 class 實例會放在 heap 中,而 struct 的實例就是就地擺放(預設 stack),通常你不會需要去管理它,而管理它又真的是理想的事嗎?
這裡有個回覆多少有回答到這疑問,同時也介紹了如果你只是想保證沒有 allocation 或 lock ,可以使用 @noLocks 與 @noAllocation 這兩個標記來讓 compiler 在違反原則時提醒你(注意 allocation 時需 lock 所以後者隱含前者)。
Documenting what @MainActor actually does
Apple 官方文件表示 @MainActor 所標記的方法都會在 main thread 上執行,這也是大多開發者的期許,但事實並非所以,望官方能在文件中更清楚標註使用上的保證與期許,不過看起來有些是目前漏掉檢查的 bug ,比如餵 keypath 給 map 時。
發文者最近發表文章說明親身測試 @MainActor 不保證的行為(坑),有相似困擾的人可以了解一下是不是踩到了。
🤪 Pofat 選推
把 PR 當故事寫是一種對 reviewer 展現熱情的方式,有沒有展示出程式碼背後的脈絡以及自己先看過一次,這些都是撰寫 PR 描述時很好的建議
USB3 若沒精準調校,三兩下就可能融化 Macbook 的喇叭
人為財死,鳥為食亡,鼠全都要
生產力週期數位化