老司機 iOS 週報 #130 | 2020-09-28

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

你也能夠爲這個項目出一份力,若是發現有價值的信息、文章、工具等能夠到 Issues 裏提給咱們,咱們會盡快處理。記得寫上推薦的理由哦。有建議和意見也歡迎到 Issues 提出。ios

通知

國慶大長假這就來了,週報也將停更兩期,下一次更新會在 10 月 12 日,復工的首個星期一。望周知!祝你們長假愉快~git

WWDC20

本週在週報公衆號上咱們推送了 4 篇 WWDC20 內參專欄內的文章,每篇都很精彩!github

新手推薦

🐕 3 lesser-known ways of using Swift enums

@EyreFree:本文介紹了 Swift 中使用枚舉的 3 種不爲人知的方法,建議有在使用 Swift 的同窗都看一下,相信會有所收穫。web

文章

🌟 🐢 Flutter 渲染引擎詳解 - iOS Metal 篇

@極速男孩: 由於蘋果即將停用 OpenGL, 因此在 flutter 1.17 版本中支持了 metal 渲染。本文主要介紹了在 flutter 中,如何完成上下文初始化,而後如何將 view 輸出到 surface 中。並在最後介紹了 flutter 光柵化的過程。編程

🐕 搭建 iOS-Crash 平臺實踐總結

@水水:我以前寫過一個 如何自建 Crash 平臺,裏面提供了一個大體的思路,這篇文章是對具體實踐的一個過程記錄。Crash 收集使用的是 PlCrashReporter,解析是基於 llvm8.0,已成功搭建運行近一年,還指導了另外的部門進行快速搭建。想要本身搭建 Crash 平臺和自定義 Crash 信息的,能夠參考本文的思路。也歡迎在老司機技術羣一塊兒進行探討和交流。swift

🐢 The state of Swift for WebAssembly in 2020 (and earlier)

@老峯SwiftWasm 是一個開源項目旨在將 WebAssembly 後端集成到官方 Swift 編譯器中,該項目仍處於最先階段,將容許開發人員使用 Swift 編程語言來構建可在 Web 瀏覽器中運行的應用程序。本文做者介紹了將 Swift 代碼編譯爲 WebAssembly 的 SwiftWasm 工具集發展歷程和期間遇到的問題,以及 2020 年所作更新、將來規劃和目標,對 swift-webassembly 感興趣的讀者建議閱讀。後端

🐎 Windows 上也能用 Swift 編程了,官方編譯工具安裝包現已上線

@zvving:Swift 支持 Windows 平臺,編譯器的支持只是一部分工做,更須要對基礎庫、調試器、測試工具等開發生態提供全面支持。數組

至少如今,能用簡短 Swift 代碼編寫 Windows 原生計算器程序:這是馬拉松般漫長的平臺支持旅程中,一個不錯的開始。瀏覽器

參考:Porting by a 1000 Patches: Bringing Swift to Windows

🐎 來來來,Flutter Widget 體系架構與 UI 渲染流程

@Damien:本文是 Flutter Widget 以及 UI 渲染的底層技術講解文章,從 Widget 的分類不斷深刻到底層 UI 渲染的整套流程,有助於想了解 Flutter 底層渲染機制的同窗學習理解。同時在瞭解了底層原理後,也能夠更好的展開諸如狀態管理、渲染優化,卡頓 FPS 優化等技術領域的工做。

🐕 探祕 App Clips

@JonyFang:本文主要是對 App Clips 功能支持及開發配置的介紹。先介紹了喚起條件及用戶可操做的權限開關;隨後介紹 App Clips 二進制的下載和清理;接着介紹 Apple Connect、客戶端、服務端須要作的相關配置;以後介紹了下 App Clips 和主 App 的數據共享及互斥關係;最後介紹了本地測試和審覈相關的內容。整篇文章,精簡地把 App Clips 從開發、測試、提審到用戶體驗完整的過程介紹了一篇。對於有 App Clips 業務開發需求的同窗會有必定的參考幫助。

🐎 深夜暗坑 - iOS 啓動圖異常修復方案

@J_Knight_:本文分享瞭如何定位啓動圖渲染失敗和未能更新的問題的過程以及排查的結果,並提供了替換系統緩存啓動圖的方案,提供了相關流程圖;最後提供了該方案對緩存啓動圖在不一樣系統版本上的表現差別。

🐕 Memory Safety - The Swift Programming Language

@四娘:這是 Swift 官方文檔的其中一節,默認狀況下,Swift 會阻止你代碼裏不安全的行爲。例如,Swift 會保證變量在使用以前就完成初始化,在內存被回收以後就沒法被訪問,而且數組的索引會作越界檢查。

Swift 也保證同時訪問同一塊內存時不會衝突,經過約束代碼裏對於存儲地址的寫操做,去獲取那一塊內存的訪問獨佔權。由於 Swift 自動管理內存,因此大部分時候你徹底不須要考慮內存訪問的事情。然而,理解潛在的衝突也是很重要的,能夠避免你寫出訪問衝突的代碼。

🐕 Swift 的 MemoryLayout 是如何工做的

@四娘MemoryLayout 是標準庫裏一個很神奇的類型,經過它咱們能夠在運行時獲取到特定類型的內存佈局信息,以前咱們介紹過的 HandyJSONRuntime 庫都有使用到它,但對於它的原理的介紹文章卻不是不少。

這篇文章就從 Swift 編譯器的視角出發,介紹了 MemoryLayout 的工做原理,例如從源碼到 IR 的過程當中如何肯定類型的內存佈局,如何把這些編譯期的元信息變成可調用的語言接口,但願讀者讀完以後也能夠對此有所瞭解。

🐎 JS-Native 通訊的 6 種方式

@享耳先森:本文列出了 Hybrid 架構中,JS 與 Native 通訊的幾種技術方案,這些方案你都瞭解嗎?

題外話:Hybrid 通訊大可能是異步方式的,不妨深刻研究下,是否能夠實現同步呢?

內推

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

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

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

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

關注咱們

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

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

說明

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

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

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