老司機 iOS 週報,只為你呈現有價值的資訊。
你也可以為這個專案出一份力,如果發現有價值的資訊、文章、工具等可以到 Issues 裡提給我們,我們會盡快處理。記得寫上推薦的理由哦。有建議和意見也歡迎到 Issues 提出。
福利
? 移動開發唱衰,iOS 開發者如何涅槃重生?
戴銘,絕對是 iOS 屆的資深老司機,GMTC 全球大前端技術大會的專題出品人及講師之一,前滴滴出行技術專家,在元件化方案落地、工程動態化、大前端建設、應用開發階段效率的提升、上線後各種難點問題的解決等方面的經驗非常豐富。極客時間的品牌我一向比較認可,專欄品質很有保障,《iOS 開發高手課》也是戴銘老師對移動開發這麼些年沉澱下來的技術,詳細而系統的輸出。我看了目錄,主要分為基礎、應用開發、原理、前端與原生共舞的 4 個模組,你將獲得:
1、資深 iOS 開發專家為你構建完整知識脈絡 2、領略專家級大型開發專案,增強面試競爭力 3、深入 iOS 核心技術與原理,從源頭上掌控新技術 4、精美手繪圖解知識點幫助你輕鬆學習
週報編輯均已購買,來不及了快上車!!原價 ¥99,上新優惠 ¥68,趕快掃碼直接訂閱。通過以下連結購買的讀者微信新增 AwayZ_T 或 Damonwong2,我們會返現 10元小紅包,並邀請你進入我們老司機週報的讀者群,一起學習戴銘老師的 iOS 進階教程~
另外,我們在微博上發起了一個福利活動,贈送老司機定製 Logo T 恤衫和「iOS 開發高手課」,歡迎大家點我參與~
新聞
? 剛剛,阿里宣佈開源 Flutter 應用框架 Fish Redux!
閒魚團隊是國內最早開始大規模使用 Flutter 的大公司團隊,也是國內現在 Flutter 風潮的引領者。
在上週,閒魚團隊剛剛開源了名為 Fish Redux 的基於 Redux 資料管理的組裝式 Flutter 應用框架,旨在解決大型複雜應用中的頁面狀態管理以及 UI 元件的複用等難點。
對於想要實踐 Flutter 於大型應用的團隊及開發者們來說,值得學習參考。
文章
? ? 庖丁解牛!深入剖析 React Native 下一代架構重構
去年六月,Facebook 宣佈要重構 React Native。時至今日,開發團隊取得的一些進展已經非常值得我們期待和持續關注了。本文通過分析原始碼仔細介紹了 RN 的重構設計思路和後續業務開發適配注意點,解釋了新技術方案在解決效能問題上的優勢,同時描述了官方對以後元件開發維護的一些規劃,對保持社群的活躍性、提升框架整合使用體驗和加快元件迭代速度等都有很大的幫助。
? 沒有 AST, IDE 中的錯誤提示、自動補全、重構、語法檢查......都玩不轉了
當下的軟體開發,實際上並不需要我們瞭解許多編譯原理相關的知識。但編譯原理作為一門計算機經久不衰的基礎課程,自然有它存在的價值。其中的 parser 部分就值得好好看一看,這會在我們遇到相關的需求時候,如排版佈局,想自己搞一套 DSL 等都會很有幫助。本文講了 AST (抽象語法樹)是如何工作的,雖然是以 JavaScript 的程式碼舉例,但原理其實是通用的。
? How to integrate image recognition in iOS apps
本文介紹瞭如何在 iOS 應用程式中整合影像識別,文章作者介紹如何使用 Microsoft Custom Vision 構建 CoreML 模型,以便能夠識別照片中的物件以及如何在 iOS 應用程式中使用它。您需要對 iOS 開發和 Swift 有基本的瞭解才能閱讀這篇文章。
? The Xcode Build System
作者從 Xcode 的編譯系統元件( 外掛,平臺元件,工具鏈 ),工程檔案( pbxproj 檔案,檔案引用 ) 編譯環境( 編譯設定,Target,xccofig 檔案 ),編譯輸出( 輸出路徑,輸出檔案 )等內容比較全面地介紹了 Xcode 的編譯系統。讀者閱讀後可以對 Xcode 的編譯系統有更加全面的認識。
? Swift Code Formatters
最近幾天,Swift 社群一直在討論 Tony Allevato 和 Dave Abrahams 關於 Swift 編碼風格指南和格式化工具 的提案。
Mattt 專門在 NSHipster 撰文對社群現有程式碼格式化工具進行比較,包含 SwiftFormat、SwiftLint、Prettier with Swift Plugin 及 swift-format (proposed),分別從格式化結果及效率兩個角度進行對比。
? 從原始碼解析 Swift 弱引用
弱引用的深層實現機制在 Objective-C 中,就讓很多同學覺得雲裡霧裡,那在 Swift 中又如何呢?和 Objective-C 中的實現又有何異同呢?作者通過研讀原始碼,給我們深入剖析了 Swift 弱引用機制的實現方式,並比較了和 Objective-C 中的異同,非常值得我們借鑑學習。相關閱讀:Friday Q&A 2017-09-22: Swift 4 Weak References
? 一步一步教你實現 iOS 音訊頻譜動畫
當我們在聽音樂的時候,總能看到音訊頻譜隨著優美的音樂而跳動,那麼有沒想過這樣的動畫如何實現?
本文主要介紹了脈衝編碼調製(PCM)基本音訊處理概念;AVAudioEngine 音訊播放和 AVAudioPCMBuffer 頻譜資料的獲取、計算、處理、音訊動畫繪製;頻譜動畫優化:鋸齒消除、閃動優化等。
作者通過一步步探索最終實現完美的音訊頻譜動畫,感興趣的同學點選這裡閱讀原始碼,相信一定會有所收穫。
? 已開源|碼上用它開始 Flutter 混合開發——FlutterBoost
鹹魚團隊在國內 Flutter 的探索上一直以來都是走在業界前列。近期,鹹魚技術團隊開源了 Flutter 的混合開發框架 FlutterBoost。我們知道,在現有的工程中直接換成 Flutter 開發具有很高的成本以及風險,畢竟對於一些稍大些的工程,有些程式碼的業務邏輯已經很複雜了。所以,鹹魚團隊基於對現狀的考慮,採用 Native -> Flutter 漸進式的遷移方式,並將框架開源,對於想要在舊有工程上採用 Flutter 的同學可以看一下。
? ? How to build a simple tracker blocker for iOS
跨網站追蹤是一種廣告商用於蒐集使用者資訊的方式,Apple 作為一家注重使用者隱私的公司,在 iOS 裡內建了 Content Blocker 等功能幫助我們不被追蹤。
這篇文章就教我們如何使用 Content Blocker 和第三方黑名單來搭建一個反追蹤的外掛,並且還提供了相關的網站以便我們進行測試。
? Task-based concurrency in Swift
對一組有相互依賴的並行任務,OperationQueue,ReSwift,Future & Promise 都是常用的備選方案,但這些方案相對較重("heavy-handed"),作者基於 DispatchGroup 封裝了一套輕量、簡潔的 "Task-based" 的解決方案,推薦閱讀。
工具
Localization in Swift like a Pro
你是否仍在用幾年前的方式進行本地化?你知道有更好的方法嗎?本地化一直令人痛苦,但閱讀這篇文章後,你會發現它並不是那麼糟糕。本地化的同步更新 Xcode 並不支援,但你可以使用 BartyCrouch 和 SwiftGen 這些工具來解救你。
XCSnippets
合理的使用程式碼片段可以有效提高你的 Coding 效率。XCSnippets 工具可以讓你使用命令列方便的將 .codesnippet 從 Git 倉庫安裝到 Xcode。你還可以使用作者開源的程式碼片段倉庫 XCUISnippets 或編寫並開源自己的程式碼片段。
程式碼
? MVVM-TemplateProject
用 Swift 實現 MVVM 的 Demo 專案,可以同時配合作者關於 MVVM 的 3 篇文章學習,適合新手入門。
- How to implement MVVM pattern in Swift from scratch
- Unit Testing your MVVM architecture in Swift
- How to integrate RxSwift in your MVVM architecture
Nantes
著名的 UILabel 替代庫 TTTAttributedLabel 的 Swift 復刻版,支援 UILabel 的及 TTTAttributedLabel 所增添的新特性,支援 iOS 8.0+。
音視訊
ggtalk | 如何(連續兩次)獲得 WWDC Scholarship
新的一期 ggtalk 邀請到了 @ApolloZhu 來聊聊 WWDC Scholarship,WWDC Scholarship 是蘋果的一個類似獎學金的獎項,申請的學生靠提交一個極具創意的 playground 的作品來參與評選,如果獲獎則可以獲得免費參加 WWDC 的機會,當然餐食和酒店也是包含了的。Apollo 目前還是高中生,但已經連續獲得兩次 WWDC Scholarship,這次分享裡他談了申請的一些技巧以及整個過程中有趣的體驗。對 WWDC 感興趣的童鞋不容錯過。
內推
老司機週報團隊聯合知識小集和 SwiftGG 翻譯組收錄了一份靠譜的內推職位。
如果你想找工作,點這裡:https://www.yuque.com/iosalliance/article/bhutav
如果你想招人,點這裡:https://www.yuque.com/iosalliance/article/ycyhf3
當然,也歡迎你關注我們每一期的週報,我們會在每期週報底部及時更新編輯內推崗位。
關注我們
我們開通了公眾號,每期釋出時公眾號(OldDriverWeekly)會推送訊息,歡迎關注。
同時也支援了 RSS 訂閱:https://github.com/SwiftOldDriver/iOS-Weekly/releases.atom 。
本期編輯
@四娘,@享耳先森,@Damonwong,@折騰範兒_味精,@張嘉夫,@Parsifal,@aaaron7,@kyo,@tom510230,@anotheren,@水水,@looping,@老老老老老老老驢,@小非86,@邦ben,@紅紙,@含笑飲砒霜,@JimQ,@老峰,@zvving,@J_Knight_
說明
? 表示需翻牆,? 表示編輯推薦
預計閱讀時間:? 很快就能讀完(1 - 10 mins);? 中等 (10 - 20 mins);? 慢(20+ mins)