老司機 iOS 週報,只為你呈現有價值的資訊。
你也可以為這個專案出一份力,如果發現有價值的資訊、文章、工具等可以到 Issues 裡提給我們,我們會盡快處理。記得寫上推薦的理由哦。有建議和意見也歡迎到 Issues 提出。
新手推薦
? Using Closures to initialize properties in Swift
@anotheren:本文介紹瞭如何使用閉包來初始化儲存屬性,特別是使用 lazy var
來延遲初始化,你甚至可以在閉包中“安全”地使用 self
。閉包將原本分散在程式各處的程式碼合理地組合到一起,推薦嘗試。
@zvving:值得注意的是,lazy var
這種方式並不能做到 thread-safe,使用時有必要考慮到這點。更多的 Swift 資源競爭相關知識可以再閱讀下 92 期週報推薦的 Thread Sanitizer explained: Data Races in Swift 一文。
? tintColor
@水水: tintColor 是 UIView 中返回顏色的變數,如果未定義這個顏色,則返回系統的預設色(亮藍色),就比如你不定義一個按鈕的文字顏色,則你會看到預設的藍色。並且通過將 tintColor 設定到檢視控制器的檢視上,您可以輕鬆更改應用程式的外觀。更多關於 tintColor 的使用方法具體可以檢視文章~
文章
? ? 揭祕 APM iOS SDK 的核心技術
@J_Knight_:本文參考了聽雲、OneAPM 和 Firebase Performance Monitoring 等 APM SDK,並結合程式碼分享了幾項 APM 核心技術的實現:
- 頁面渲染時間監控
- 啟動時間監控
- 網路監控
- NSURLSession(NSURLSessionDataTask,NSURLSessionUploadTask,NSURLSessionDownloadTask 的 所有API)
- 響應時間(傳送請求開始到服務端的相應到達客戶端的時間間隔)
具體的實現方式可以參考文中的詳細程式碼,對我們自己實現這些監控專案會有幫助。
? 看完這一篇,再也不用擔心 Git 的“黑魔法”
@含笑飲砒霜:標題起的有點魔幻,其實本文算是對 Git 的一些基本命令做了一個粗略的概述,目的是拋磚引玉,讓大家對 Git 有一個基本的認識。大家可以作為參考以便使用時查閱。
? Understanding Swift's ObjectIdentifier
@Damonwong:ObjectIdentifier 是 Swift 中一個比較冷門的型別。這裡的冷門並不是指作用不大,而是日常使用不多。在 Swift 內部,ObjectIdentifier 承載著重要的作用,是運算子 === 實現的根本。也可以作為 metatypes 相互比較的工具。(預設的 metatypes 不遵循 Hashable)。這篇文章主要是稍微簡單的介紹了一下 ObjectIdentifier 是什麼,ObjectIdentifier 的原理以及如何使用 ObjectIdentifier 來提高我們 App 的效能。
? Configuring the Main Thread Checker
@老峰:本文是作者關於 Main Thread Checker 系列的第一篇,詳細講解了 Main Thread Checker 配置項如 MTC_MAX_HIT_COUNT(Main Thread Checker 停止之前,從後臺執行緒呼叫給定方法的次數)等,另一篇著重講 Main Thread Checker 實現原理,感興趣的讀者可以進一步研究。
? 探索?WhatsApp應用名稱中的隱藏符號
@五子棋:本文是作者在一次偶然研究過程中發現一種特殊的字元,可以確保在複雜的從右至左的過程中保持名稱顯示的正確性。很簡短的一篇文章,但是卻很有趣,建議一讀。
程式碼
Thrio
@CrazyCoderShi:flutter_boost 已經是 Flutter 混合開發體系一個有著舉足輕重的框架了,但目前社群裡似乎除了 flutter_boost 並沒有其他可替代方案,最近哈囉出行團隊開源了自家的 Flutter 混合開發框架 Thrio,更加輕量,入侵性更小,也不失為一個不錯的選擇。搭配這篇一起食用更佳。
內推
老司機週報團隊聯合知識小集和 SwiftGG 翻譯組收錄了一份靠譜的內推職位。
如果你想找工作,點這裡:www.yuque.com/iosalliance…
如果你想招人,點這裡:www.yuque.com/iosalliance…
當然,也歡迎你關注我們每一期的週報,我們會在每期週報底部及時更新編輯內推崗位。
關注我們
我們開通了公眾號,每期釋出時公眾號(OldDriverWeekly)會推送訊息,歡迎關注。
同時也支援了 RSS 訂閱:github.com/SwiftOldDri… 。
說明
? 表示需翻牆,? 表示編輯推薦
預計閱讀時間:? 很快就能讀完(1 - 10 mins);? 中等 (10 - 20 mins);? 慢(20+ mins)