進行了四期的週報編輯後,目前參與編輯穩定在 7 個人。看到挺多人表示希望我們能夠堅持下去,現在我們每人平均花幾個小時就足夠維護週報的內容,繼續做下去應該問題不大。
歡迎來自百度的@折騰範兒_味精加入我們的編輯團隊。
感謝來自餓了麼的@mmoaay為老司機畫的 logo,真是 666。
新聞
庫克:將允許 iPhone 6 / 6s / 7 手動解除降速
持續發酵的蘋果電池降頻門,蘋果再退一步。庫克接受採訪時表示會在系統中增加一項設定,使用者可以禁用蘋果為了保護電池而設的降頻策略。最新的 11.2.5 測試版中已經可以檢視電池狀況。
微信打賞功能將在 iOS 上回歸
在「微信公開課 Pro」的主題演講中,張小龍表示打賞功能將回歸,並將修改打賞機制,打賞金額將直接支付給內容創作者。
Apple 更新 App Store 網頁預覽介面
Apple 在 iOS 11 中對 App Store 進行重新設計,現在終於對網頁版動刀,跟上 iOS 上的簡潔和卡片式風格。
蘋果預計下週修正文字訊息漏洞「ChaiOS」
跟之前的 iMessage 漏洞類似,收到一個特殊連結的簡訊之後,裝置就會重啟,主要是因為 iMessage 會自動載入網頁資訊生成預覽介面,在這一個網頁裡嵌入幾十萬個不必要的字元就可以系統崩潰,據悉這個 bug 已經在 iOS 11.2.5 beta 6 裡修復了。
文章
蜂鳥商家版 iOS 元件化 / 模組化實踐總結
文章詳實介紹了餓了麼物流移動 iOS 開發組的 Swift / OC 混編專案「蜂鳥商家版」進行元件化 / 模組化改造的實踐歷程,有類似需要的同學可以參考一下。
iPhone X home button
iPhone X 用來替換物理 home 鍵的虛擬 home indicator,可能展示在任何一個 view 上,也展示在鎖屏介面上,home indicator 背景顏色會根據背後展示的 view 而改變。這是怎麼實現的呢?Sash Zats 深入底層來揭示祕密。
從 Aspects 原始碼中我學到了什麼
作者分享了自己閱讀 Aspects 程式碼之後的收穫,另外部落格裡還有幾篇 YYKit 的原始碼閱讀分享,質量都很高。
iOS 如何進行網路測速
@Joy_xx 大佬的文章,主要分享了兩種常見的網路測速方案。文章內容簡短,只談思路,不涉及技術細節。想做網路測速又沒有思路的童鞋可以看看。
Useful Optional Extensions
文章分享了各種 Optional
的實用擴充套件。通過這些擴充套件,可以用更少的程式碼來實現判斷非空、設定預設值、設定預設行為、處理異常、定義多個可選值之間的關係、判斷執行以及條件過濾等功能。文章末尾還給了一個例子,通過程式碼對比的方式,鼓勵大家使用擴充套件 Optional
的方式來實現業務邏輯。
WebAssembly 的那些事
文章介紹了 WebAssembly 這門在瀏覽器裡跑編譯後的位元組碼的神奇技術,可以把 C++ / Rust 編譯成位元組碼下發給瀏覽器,進行高效的位元組碼執行,而非傳統 JS 解釋執行。文章還手把手教你親自寫一個 C,先編譯成 asm.js,在生成 wasm 檔案執行,也教你把Rust,編譯成 wasm 執行。
objc - 編譯 Runtime 原始碼 objc4-680 objc - 編譯 Runtime 原始碼 objc4-706
從蘋果開源網站上,我們可以找到很多有意思的開源專案。objc4 是其中一個,也即我們通常說的 Runtime 原始碼,我們遇到的
libobjc.A.dylib
就是用它編譯出來的。
這兩篇文章就是介紹如何將從蘋果網站上下載的 Runtime 原始碼,建立工程進行編譯,執行,除錯,從而更深刻的學習和理解 Runtime 原始碼的,並且文章中留有作者的 GitHub 可以直接下載可編譯版的 2 套原始碼。
WKWebView 強大的新特性
越來越多的專案逐漸開始使用 WKWebView 進行網頁展示,是否苦惱於 WKWebView 對於操作 Cookie 的天坑以及不支援 NSURLProtocol 的弊端?這篇文章介紹了 iOS11 的新 API 為你解決了這些問題,不僅包括操作 Cookie 的 WKHTTPCookieStore
,處理自定義協議的 WKURLSchemeHandler
,還有用於廣告遮蔽的新 API WKContentRuleList
。
Building for the Blockchain(面向區塊鏈開發)
在區塊鏈上,你不需要部署任何中心化的伺服器,這就意味著單點失敗的風險為零。如果你的整個技術棧都是去中心化的,那麼就不需要引入“可信”的第三方,而沒有第三方則意味著可以 100% 對抗審查。區塊鏈技術帶來了資料開放的新機會,基於區塊鏈的去中心化資料庫未來可期。
YC 是著名的科技企業孵化機構。釋出在 YC 官博上的這篇文章介紹了區塊鏈技術對開發者的意義。
給 Bool 擴充套件一個 Toggle 方法
objc.io 介紹的小技巧,給 Bool
擴充套件一個 toggle
方法之後就可以避免 myVar.prop1.prop2.enabled = !myVar.prop1.prop2.enabled
這種醜陋的寫法了,可以直接寫為 myVar.prop1.prop2.enabled.toggle()
。
並且已經起草提案給 Swift Evolution 了,這個方法有可能在以後會加入標準庫。
今日頭條演算法原理(全)
今日頭條公開了他們推薦演算法的原理。介紹瞭如何做到內容、使用者、環境(工作場合、通勤、旅遊等不同的場景)的匹配預估。
工具
CocoaPods 釋出 1.4.0
CocoaPods 釋出了 1.4.0,帶來了很多強大的功能。如下:
- Test specs 支援配置 App host;
- 指令碼配置 支援 Podfile 和 Podspec 配置指令碼,CocoaPods 會根據你在Podfile 和 Podspec 的關聯指令碼描述,自動新增相關指令碼到不同的Target;
- 支援靜態庫 使用
use_frameworks!
同時支援 static framework 和 dynamic framework。只要開源庫的作者在 podspec 檔案中新增s.static_framework = true
,CocoaPods 就會把這個庫配置成static framework。同時支援 Swift 和 Objective-C; - Podspec 檔案可以配置 Swift 的版本號;
- 過渡到https 當你釋出一個 Pod 不支援 https 的時候,會有一個警告。在未來的某個版本,將不再支援不支援 https 的 Pod。
Design+Code
Design+Code 是一個教你從零開始設計、開發一款 App 直到在 App Store 上架的 iOS App,不需要任何程式設計基礎。其中包括 iOS 11 的設計理論例如顏色、動畫以及為 iPhone X 進行適配等,少見的設計和開發兼具的互動式教學工具,值得一試。
cocoapods-packager
CocoaPods 官方工具,可以根據現有的 podspec 生成 framework 或 static library,給我們的 Pods 庫釋出工作帶來了更多選擇和想象空間。
程式碼
SwiftyUserDefaults
利用 NSUserDefaults
儲存一些資料在開發中是常用的事。但是每次存取都依賴於字串型別的 key、型別也不校驗,在實際開發中也帶來了不小困擾。這個庫利用 Swift 的列舉和泛型優化了 NSUserDefaults
的使用體驗,思路值得借鑑。
Turi Create
「Turi Create」是 Apple 的機器學習框架,目前已經開源在 Github 上。它簡化了定製機器學習模型的開發。就算你不是一個機器學習專家,也可以在你的應用中新增建議、物件檢測、影像分類、影像相似性或活動分類。讓開發者更容易的構建機器學習模型。
書
objc.io 新書「App Architecture」
本書預計四月完成,但提供「早鳥」版購買,每週可以收到新內容。
音視訊
Swift Unwrapped #42 Conditional Conformance
這期很簡短,只是簡單地聊了一下,之前 Ole 大神發過一篇文章講了如何檢視 Swift 原始碼,裡面講到了一個程式碼生成工具 gyb,主要是為了解決 Swift 泛型能力不足的問題,現在實現了 Conditional Conformance 之後就可以重構掉之前很大一部分 gyb 程式碼。並且單單只是重構掉 Slice 型別,就已經讓 Swift 標準庫的二進位制檔案縮小了 5% ?,真是越來越期待 Swift 4.1 的釋出了!!!
另外 Swift 的部落格還發布了一篇文章專門講解這個功能,有興趣的人可以去看看。
內推
淘寶 - Weex 核心研發技術專家 - 基礎平臺部
Weex 的價值在阿里集團已經得到高度認可。weex 下一步計劃是利用 C++ 重寫核心。
簡歷可傳送至 zifan.zx@alibaba-inc.com。
阿里巴巴 - 國際技術事業部 - ICBU 技術部 - iOS 高階開發工程
國際事業部在杭州濱江,發展迅速非常缺人。
感興趣的可以簡歷傳送到曾憲華的郵箱:xianhua.zxh@alibaba-inc.com。
CSDN 亟需前端開發和後端好手加盟,一起打造程式設計師新社群
@蔣濤: 老社群的技術債負擔不輕,亟需技術開發前端和後端好手加盟 CSDN,一起打造程式設計師新社群。
本期編輯
@沒故事的卓同學,@四娘,@mmoaay,@享耳先森,@EyreFree,@Damonwong,@折騰範兒_味精
說明
? 表示需翻牆