老司機 iOS 週報 #117 | 2020-06-15

老司機 iOS 週報,只爲你呈現有價值的信息。ios

你也能夠爲這個項目出一份力,若是發現有價值的信息、文章、工具等能夠到 Issuesgit

新聞

🌟 蘋果公佈史上最大規模的 WWDC20 陣容

@享耳先森:WWDC 已經進入第 31 個年頭,WWDC20 將於 6 月 22 至 26 日之前所未有的虛擬方式將全球超過 2300 萬的蘋果開發者社區彙集在一塊兒,將成爲迄今爲止規模最大的 WWDC。github

Keynote 主題演講在北京時間 23 日凌晨 1 點開始,對於中國的觀衆來講,主題演講也將在騰訊、愛奇藝、Bilibili 和優酷上進行直播。同時,超過 1000 名蘋果工程師將在 Developer Forums 回答問題並參與技術討論,開發者能夠發佈本身的問題,直接向蘋果專家學習。面試

文章

🌟 🐕 iOS 架構談:剖析 Uber 的 RIB 架構

@老驢:這是一篇由 Uber 工程師撰寫,知識小集團隊翻譯的對 Uber RIB 構架的解析文章。RIB 從不少年前 Uber 切換 Swift 開始使用,到今天已經存在了很長時間了,應該能夠說算是一種經得住考驗的構架。若是不少年前你對 RIB 構架的理解沒有很深刻的話,也許你今天再回頭來看,就會有更深的理解。swift

還記得2,3年前,構架風潮興起的時候,幾乎全部的公司的,全部的團隊都在搞本身的構架。然而,經歷了時間的考驗,並非全部的構架最後都存活了下來。談點我的見解:全部的構架都應該以本身的業務需求爲出發,爲了構架而構架,那就是耍流氓了。這個角度上去說,也許不少年之後,再回頭去看,說不定以爲 MVC 纔是更好的選擇呢?ruby

🌟 🐎 Flutter 卡頓問題的監控與思考

@極速男孩 : 卡頓問題一直是開發中比較關注值得關注的問題。本文首先介紹瞭如何去判斷卡頓以及卡頓的原理,而後從修改 Dart SDK, AOT 模式下采集堆棧(暫停線程),AOT 模式下采集堆棧(經過信號)這三種不一樣的解決方案,並比較了三中不一樣方案各自的優劣勢。網絡

🐢 如何在模塊化/組件化項目中實現 ObjC-Swift 混編?

@含笑飲砒霜:在單一 target 的項目中,ObjC 和 Swift 能夠直接經過橋接文件 bridging header 實現混編,但若是是在多個 target 或 library 或 framework 中,是不能使用 bridging header 的,這時候如何實現混編呢?文中詳細記錄了在混編過程當中的踩坑歷程,可供你們參考借鑑。架構

推薦閱讀:一波 N 折的攜程酒店 Swift-Objc 混編實踐app

🐕 iOS 中的網絡調試

@looping:本篇文章不只詳細地介紹了咱們所熟悉的一些網絡調試工具和原理,並且還通過實踐給出了一個不會影響原有網絡請求,又能拿到全部網絡請求回調的方法。在閱讀過程當中咱們會進一步瞭解到做者能經過學習借鑑開源框架、官方示例等的設計原理,爲解決問題帶來新思路,不斷地優化演進成最終方案,很是值得確定和學習。框架

🐢 在block內如何修改block外部變量?

@水水 : 若是面試被問:在 block 內如何修改 block 外部變量? 你會如何回答呢?若是你不清楚不要緊,本文簡潔明瞭的帶你瞭解底層原理,值得一讀。

🐎 版本管理工具及 Ruby 工具鏈環境

@紅紙:來自瓜神的**「CocoaPods 歷險記」**系列第一篇,本文介紹了版本管理工具以及 Ruby 工具鏈環境。從中咱們能夠學習幾個不一樣的版本管理工具的差別,以及 Cocoapods 做爲包管理工具如何控制 iOS 項目中各個依賴庫版本信息。另外瓜神經過實操 Bundler 管理工程的全流程,詳細介紹瞭如何控制 Gem 的版本信息,以及如何使用 rbenv 管理對應的 ruby 版本。

🐕 Swift Pointers Overview: Unsafe, Buffer, Raw and Managed Pointers

@anotheren:指針是 Swift 語言中最複雜的功能之一,本文成體系地介紹了 Swift 中的 19 種指針,並詳細解答了它們是什麼,什麼時候使用以及從中能夠獲得什麼。若是你對音視頻感興趣,那麼你在和底層接口(主要是一些 C API)打交道的過程當中是繞不開指針的,快去了解一下吧。

工具

Swift Package Index

@EyreFree:隨着 Xcode 11 中開始集成 Swift Package Manager,愈來愈多的第三方庫也添加了對 SPM 的支持,切換到 SPM 已經逐漸成爲可能。swiftpackageindex.com 是一個對支持 SPM 的 Swift 庫的索引,即一個 SPM 庫搜索引擎,它目前是一個非官方的、由開源社區維護的項目。它的實現原理很簡單,數據是依靠人工錄入的,即當有人將開源庫提交到主列表中時(有須要提交的庫?點這裏),此站點會當即對它進行徹底克隆,而且每隔幾個小時進行一次輪詢,以便在索引中看到的信息始終反映最新的庫版本,而不須要庫做者執行任何操做。選擇正確的依賴關係不只僅是找到知足您須要的代碼,挑選高質量的庫是很困難的,swiftpackageindex.com 軟件包索引能夠幫助您更好地決定依賴關係,快來嘗試一下吧!

代碼

全新技能,FDottedLine

@邦Ben:Flutter 官方庫並無提供方便的實現虛線的庫(其實就是生態還比較弱)。FDottedLine 這個庫則提供了靈活構建虛線效果的組件。若是有虛線需求的童鞋,不妨使用一下。

  • 同時支持水平、垂直兩個方向的虛線
  • 支持建立虛線形狀
  • 提供超簡單的方式爲 Widget 添加虛線邊框
  • 支持建立靈活的虛線邊角效果

內推

老司機週報團隊聯合知識小集和 SwiftGG 翻譯組收錄了一份靠譜的內推職位。

若是你想找工做,點這裏:www.yuque.com/iosalliance…

若是你想招人,點這裏:www.yuque.com/iosalliance…

固然,也歡迎你關注咱們每一期的週報,咱們會在每期週報底部及時更新編輯內推崗位。

關注咱們

咱們開通了公衆號,每期發佈時公衆號(OldDriverWeekly)會推送消息,歡迎關注。

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

說明

🚧 表示需某工具,🌟 表示編輯推薦

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

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息