老司機 iOS 週報 #12 | 2018-03-26

老司機iOS週報發表於2018-03-26

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

老司機 iOS 週報 #12 | 2018-03-26

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

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

新聞

快應用標準今日釋出,開發者需要知道些什麼?

9 大安卓廠商聯手推出快應用標準。前有小程式,後來快應用,大前端的大潮之下,越來越多的新技術在衝擊著移動端開發。"輕型"應用其實也代表著一種使用者的訴求,限制大小,即裝即用,簡單有效。對這麼多層出不窮的大前端技術,作為客戶端原生開發的的朋友們有什麼自己的想法麼?來聽聽 Bang 對快應用的評價吧——『對快應用的看法 from Bang』。

揭祕蘋果 HomePod 廣告裡會動的公寓

不久前,蘋果專門為 HomePod 拍攝了一支視訊廣告《Welcome Home》,上線 2 天全球觀看次數突破 600 萬,社交媒體上好評如潮。這篇文章通過蘋果釋出的拍攝紀錄片,揭祕了該廣告特效是如何完成的,對於果粉來說看到這些花絮也會是很有趣的。

文章

? ? iOS 中的 JS

本文詳細的介紹了跨端開發中 JSCore 的使用。闡述了為什麼要關注跨端開發,JS 如何與本地 OC 程式碼互相呼叫,以及 JSPatch 如何結合 JS、OC Runtime 做到修改 iOS 執行程式碼。作者有大量 Weex 開發經驗,行文流暢,想要了解 JSCore 的同學請好好學習。

? ? 從 babel 講到 AST

作者從 babel 轉換的一個簡單場景出發,引出了程式碼轉換過程中核心的中間形式:AST(抽象語法樹),並且用 JS 實現了要生成 AST 所需要進行的詞法分析和語法分析過程。比較值得推薦的是閱讀本文並不需要編譯原理基礎,非常適合這一塊基礎不好的同學閱讀。再加上其 JS 寫得也比較通俗易懂,建議大家可以參考其邏輯用自己熟悉的語言實現一下,加深理解的同時也有很大的可能提起對編譯過程的興趣。

如有興趣,在實現 AST 的解析和生成後,可以考慮寫一個簡單的直譯器,來執行該 AST。

? ? 使用 ASDK 效能調優

無論是 AsyncDisplayKit 亦或是微部落格戶端使用的 CoreText 渲染 TableViewCell。共同的思想都是如何在非主執行緒裡解決 UI 渲染的問題。 閱讀文章的時候需要把握住兩個點:

  1. 如何在非同步執行緒繪製 UI。
  2. 非同步繪製 UI 結束之後選擇什麼時機重新整理 UI。

這篇文章可以讓你更細緻的瞭解 iOS 底層繪製的過程。 強烈推薦。

? Bestswifter 的 2017 年度總結

Bestswifter 的 2017 年度總結,回顧了作者近一年來的所學內容並且穿插了相應知識點的詳細總結博文,主要包括以下幾點:

  • 工作效率指令碼和工具;
  • iOS 自動化測試之 Appium;
  • 與網路相關的實踐技巧和底層原理;
  • Cocoapods 與 Xcode 工程配置;
  • 擴充 JS 方向的知識,探索自己的全棧化道路。

除此之外,作者還對自己工作方面的情況做了簡單概述,並且制定了接下來的學習方向,對我們而言有一定的借鑑意義。

? ? Five Options for iOS Continuous Delivery without Fastlane

使用 fastlane 作為 iOS 開發中的自動化工具已經是一個很主流的選擇。然而 fastlane 也有不少問題:大多數開發者對 Ruby 環境都不熟悉;fastlane 基於蘋果的 API 封裝,如果蘋果開發平臺修改介面 fastlane 的使用就會受到影響;配置 lane 的指令碼語言也需要不少時間;因為是 Ruby 寫的雖然開源也很難貢獻程式碼;fastlane 的 issue 維護也不太活躍,超時後的 issue 會自動關閉,會出現一個問題有好幾個 issue 的情況。

基於以上的出發點,作者對於擺脫 fastlane 採用其他工具進行自動化進行了探索。選擇有:蘋果原生開發者工具;Xcode server;雲端 CI 服務;Apple + BuddyBuild;基於 Swift 平臺的選擇。

? iOS layoutMargins 的坑:一個活久見的 bug

作者通過實際開發中的除錯慘案,介紹了 insetsLayoutMarginsFromSafeArea 這個大家不太熟悉的屬性的作用。因為作者沒有進行更深入的擴充,所以推薦大家看一下《iOS 成長之路 3 期·WWDC17 內參》中的《讓你的 UI 適配 iOS 11 吧》這篇文章,文章對包括 Safe Area 在內的 Layout Margin 有很詳細的介紹。

? A helper for working with temporary files in Swift

相信大家在 App 中經常需要操作臨時檔案,但檔案的維護是件麻煩事,Ole Begemann 對此進行了封裝。

? iOS 下如何一鍵除錯 Push

Peak 分享了他如何通過指令碼去定位在推送失敗時,判斷 Apple 伺服器有沒有傳送 Push 的實踐經驗。他不但分享了一個挺實用的小工具,也給我們分享了一個他在 Facebook 工作時學到的一個習慣 -- 儘可能的用工具去提供效率。

程式碼

Tiercel

純 Swift 的下載框架,文件清晰,程式碼整潔。支援多工併發、大檔案下載和斷點續傳等特點,滿足下載的大部分需求。

音視訊

? App Store Product Page

Apple 邀請了概念畫板、Grokker、TypeShift、War Dragons 和 codeSpark 學院等 App 的開發者,分享如何利用 App Store 產品介紹頁面上的元素,以便吸引更多使用者下載。包括 App 的名字和次標題、設計 App 圖示、使用 App Preview 視訊和截圖、編寫 App 描述和促銷文案以及利用全新的 promoting in-app purchases。

本期編輯

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

說明

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

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

相關文章