老司機 iOS 週報,只為你呈現有價值的資訊。
新聞
3 月 7 日這一夜,黑客耍了所有人
幣圈本週最佳!雖然只是幣安 Binance 交易所被黑,並不是 BTC 本身的缺陷,但是比較諷刺的是:幣圈和鏈圈都在一邊吹捧去中心化,一邊又通過中心化的交易所炒幣。真可以說是嘴上笑嘻嘻,心裡 MMP…
文章
Quick Guide To Property Animators
現在至少有三種方式來實現檢視動畫。從最早的 begin/commit,到 iOS 4 的 block API,以及從 iOS 10 開始的 property animators。如果你瞭解基於 block 的檢視動畫 API 但不熟悉更復雜的 property animators,這篇指南會為你介紹它們之間的異同。
? Designing iOS architecture: Motivation
非常特別的一篇文章,文章在談架構,但是文章裡並不介紹具體架構。非常簡潔的介紹了為什麼需要設計架構,以及一個架構的設計過程應該是怎麼樣。
稀土掘金翻譯計劃 TensorFlow Docs 中文版
TensorFlow Docs 是由掘金翻譯計劃實時維護的 TensorFlow 官方文件中文版,維護者為全球各大公司開發人員和各著名高校研究者及學生。現已完成 TensorFlow V1.4 官方中文文件,譯者團隊正在向 TensorFlow V1.6 官方中文文件更新,掘金翻譯計劃歡迎大家的加入。
iOS 效能優化的探索
文章整理了常見的 UI 效能優化的方法。但是每一點都沒有深入的展開略遺憾。
技術面試需要掌握的基礎知識整理
這個專案對技術面試常會涉及到的基礎知識進行了蒐集整理。與網上零散的文章資料相比,它更系統與全面,每部分都是作者根據自己所得所思細心整理。相信在這個招聘熱季大家都能從這裡得到幫助。
The power of sets in Swift
本文對 Swift 中 Set 的一些鮮為人知但非常強大的特性進行了舉例介紹,我們可以利用這些特性在某些情況下獲得效能更好或可讀性更高的程式碼。
程式碼
Repeat – Modern alternative to NSTimer in Swift
Swift 中的 Timer 需要提供 @objc 修飾的方法,這讓人並不愉快,更別提 Timer 本身的諸多問題, 如 強引用 target,依賴 Runloop,不支援閉包等。
你需要一個更為優雅的計時器,Repeat 基於 GCD 的 DispatchSource,實現一個 Swift 風格的輕量級計時器。
原理:DispatchSource 用於監聽系統底層事件的發生,DispatchSourceTimer 會建立 Timer 事件對應的 dispatch source,然後給這個 source 指定一個閉包,指定一個 Dispatch Queue。當 source 監聽到 Timer 事件時,就會將該閉包自動加到 queue 中執行。
Resumable Assert
寫程式碼的過程中或多或少都會遇到一些地方 assert
或者 fatalError
了,但我們卻無法在當下馬上修復它,這個時候可能我們只能先註釋掉這些防禦程式碼,重新編譯執行,恢復到一個能繼續當前任務的狀態。
但我們真的無能為力嗎?Google 團隊給我們帶來了這麼一個工具,就像它的名字 Resumable Assert —— 可被恢復的斷言,中斷在斷言的時候,我們可以在 debugger 裡恢復執行,不需要修改任何程式碼。並且如果你是使用 Swift 的話,可以藉助 Swift 的 Module 設計,直接在 module 內重寫掉標準庫裡的 assert
方法,無需改動一行程式碼就可以把專案裡的 assert
都變成可恢復的 ?。
書
Continuous Delivery for Mobile with Fastlane
你還在手動打包、上傳 App 嗎?是時候試試 Fastlane
了。本書將帶你瞭解 Fastlane
的方方面面:如證書管理、TestFlight 管理、如何與現有的 CI
系統結合。另外,Fastlane
的 官方文件 也是非常好的快速上手資源。
本期編輯
@沒故事的卓同學,@四娘,@mmoaay,@享耳先森,@EyreFree,@Damonwong,@折騰範兒_味精,@張嘉夫,@AidenRao,@Parsifal
說明
? 表示需翻牆,? 表示店長推薦