老司機 iOS 週報 #15 | 2018-04-16

老司機iOS週報發表於2018-04-16

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

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

文章

? ? 深入淺出 GCD 系列文章

這是 cocoa-chen 閱讀 GCD 原始碼後分享的系列文章。該系列文章以常用的 5 個 GCD API 為切入點,從『使用場景』到『原理深究』再到『總結』循序漸進十分細緻地闡述了 GCD 是怎麼實現這些 API 來管理維護執行緒池的。系列文章一共有 6 篇,大家可以各取所需:

? 深入理解 Swift 派發機制(英文原文)

2016 年的一篇文章,主要內容是講關於 Swift 各種型別的方法派發機制,以及 NSObject 與 Swift 原生型別的差異等等,讀完這篇文章我才第一次對於 Swift 的派發機制有了比較清晰全面的認識,雖然有一小部分內容已經過時了,但還是強烈推薦大家看一下。

? iOS App 連續閃退時如何上報 crash 日誌

如果是我們自己開發一套 crash 日誌收集系統的話,可能就會發現在 App 啟動階段就連續閃退的場景下往往無法正確上報崩潰日誌。Peak 從『如何檢測連續閃退』和『如何在閃退後繼續上傳日誌』兩方面分析和解決了這個痛點。

另外,微信讀書團隊以前也分享過類似的方案——iOS 啟動連續閃退保護方案,並且該方案額外整合了自修復系統。

? How To Keep Learning After 50 and Other Ways to Hack Your Brain at any Age

這篇文章通過介紹了“神經可塑性”(Neuroplastcity)理論,論證了活到老、學到老是有科學依據的。不僅如此,該文還提出年齡逐漸變大之後如何“hack”自己的大腦來讓自己更有效的學習的方法。有趣的是,文章為了討論這個話題,還邀請了 25 名年長的藝術家、教練和程式設計師來參與調查,他們中幾乎所有都在持續的學習,尤其是其中還有從 Fortran 一路寫到 Swift 的程式設計師,可以說是相當資深了。

作為焦慮的準中年程式設計師,這篇文章對我的觸動可謂是很大的。除了內容本身值得思考之外,文風讀起來就像《老人與海》那樣充滿力量感。值得收藏!

? Behind-the scenes improvements in Swift 4.1

掌握程式語言的設計與實現一直以來都處於技術圈鄙視鏈的頂端,相信絕大多數程式設計師都曾經躍躍欲試。如果你是對 Swift 語言的實現原理感興趣的同學,一定不要錯過這篇文章。

文章標題看上去好像也就是列舉一下 Swift4.1 一些改進,但實際上是針對 Swift 語言設計上面臨的諸多問題和解決方案進行了深入討論,包括但不限於為什麼 protocol 中預設實現的方法不能返回 self,OC 類橋接到 Swift 中都發生了什麼,以及泛型引數支援中父子關係如何實現等等。看完後對於”為什麼 4.1 的編譯速度好像變快了?”以及”Swift 的 ABI 什麼時候才能穩定?”這兩個經典問題,你應該會有自己的答案。

? 工程師如何在工作中提升自己?

美團點評技術團隊劉丁對工程師發展的一些思考和總結,寫的很全面。文章第一部分闡述了一些學習的原則;二部分分析了作者在工作中碰到和看到的一些典型困惑;第三部分剖析架構師的能力模型,讓大家對目標所需能力有一個比較清晰的認知。

? 如何快速成長為技術大牛

技術人員天天寫業務程式碼還加班,如何才能成為技術大牛?,文章列出了一些典型的誤區及正確做法:Do moreDo betterDo exercise

? Swift Tip: Local Computed Variables

本文介紹了一種通過在函式體內部宣告計算屬性從而實現區域性程式碼複用的編碼方法,不過也僅僅是程式碼複用,效能方面木有任何提升,類似於一個區域性函式,感興趣的同學可以瞭解一下。

? 讀 SnapKit 和 Masonry 自動佈局框架原始碼

介紹了主流 AutoLayout 佈局框架 SnapKit 和 Masonry 原始碼結構。SnapKit 的設計思路很好理解,也有值得學習的設計經驗。如果自己先嚐試讀讀原始碼再看這篇文章會比較好理解。

? 11 Tips for Working on the iPad

MacStories 整理了 11 條指南和小竅門,幫你提高 iPad 在 iOS 11 下的生產力。從外接鍵盤推薦和快捷鍵到手勢和 Siri,全都是 Federico Viticci 日常使用 iPad Pro 的小技巧。

? iOS 中製作原型動畫的一些方式

介紹了兩種動畫原型的製作方式。利用 Xcode 的 playground 和 PaintCode。在我看來這兩種方式其實都有缺點。playground 編譯速度太慢並且調參還是用程式碼。效果基本靠蒙。PaintCode 適用範圍太侷限。基本都是繪製路徑。現在最強的的原型工具應該是 Principle。

? fastlane 釋出 CI aplha 版本

alpha 版本釋出了。其實關於公司的自動化也是老生常談的問題了。 體驗比較好的自動化配置在我看來是,Slack + Xcode server + Fastlane + Phabricator + Arcanist + Trello(jira)。有興趣的同學可以研究一下。

工具

IBM Watson Services for Core ML

Watson Services 是 IBM 的人工智慧實驗室提供對外的 AI 服務,包含了聊天對話/視覺識別/語音處理/語言翻譯等多方面能力,而 IBM Watson Services for Core ML 是 IBM 與蘋果合作的,將 Watson Services 的 AI 能力與蘋果的 CoreML 相結合移動端 AI 服務,以 SDK 的形式接入移動端,方便開發者快速構建具有 AI 能力的 App。

蘋果產品購買時機建議

蘋果更新其產品的時候往往是該產品的最佳購買時機,如果錯過了,那麼可以在這個網站上找到購買建議,網站會根據該產品距離上次更新的時長,以及歷史以來的平均更新週期給出指導,並收集了產品相關的最新傳聞給與你作為參考。

內推

奇志資訊科技: 杭州/廣州 iOS 工程師

我(@沒故事的卓同學)現在的公司,Swift 開發,應用支援從 iOS 10 開始,杭州和廣州都有研發團隊,無人機應用方向。iOS、Android、前端、UI 都招,感興趣的朋友歡迎簡歷投到 hr@kiwiinc.net

上海享物說網路科技有限公司:上海 iOS 工程師

我 (@EyreFree) 現在所在的公司,位於上海宜山路地鐵站附近,主營內容為二手互送社群,Swift 開發,應用支援從 iOS 9 開始。除 iOS 職位以外,還有 Web 前端 / Android 工程師等崗位空缺,求三年左右經驗的大佬,三餐供應,住宿補貼。感興趣的朋友歡迎簡歷投到 eyrefree@eyrefree.org

專欄

onevcat 的小專欄:開發筆記簿

記錄了喵神日常開發時遇到的問題和解決方案,同時也會收藏一些學習時記錄的筆記,隨想等。定價 ¥99,因為至少會有一兩年的長期更新,所以這個價格是非常良心的。而且目前已經更新了 9 篇,涉及的範圍也比較廣,值得訂閱!

福利

週報讀者專屬 Reveal 50 元優惠券

我們和 Price Tag 的合作,給讀者送一個小福利,點選上面連結可以領取 Reveal 14 優惠券。領取後到這裡可以使用:購買連結

關注我們

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

老司機 iOS 週報 #15 | 2018-04-16

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

本期編輯

@沒故事的卓同學@四娘@mmoaay@享耳先森@EyreFree@Damonwong@折騰範兒_味精@張嘉夫@AidenRao@Parsifal@葉孤城@aaaron7

說明

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

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

相關文章