老司機 iOS 週報 #113 | 2020-05-18

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

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

新聞

Flutter web 最新進展: 發掘更多可能!

@老驢:Google 又來更新 Flutter Web 的進展啦。在最新的版本中,Flutter 已經提供了 PWA 的支持,也有愈來愈多的插件開始提供對 Web 的支持,同時 Flutter 也進一步改進了 Web 的調試與測試。ios

雖然 Flutter Web 支持仍是處於 beta 階段,可是,Google 正在努力一步一步提高 Flutter 的表現,也但願廣大開發者也能加入進來,一塊兒完善 Flutter Web。git

新手推薦

Settings Bundles Management in Xcode

@極速男孩:Settings Bundles 支持開發者在 iOS 設置中加入一些自定義的內容。本文主要介紹瞭如何經過 shell 腳原本在設置中根據不一樣的 Configuration 或者不一樣的 Targets 來加入不一樣的內容。github

文章

🌟 🐕 TrampolineHook 學習筆記

@五子棋:雖然這個庫是我寫的,可是沒想到居然有大神這麼詳細的剖析了裏面的每一方面。太讚了,必須推薦。web

🌟 🐕 超詳解析 Flutter 渲染引擎|業務想創新,不瞭解底層原理怎麼行?

@CrazyCoderShi:小編強烈推薦在用 Flutter 的小夥伴仔細閱讀這篇文章,本文由手淘技術產出,從渲染引擎層面詳細分析了一個控件是如何展現到屏幕上的,細緻入微。文末簡要地提了一下,手淘在 Flutter 上的一些探索,也是社區內常提到的把 Flutter 引擎做爲小程序的渲染引擎👍。shell

🐕 What’s new in Swift 5.3?

@享耳先森:Swift 5.3 即將發佈,本文給你介紹 Swift 5.3 的新特性,最顯著的兩個就是 多尾隨閉包(Multiple trailing closures) 與 多重異常捕獲(Multi-pattern catch clauses),其他特性請閱讀原文。小程序

  • 5.3 之前尾隨閉包只能做於最後一個 closure 類型參數,對於有多個 closures 參數的狀況,也不建議使用尾隨閉包,Swift 5.3 開始將支持多 closures 參數使用尾隨閉包模式。swift

  • 之前一條 catch 語句中只能匹配一種 error,5.3 開始將支持多個 error後端

    do {
        let result = try checkReactorOperational()
        print("Result: \(result)")
    } catch TemperatureError.tooHot, TemperatureError.tooCold {
        print("Shut down the reactor!")
    } catch {
        print("An unknown error occurred.")
    }
    複製代碼

🐕 Flutter 在 PLUS 業務中的探索和實踐

@looping:本文介紹了京東 PLUS 會員業務團隊入坑 Flutter 的緣由,以及當時須要探索和解決的問題調研結論,而且詳盡地描述了 Flutter 在 PLUS 業務中的實踐過程,這對正在研究 Flutter 的同窗是一份很好的學習交流資料。

🐕 WKWebView 默認緩存策略與 HTTP 緩存協議

@含笑飲砒霜:WKWebView 默認緩存策略徹底遵循 HTTP 緩存協議,蘋果並無作額外的事情。WKWebView 默認緩存策略流程總結以下:

    1. 是否有緩存,沒有則直接發起請求,有則進行下一步
    1. 是否每次都得進行資源更新校驗(響應頭是否有 Cache-Control:no-cache 或 Pragma:no-cache 字段),不須要則進入 3,須要則進入 4)
    1. 緩存是否過時(響應頭,Cache-Control:max-age、Expires、Last-Modified 啓發式緩存),沒過時則使用緩存,不發起請求,過時了則進入 4
    1. 客戶端發起資源更新校驗請求(請求頭,If-Modified-Since: Last-Modified 值、If-None-Match: ETag 值),若是資源沒有更新,服務器返回 304,客戶端使用緩存;若是資源有更新,服務器返回 200和資源

推薦閱讀: 多是最被誤用的 HTTP 響應頭之一 Cache-Control: must-revalidate

🐕 The different categories of Swift protocols

@EyreFree:本文做者提供了一種新的 Protocol 分類設計思路,即根據它們所屬的類別來區分它們。歸納地說,做者將協議分爲四個類別:

  • 動做使能器:使咱們可以對每種符合類型執行統一的操做。它們一般具備以 able 結尾的名稱,例如 Equatable
  • 需求定義:使咱們能夠將需求形式化爲某種對象,例如 SequenceNumericColorProvider
  • 類型轉換:協議用於讓各類類型聲明它們能夠轉換爲另外一種類型,或者能夠經過原始值或文字進行表達(例如 CustomStringConvertibleExpressibleByStringLiteral);
  • 抽象接口:充當能夠多種類型實現的統一 API,從而使咱們能夠按需快速替換實現代碼而無需改動調用方代碼,封裝第三方代碼或在測試中模擬某些對象。

你是否定可這種分類方式呢?或許看完本文你可以有本身的見解。

🐕 "零"學習成本:使用 Web 標準開發動態化 Flutter 應用

@邦Ben:該文介紹了阿里的一個 Kraken 項目,該項目核心是用 Web 標準進行開發,Flutter 進行解析渲染。簡而言之就是,HTML -> Flutter Render,基本有也能夠理解爲小程序的模式,最大的特色就是使用 W3C 標準規範,Web 童鞋入坑成本低。同時也介紹了其配套工具和一些性能特性,可是還沒開源,能夠做爲一個思路進行參考。

工具

How to add a shield on the App Icon of beta builds

@紅紙:若是你還在煩惱裝了太多測試包,卻不能直觀看出測試包版本/構建信息的話。不妨嘗試下本文中的這個工具 「Badge」,其容許你在 App 的 Icon 中添加你指定的版本信息。集成也很是方便,能夠經過 Xcode 中的 Run Script Phase 或者經過 Fastlane 中對應的 badge 插件進行集成。

內推

上海 - 字節跳動:TikTok iOS/Android/前端/後端工程師

TikTok是目前全球最火爆,國內出海最成功的短視頻App,全球累計下載接近20億次。

目前團隊規模落後於需求增加,很是缺人,經驗不限,應屆生老司機專家都歡迎。

簡歷發送至 martin.lv@bytedance.com

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

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

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

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

關注咱們

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

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

說明

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

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

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