💬 Pofat 的話
我很喜歡符號和其背後的故事,前陣子在斯堪地納維亞地區(又稱之北歐)旅行時路上常會看見 iOS 工程師熟到不能再熟的「⌘」,很快地我就發現那個符號代表景點。查了一下才知道當時(1984)Steve Jobs 覺得團隊用 Apple logo 代表 command 鍵是種濫用,於是身負重新設計重任的 Susan Kare 從資料庫中挖出這個符號,很快地就受到大家青睞並成功出道,從此變成 Apple 鍵盤的獨特識別符號。
找到的資料都沒提到 Susan 對這符號和其代表的功能是否有什麼想法(看起來就是吸睛考量),不過開了幾天車後我注意到,在路上看到這符號後就會被啟動「也許可以去幹嘛」的念頭,而在鍵盤上 command 鍵就是要用來幹嘛的必備啟動鍵,想想也是很有趣的連結。
(圖片來源)
🌎 On Swift Community
Debugging Improvements in Swift 5.9
在 Swift 使用 lldb debug 的經驗只能用痛苦不堪形容,一來光是擊中 breakpoint 後要到顯示變數的時間就非常長 (v),二來還常常載入失敗,情況更會隨著專案變大而惡化,不過最大的痛苦還是來自於印出變數 po
這種基本操作都很難用,而且在 5.9 之前它還會保存輸出的結果,為此該變數若是 reference type,retain count 會增加,觀察它的行為反而影響了其生命週期,太坑了。
幸好 Swift 5.9 開始了一系列改善,首先把 po
和 p
連結到新的 dwim-print (Do What I Mean,終於) 實作,新的方式原理跟中斷點擊中後 Xcode 用來顯示變數觀察區裡數據的原理相同(v
),少了編譯和注入程式碼的過程,而且不再保存輸出結果。另一個很棒的改進是當你直接印出物件位址時(比如:po 0x0000aaaaabb
),它會讀取 compiler 嘗試 unsafeBitCast 的結果並印出物件類型,在之前你只會得到存在該位址的數據,對人類來說沒有意義。
此外也支援了對泛型變數的 expression,因此可以在 breakpoint 條件中設定特定型別才中斷某泛型方法、Swift compiler 也輸出更多資訊讓 debugger 指出更正確的狀況。
如果想了解 po
和 v
的差異,或是還有什麼其它最佳化方向,我推薦閱讀卓立這篇Swift 调试性能的优化方案。
原文: https://www.swift.org/blog/whats-new-swift-debugging-5.9/
iOS 17 UK 專屬功能 - 看銀行卡餘額
多虧了 UK Open Bank API,有 UK 銀行者可在 Apple Wallet 裡快速檢視餘額和交易紀錄,從 iOS 17.1 開始支援,難得見到專屬某個國家的功能。
https://twitter.com/bzamayo/status/1707078581996904564
Control Center Icon 喜歡沒事一直 re-render
有人發現 Control Center 很穩定地佔用 1% CPU,研究後發現原來是 SwiftUI 持續 re-render 其 UI(icon),無論是否看得到,真讚。不過我覺得比較有料的是原文作者回覆大家對於這 1% 是否會提昇 1% 能耗的疑問, 原推如下:
https://x.com/praeclarum/status/1706725414465683583?s=20
🤪 選推與閒聊
iPhone 15 Pro 其實是新款的遊戲主機!USB-C 接口支援 display port 可直輸出到螢幕,我測試過可行,而且打 cloud gaming 就不用擔心主機發熱了🌚
https://twitter.com/VadimYuryev/status/1706574913962917991
不然 Razer 也有出這款超酷 RGB 手機專用風扇,還支援 MagSafe
https://www.razer.com/mobile-accessories/razer-phone-cooler-chroma/RC21-01790100-R3M1 (圖片來自官網)