🕐13的話
週報從 0 開始,不知不覺也寫了 200 期。跟你們說個小秘訣:週報的網址格式是這樣 URL(string: "https://www.ethanhuang13.com/p/\(期數)")
最近三週,改成週一早上上班前寫週報,我就得早起,前一天就得早睡。其實這樣的寫作節奏比之前都是晚上、快半夜的時候寫還要好很多。
不過這週我沒蒐集到太多能報導的素材就是了。
最近比較有在玩的東西是 Swift Concurrency、AsyncStream
、OSLog
、TCA 1.0 等等,有機會再跟大家分享心得。
支持我繼續寫這份週報,請訂閱我的 Patreon。一個月只要 $5 USD🙏
🧪Apple Releases & News
iOS 17 Beta 6 (21A5312c) 這一版 iOS 我的個人感覺是手機溫度明顯下降、沒那麼耗電了。
macOS 14 Beta 5 (23A5312d) & 13.5.1 (22G90)
watchOS 10 Beta 6 (21R5341c) & 9.6.1 (20U80)
🚀Setapp Planning to Launch Alternative App Store for iOS in Europe
由於歐盟要求,Apple 可能會在不久的將來開放 App Store 以外的發布與銷售管道。Setapp 看起來是想做自己的 iOS app 商店。
我覺得這是件好事。至少從使用者的角度而言,Setapp 的 Mac app 在下載應用程式的速度遠勝 Mac App Store,目錄也是精挑細選。
從開發者的角度,我會希望有更多上架的選項。能被 Setapp 挑中也算是一種肯定吧。
順帶一提,其實 Setapp 目前的訂閱已經包含部分 iOS apps 了。安裝跟啟用流程是先在 App Store 下載一般版本的 app,然後透過 Mac 上的 Setapp 的 QR code,deeplink 進到該 app 來啟用。
下圖是進到所有 iOS apps 的地方,我算了一下目前有 39 個。
是說,Setapp 這種啟用方式並沒有違反 App Store Guideline。
講到這邊,我就順便貼一下我自己的 Setapp 推薦連結。透過連結註冊的話,你我都可以獲得一個月免費。
😂本週選嘟
https://mastodon.social/@philnash/110908751468594256
Looks like GitHub Copliot is a real developer now!
原因是?😂
https://mastodon.social/@mbrandonw@hachyderm.io/110906131967298085
In general, when you see a
Task { … }
in code, your visceral reaction should be that of nails on a chalkboard.
一些知名開發者對於 Task
的討論。
Swift Concurrency 是設計成讓開發者能夠結構化地安排工作,但 Task
是非結構的 API,多半是為了橋接非 concurrency code。
對我來說,濫用 Task
跟在 GCD 時代濫用 global dispatch queue 是差不了多少,我自己是只有在必要時才會使用。當然,只要清楚自己在幹嘛的話,它仍然是個好工具。
https://mastodon.social/@mgorbach/110812346248732071
Bit of background on the way interactive app intents get run for your widget.
怎樣把互動式 Widget 搞起來。看得我頭都暈了。
到了 2023 年,我個人還是能不碰 WidgetKit 就不碰。太傷害了。
https://mastodon.social/@ethanhuang13/110904915670262949
iOS 17's JSONEncoder is rarely producing a different key sorting order(< 5%)
我同事發現的坑。以前 JSONEncoder
在 encode 的時候,產生出來 JSON object 的 key 是固定順序。但是在 iOS 17 時,卻有極低機率可能是亂序。
這對於產生一個正確格式的 JSON 來說不是問題。但如果你寫過 Codable 的單元測試,就有可能會失敗。
程式碼、重現步驟、解法,都列在連結裡了。
最後的小提醒:🙏請訂閱支持我持續撰寫這份週報,一個月只要 $5 USD。也歡迎按喜歡❤️、留言💬、回信✉️與我交流喔。