老司機 iOS 週報 #108 | 2020.04.06

老司機iOS週報發表於2020-04-07

老司機 iOS 週報,只為你呈現有價值的資訊。

你也可以為這個專案出一份力,如果發現有價值的資訊、文章、工具等可以到 Issues 裡提給我們,我們會盡快處理。記得寫上推薦的理由哦。有建議和意見也歡迎到 Issues 提出。

新聞

? 通用購買現可包含 Mac App

@水水:現在,可以在通用購買中包含 app 的 macOS 版本,讓使用者只需購買一次,即可在 iOS、iPadOS、macOS、watchOS 和 Apple tvOS 上使用您的 app 和 App 內購買專案。為此著手準備,只需在 Xcode 中為您跨平臺的 app 繫結相同的 bundle ID,並在 App Store Connect 中為通用購買設定好 app 記錄。

新手推薦

? 字串比較中 NSNumericSearch 選項的工作原理

@極速男孩:比較版本號是我們開發中常見的需求,在字串中我們經常會使用到 NSNumericSearch 對當中的數字進行比較,本文主要介紹了在各種不同情況下字串通過 NSNumericSearch 比較的結果和從中得到原理。

文章

? ? Apple 作業系統可執行檔案 Mach-O

@J_Knight_:Mach-O 在 Mach 核心的作業系統(macOS,iPadOS 和 iOS)中使用。學習它有助於理解程式是如何載入到這些系統和如何執行的,也有助於瞭解符號查詢,函式呼叫堆疊符號化等等。本文結合程式碼,從 Mach-O 的構建方法,如何組織,如何工作,匯入和匯出的方法,對其做了比較詳細的介紹。對於想學習 Mach-O 的讀者來說,本文是一篇可以初步瞭解 Mach-O 的文章。

? ? 位元組跳動為什麼選用 Flutter:並非跨平臺終極之選,但它可能是不一樣的未來

@looping:本文是 InfoQ 對位元組跳動移動平臺部 Flutter 架構師、知名部落格 Gityuan 博主袁輝輝採訪內容的整理,主要有分析了大家看好 Flutter 以及位元組跳動選擇 Flutter 的原因,還分享了公司內部在 Flutter 實踐和推廣過程中遇到的一些問題和阻力,最後也提出了他個人對跨平臺技術的一些看法,這些都可以作為我們在做跨平臺技術選型時的參考。

? A Look Into ArgumentParser

@xiaofei86:最近,蘋果開源了由 Swift 實現的用於解析命令列引數的 Swift Argument Parser。在瞭解基本使用後,本文將帶你深入探究 ArgumentParser 的內部實現,瞭解 ParsableCommand 協議和四個屬性包裝器背後隱藏著的複雜性。通過本文,你可以瞭解到 Swift 團隊為實現優雅介面所付出的巨大努力,並希望你也可以欣賞這些優雅設計。

? iOS 端向量圖解決方案彙總(SVG 篇)

@含笑飲砒霜:SVG 作為目前在 Web 上最流行的向量格式,在 iOS 端的支援可以說是一言難盡。文中列舉了幾個目前已有的實現,可以說是各有優劣,具體使用何種方案還要根據自己的實際需要來選擇。

? 全網最詳!暗黑模式在 Trip.com App 的實踐

@紅紙:本文是攜程團隊對於適配 Dark Mode 的實踐總結,從視覺設計、設計方案(顏色對映及插畫設計)等角度來闡述 DarkLight 在設計上的區別。最後配套有 iOS/Android/RN 三端的適配方案可供開發大大們進行參考。

往期週報中的兩則相關內容推薦給大家:Office 開發元件 DarkModeKit 和開發適配相關的 How To Adopt Dark Mode In Your iOS App ?

? Kotlin/Native and Xcode integration insights

@老峰:Kotlin/Native 是一種基於 LLVM 將 Kotlin 程式碼編譯成本地二進位制檔案的技術,它可以在沒有虛擬機器的情況下執行。本文介紹了在 Xcode 整合 Kotlin/Native 工具集實現,從而實現 iOS 呼叫 Kotlin 公共業務程式碼庫的具體操作過程,感興趣的讀者可以進一步瞭解。

? 靜態插樁的方式來實現 Hook Method

@Parsifal99 期週報推薦過美團歐陽大哥關於「靜態攔截 iOS 物件方法呼叫的簡易實現」一文,該文從另一個新穎的角度“靜態庫會將自己引用的外部符號單獨儲存在一張表中”出發,提出了 Method Hook 的新思路。本篇文章則基於這個理論完成了實踐。文中作者總結了幾點實踐過程中遇到的問題,包括對靜態庫和目標檔案的理解、Python 實現的坑等方面,值得我們借鑑。

本文由作者 maniackk 自薦。

工具

Echo

@EyreFree:Echo 是一款簡單易用、外掛化易擴充套件、大屏顯示和操作的客戶端研發除錯工具,可以實時檢視 App 各類資料(網路請求、日誌、埋點等),也可以無須改動程式碼快速修改預覽 App 的效果。相比其他 Debug 工具,它還具有以下優勢:

  • 大螢幕:顯示效果更優,不影響原 App 的使用者操作,使用體驗更好;
  • 擴充套件性:內建通用模板及外掛機制可快速擴充套件新功能,只需關注業務資料即可,降低新功能擴充套件成本;
  • 聚合型:收斂客戶端研發除錯工具為一體,提高 RD 和 QA 同學的效率;
  • 快取機制:外掛自帶快取機制,出現問題時即使脫離大屏,後續也可快速連線排查定位。

程式碼

? TextureSwiftSupport

@JimQ:臉書大廠出品的 Texture 採用者眾多,SwiftUI 風格的 Texture 現在可以嘗試了(非官方),基於 Swift 為 SwiftUI 引入的新特性 Function builders

音視訊

道長三十:工科生如何去美國讀研?

@張嘉夫:ggtalk 這期的嘉賓是目前在美國工作的故胤道長,總節目時長接近五個小時,按照內容分為三期。第一期道長主要和大家聊聊在 CMU 讀研的過程,從準備、申請到入學之後的各種經歷。

ATP 371: Chris Lattner 訪談

Chris Lattner 大神再一次作客 ATP,這次聊的話題有:

  • Swift for TensorFlow
  • MLIR(本期的標題來源)
  • Swift 統治世界
  • SwiftUI & Combine
  • Swift ABI Stability

這期節目跟上次一樣也是非常歡樂,聊 MLIR 之前 Chris 還問主持人這個話題對他來說會不會太過極客??

There's another project called MLIR. Have you heard of anything about that? Do you want to talk about that? Or is that too geeky for John Siracusa?

總的來說這期節目非常推薦收聽,另外沒有聽過上次訪談的讀者,也直接可以看道長整理的文字版 Chris Lattner 訪談錄

內推

老司機週報團隊聯合知識小集和 SwiftGG 翻譯組收錄了一份靠譜的內推職位。

如果你想找工作,點這裡:www.yuque.com/iosalliance…

如果你想招人,點這裡:www.yuque.com/iosalliance…

當然,也歡迎你關注我們每一期的週報,我們會在每期週報底部及時更新編輯內推崗位。

關注我們

我們開通了公眾號,每期釋出時公眾號(OldDriverWeekly)會推送訊息,歡迎關注。

老司機 iOS 週報 #108 | 2020.04.06

同時也支援了 RSS 訂閱:github.com/SwiftOldDri…

說明

? 表示需翻牆,? 表示編輯推薦

預計閱讀時間:? 很快就能讀完(1 - 10 mins);? 中等 (10 - 20 mins);? 慢(20+ mins)

相關文章