💬 Pofat 的話
本週社群很活躍,剛滿十年的知名 iOS/macOS conference NSSpain 辦了疫情後第一次實體活動,我的版面在 15 和 16 號兩天被完全洗版,今年由 Krzysztof 以 Composable Architecture at Scale 開場、 Brandon 講 URL Routing with NavigationStack 結尾, 光這兩場就很吸引人了,可惜這次無法參加,期待影片。
最大的新聞還是 Figma 以驚人的身價正式成為 Figma CC (Fm !?),200 倍 revenue 的收購價真的盤,不愧是把設計師當盤子的大盤商。也許是因為 Figma 很成功地成為設計師和工程師間的橋樑,只在設計界的髒東西就這樣流入工程圈了,工程師們也是各種 RIP 。雖然怨聲載道但我認為這不全是壞事,我是不懂設計師的痛點、需求,不過目前的歷史紀錄告訴我們 Adobe 是眼光精準的收購家,Figma 吸金力道也不小,加入生態系也的確能再幫他們擴充客群、或把逃出 Adobe 魔掌的人們再捉回去🌚。
最後還有 print 與 debugger 哪個好的論戰,我還是總歸一句:
No code, no bug.
p.s. 寫稿時台灣正經歷許多地震,祝大家平安,也注意安全。
p.s+. 本週有事出門坐了十幾個小時的飛機,只能利用在機上的空檔撰寫週報,使用贊助款購買機上 Wi-Fi 才生得出這期,實乃讀者贊助播出啊!喜歡本週報的朋友請訂閱 Patreon 支持🙏
🌎 On Swift Community
Dynamic Island 的已知情報
文件公佈、加上陸續有人收到新手機,因此大家把玩的成果展也不少,以下是我整理的消息和感想:
首先 Dynamic Island 是 ActivityKit 的一部分,它們皆利用了 WidgetKit 來打造UI:
我們在 weak self 98 集也聊過 WidgetKit 下一個出席的大場合很可能是 AR 眼鏡,要讓 UI 上的物件要跟真實世界物件做良好的三維互動有太多挑戰,而 WidgetKit 的平面元件,要「貼」在現實的平面上相對容易許多。眼鏡會長時間戴著,也需要長時間呈現資訊變化的工具,即是 WidgetKit 的功能,Live Activity 也許是第一步,而 Dynamic Island 則是擔綱可愛角色。
只是文件裡的 API 看起來實在是有點糟,理解因多變化需把元件折成幾小塊來各自設定,但太多 trailing clousre 一層套一層實在難讀。如果上述預言成真,WidgetKitConfiguration
這不 scalable 的設計需要改變才行。(以上都我的空想也可能不會發生)
討論度很高的動畫,其實是有著獨立的硬體支援,使其永保滑順以及更精細的細節以與實體的切孔結合。
至於動畫很神奇的部分其實沒有什麼大祕密,完全不脫離動畫的 12 大原則,反而是有點復古化(一次結合許多原則的呈現,我個人感覺可能較容易分心),以下一些解釋:
想知道動畫的 12 原則是什麼可以見這網頁,有影片輔助一看就能理解。
IOS 16 相簿實用新功能
功能開發者親自推薦,重複相片偵測真的讚!
行動網路的挑戰
JP Simard 上週在 NSSpain X 的議程,雖然還沒有影片但我找到 Lyft Engineer Blog 上的相關文章。由於行動網路的條件實在太變化多端,監測健康度更加困難,因此 Lyft 內部做了一套網路引擎(已開源)來取代 URLSession ,意外地 OOM 和 ANR 都下降了。
具體差在哪內文沒有很清楚的描述,有待影片或下篇文解釋,不過極度仰賴即時資訊的 App 開發者都應該要好好地思考這個問題 - 如何確認網路連線的健康度。
APP 效能分析實戰
我很喜歡看 emerge tools 的文,儘管我已經做了幾年的 performance engineer ,都還是能從他們的文中學到東西。Performance 這個領域的困難點在於你總是要在不熟悉的程式中回答原作者都回答不出來的問題:為什麼這段程式跑那麼慢?
現在的工具能給我們很多觀察的結果,可惜大多情況無法透過這些直接看到核心問題,如何在這些資訊海中找到合理的懷疑與見解,是這個工作的挑戰與有趣之處。
不過也是有例外:
Zoom's app actually spends 41ms sleeping on the main thread during startup.
哪個想靠這招升遷的工程師幹的?快出來自首吧!
SwiftOperator
SwiftOperators
是用來分析 operator 與其位置順序(precedence)的新 Swift Package ,加入成為 SwiftSyntax 的一部分
用途如下:
Print v.s. Debugger
最近的論戰焦點之一:你 debug 時都是用 print 還是 debugger 呢?
起於此兩文 (debugger 先的喔)
以及 print 也合用支持方(顯然 Xcode 是推手)
🤪 Pofat 選推
Figma 我們懷念他(上香由此去)
Apple :小丑竟是我自己 🤡 (請依序閱讀下兩推)
你看過 Cupertino 凌晨五點的樣子嗎?
五花八門動態島
還在堅持中
有的沒的...