老司機 iOS 週報 #55 | 2019-02-18

老司機 iOS 週報,只為你呈現有價值的資訊。
你也可以為這個專案出一份力,如果發現有價值的資訊、文章、工具等可以到 Issues 裡提給我們,我們會盡快處理。記得寫上推薦的理由哦。有建議和意見也歡迎到 Issues 提出。
新聞
TLS 1.3 in iOS
在 iOS 12.2 中,iOS 系統預設開啟了對 TLS 1.3 的支援,使用 Network Framework 以及 NSURLSession 的開發者都可以使用 TLS 1.3 來建立更安全的網路連線了。
在這方面有興趣的童鞋不妨瞭解一下。
在 iOS 12.2 beta 上 PWA 的能力也得到了小部分更新,由PWA開啟外部網站會通過 SFSafariViewController 開啟,進入後臺後 PWA 當前的狀態會保持,PWA 應用可以被系統搜尋到等
Swift.org 二月初發文介紹了 Swift ABI Stability 當前狀態及後續計劃。Swift 5 在 macOS, iOS, watchOS, and tvOS 幾個平臺將實現 ABI Stability,預計很快就能釋出,Linux 及 Windows 平臺還需評估。文章還介紹了 Module Stability
及 Library Evolution
的後續計劃 。
ABI Stability 能帶給我們什麼:上述系統以後將自帶 Swift runtime and standard library
,而不需嵌入到 App 中,能大大減小 Swift App 的打包大小。
文章
:star2: :turtle: 瞭解和分析 iOS Crash Report
作為客戶端的開發者,與各式各樣的 Crash 打交道是家常便飯。關於 App Crash 的相關討論,社群也總是比較活躍。我們曾在 27 期和 34 期分別推薦了 深入理解 iOS Crash Log 和 手把手教你檢視和分析 iOS 的 crash 崩潰異常 兩篇好文章。而這次則是來自蘋果官方文件的譯文,官方則意味著權威,以及更多的細節。內容雖然還是圍繞著 “符號化 - 看懂 - 解析” 三個部分進行,但非常系統和詳細。作者也對這篇譯文進行多次潤色修改,並在文中多處添加了自己的註解,會對我們閱讀這類偏底層文章有所助益。
文中會涉及許多底層概念,讀起來難免不如一些應用類文章順暢,但小編還是建議大家無論如何都堅持至少過一遍,並再安排時間分塊細讀,會大有裨益。
:racehorse:淺談團隊管理最佳實踐
作者從以下幾點談了一下團隊管理的實踐:
- 每個人都需要關懷:領導者應確認團隊中每個成員的職業發展規劃,並適時地給予“人文上的關懷”
- 公平公正公開的價值評判標準:一個成員的價值增值包含兩個層面:隨著熟練度的提升所帶來的價值增值和解決特殊領域問題的經驗價值
- 團隊沉澱:可以通過文件和流程標準化的方式有效降低做重複性工作的成員的替備成本
- 具象化團隊這臺機器的樣貌:領導者定義團隊的責任與目標、架構設計、合理組成、團隊的演進等,方便成員參考輔助自己的實踐
:star2: :dog2: iOS 原生級別後臺下載詳解
本文記錄了作者實現支援原生後臺下載 Tiercel 庫的整個歷程,並詳細的列出後臺下載的所有特性和注意事項,並附上了具體實現。讓讀者能夠更深刻的瞭解到後臺下載。目前 Tiercel 2 已經發布,完美地支援後臺下載,還加入了檔案校驗等功能,對後臺下載有興趣的朋友可以藉此機會深入瞭解下。
Xcode 8 提供了 Xcode Source Editor Extension方式來開發 Xcode 外掛。本文以 XcodeExtension 為例,介紹了該外掛的使用方法與製作思路。
XcodeExtension 主要有以下功能:
- ConvertFromCase 把選擇的下劃線內容變為駝峰
- DeleteEmptyLines 刪除選中的空行
- SortLines 排列選中的行
- JsonToModel 把Json資料轉成Swift模型,會把下劃線命名變為駝峰
在往期週報中我們也有過相關推薦如: How to convert your Xcode plugins to Xcode extensions 以及 Code Friend 開源工具等,感興趣的讀者可以拓展閱讀。
本文總結了通過自定義 OCLint 的掃描規則,對 MVVM 開發模式的 ViewModel 執行靜態檢查,並把規則整合到 Xcode 上所踩的一些坑。由於官方 OCLint 很久沒有維護了,所以本文作者就基於 LLVM 7 進行了修改,對這塊有需要或感興趣的同學可以直接安裝試用。
:dog2:如何看待軟體開發?
當年移動網際網路大潮來的時候,軟體開發再次成為炙手可熱的崗位,高工資吸引了很多人投身其中。當大潮退去,網際網路也迎來寒冬的時候,對於已經在其中的各位,又或者未來想要當開發者的同學們,軟體開發到底是什麼樣的,究竟需要掌握多少知識,職業規劃應該如何做,會成為大家再次思考的問題。本文作者以自己多年的工作經驗,總結了如何看待軟體開發這一問題,值得如果尚有迷茫的同學看一看。
在 JS 領域,得益於 JS 弱型別語言的特性,單向資料流被廣泛的使用。單向資料流可以避免許多因為執行緒等造成的各種問題。本文介紹了 OC 下的一個單向資料流的方案 Reflow 庫。Reflow 庫架構設計實現了單向資料流的幾個特徵:
- model物件不可變
- 整個app的資料存於store層
- 更新和通知也收攏於store層
Reflow 是開源的,有興趣的同學可以一看。
本文是 InfoQ 總編輯徐川的一篇文章,介紹了移動開發領域的外掛化和熱更新兩個方向的發展史,覆蓋了 iOS 和 Android 。徐老師文章結尾的一句話很有意思,『外掛化熱潮註定成為技術發展的一段小插曲,也許再過幾年,不會有人記得了。那段激情飛揚的歲月,終將成為 The Wasted Times。』
最近跟 Bang 哥吃飯,也聊起了熱修復的一些事情,實際上在大廠一直都還有發展各種移動開發領域的黑科技。包括最近大熱的 Flutter 技術,在 Google 的 RoadMap 上面,也明確表示了 動態更新 會是一個重點考慮的方向。總的來說,2019年,移動開發的外掛化和熱更新方向,應該會在基於各種虛擬機器技術的基礎上,繼續往前發展,滿足業務需求。
工具
本文中總結了 iOS 開發者應該瞭解的工具合集。其涉獵了多個方面的工具推薦,例如 DEBUG 除錯、專案分析、持續整合、逆向工程等。在這份列表當中,能夠找到耳熟能詳的專案,也有大家平時沒有涉及到的方面,不妨來看看那些你沒有接觸過的開發工具。
DoraemonKit
滴滴開源的一款功能齊全的客戶端研發助手,同時支援 iOS 和 Android 兩端,類似的前輩有 FLEX、Dotzu,但僅限於 iOS 平臺。
- 內建了很多常用的工具,包括一些輔助開發工具、測試效率工具、視覺輔助工具等。
- 接入方便,便於擴充套件,讓你的業務測試程式碼在這裡快速接入,統一管理,統一收口;
程式碼
Path.swift
一個檔案系統路徑庫,專注於開發人員體驗和強大的最終結果。保證了安全性和正確性的前提下提供了非常簡潔的 API ,為管理檔案路徑而頭疼的開發朋友們可以嘗試使用這個開源庫哦!
Facebook 開源了其影象處理庫 Spectrum ,核心使用 C++ 編寫,並提供了 Objctive-C 及 Java 的簡單封裝,簡化移動端開發。統一的核心使得在 iOS 和 Android 上的影象輸出更加統一。
SegmentedControl + PaggingView
組合實現的分類切換檢視是資訊、電商類應用常用的基本元件。具體實現起來,動效細節和特殊互動場景要考慮的問題並不少。 JXSegmentedView 勝在實現了大量主流應用分類切換元件的互動效果,如果你碰到對應需求,相信這會是個不錯的參考。
如果你不幸還停留在 Objc,也可以看看同一作者實現的 Objc 版本 JXCategoryView (已有 2k+ stars)。
由 暴走的鑫鑫 自薦
書
這是一本開源的電子書,主要介紹了最近幾十年來一些經典開源專案(包括 Git、LLVM、nginx、PyPy 等知名專案)的架構思想和設計哲學,文章作者都是業界大牛甚至是專案作者本人,比如 LLVM 之父 Chris Lattner。相比自己去閱讀原始碼百思不得其解,原作者自己分享的思考和感受就像指明燈一樣,給我們打開了更大的世界,站在巨人的肩膀上才能看得更高更遠。
內推
-
北京-百度網盤 持續招 iOS 開發 :社招、應屆、實習均可。專案在技術上很有挑戰性,團隊技術氛圍極好。誠心希望各路大神前來切磋,也歡迎計算機基礎好的小白來共同學習。簡歷發郵箱[email protected],暫不考慮的也歡迎微博私信@小非86 聊聊~
-
北京-螞蟻金服 招iOS/安卓/前端開發 :負責支付寶會員及帳號業務線,地點北京國貿,金臺夕照地鐵站出口 100 米。有興趣的同學歡迎將簡歷傳送到:[email protected] / [email protected] (同一個郵箱)或者微博私信@折騰範兒_味精 瞭解情況。
-
上海即刻:如果你認識聰明勤奮、膽大心細、有追求的工程師,那就來加入我們吧!任何推薦或簡歷可直接發給 Jason(即刻 iOS leader):[email protected],或微博@JasonYuh。
-
杭州奇志科技招聘 iOS、前端 :奇志科技自 2016 年起通過行業無人機協同工作流 Mesh 進入物聯網與人工智慧領域, 併成功為房地產、建築、測繪、電力巡檢等行業提供無人機解決方案。感興趣可以微博上私信@沒故事的卓同學 瞭解。
-
深圳頭條研發中心誠招各路 iOS 好手一起做取悅自己的專案 :如想了解更多深圳頭條的資訊,可以加小T微信:tomtan,切磋技術和聊情懷都可以喔~~~~
-
北京位元組跳動 iOS 團隊持續招人中 :簡歷可以傳送到郵箱[email protected],或者新增我(@AidenRao)的微信 jingmu1994 瞭解更多公司及崗位資訊。
-
北京百度教育事業部招 iOS 開發 :百度教育事業部,地點:北京西二旗。部門下面有百度閱讀,百度文庫,百度愛聽等 App 產品。團隊技術氛圍濃厚,有興趣的同學歡迎將簡歷傳送到我的郵箱:[email protected]。
-
深圳 - 格隆匯 iOS / Android / 前端 :公司方向是投研資訊,目前正在穩步擴張中,各個級別的工程師都有需求。任何推薦或者簡歷都可以傳送到我郵箱:[email protected],同時也歡迎大傢俬信我瞭解更多資訊。
關注我們
我們開通了公眾號,每期釋出時公眾號(OldDriverWeekly)會推送訊息,歡迎關注。

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