老司機 iOS 週報,只為你呈現有價值的資訊。
你也可以為這個專案出一份力,如果發現有價值的資訊、文章、工具等可以到 Issues 裡提給我們,我們會盡快處理。記得寫上推薦的理由哦。有建議和意見也歡迎到 Issues 提出。
新聞
? Flutter Interact 2019 即將到來!全球同步直播最先了解新動態
@zvving:Flutter Interact 將在 12 月 11 日於紐約布魯克林舉辦,聚焦於跨平臺打造精美體驗。現場提供同聲傳譯的直播服務,對 Flutter 感興趣的小夥伴不要錯過!
新手推薦
? 不同平臺操作體驗的差異和適配
@極速男孩:flutter 在 iOS 和 Android 當中不同的適配效果,包括不同的手勢,控制元件效果和字型圖表等。
文章
? 開發企業級移動APP,Flutter準備好了嗎?
@CrazyCoderShi:Flutter 自 1.0.0 正式版釋出以來, 已經一整年過去了. 在過去的一段時間裡面, 官方開發團隊始終保持著飛速的迭代效率, 社群的發展狀況也讓人欣喜, 國內外各大廠開始投入精力. 即使如此, Flutter 在生產中的使用覆蓋率仍不是太高, 那麼 Flutter 在生產中的表現到底如何? 本文從以下幾個角度, 和你深入探討 Flutter 企業級開發的方方面面:
- 架構
- 開發環境
- 使用者介面
- 訪問硬體功能
- 安全性
- 其他雜項
? ? 紛爭再起:Flutter-UI 繪製解析
@四娘:作者通過生動形象的方式跟我們講述了 Flutter 的 Widget 樹實現,如何通過輕量級的檢視樹達成高效的檢視樹重建,與我們熟知的 View 進行協作完成最終渲染。
? ? Flutter 沙龍回顧 | 如何縮減接近 50% 的 Flutter 包體積
@老驢:這是位元組跳動技術團隊做的一篇針對 Flutter 實際落地應用中針對包體積優化的文章。
文章比較長,乾貨非常多,看得出位元組跳動團隊在 Flutter 落地應用上做出的努力。雖然大家在自己的專案中並不一定用得到這些優化,但是不妨一讀,一定會對大家的實際專案有幫助。
? ? KeyValuePairs
@xiaofei86:Swift 5 將 DictionaryLiteral 重新命名為 KeyValuePairs SE-0214。本週,NSHipster 就為我們帶來 KeyValuePairs 的詳解。本文延續了 mattt 一貫的“哲學”開場,由宇宙學對事物的分類到陰陽、五行、八卦,從而引出 Array、Set 等 Swift 中的常用集合型別(不得不感嘆 mattt 大神的博學)。通過本文對 KeyValuePairs 的介紹,與 Dictionary Literal 的對比以及應用,我們會對 Array、Set 和 Dictionary 之間的根本區別,以及他們在 Swift 中的工作方式產生更加深入的理解。
? Making Swift code extensible through plugins
@EyreFree:本文介紹瞭如何用 Plugin 模式提高程式碼的可擴充套件性。Plugin 是一段程式碼,可以將其插入另一種型別或系統以修改其功能。Plugin 有許多不同的形式和規模,比如文中舉出的例子 typealias Plugin<T> = (T) -> T
就是一個簡單的 Plugin。合理利用該模式,能降低我們所編寫的程式碼的複雜性,但如果濫用也會導致系統程式碼過於分散,一切都取決於我們要構建的軟體系統型別。對架構和設計模式感興趣的同學一定不要錯過。
? Vision Framework: Working with Text and Image Recognition in iOS 13
@張嘉夫:2 年前 Apple 在 WWDC 2017 上釋出了 Vision 框架,一個令人驚歎但又十分簡便的框架,讓計算機視覺功能的開發更加容易。不論是文字檢測、面部識別、條形碼掃描還是與 Core ML 配合執行機器學習任務都可以用這個框架實現。今年,Apple 在 WWDC 2019 為 Vision 框架帶來了更多新功能,著實將計算機視覺領域向前推進了一步。AppCoda 在這篇文章裡會帶領大家構建一個叫 Snapcat 的應用,使用 Vision
全新的動物檢測器來檢測喵星人、新增濾鏡然後拍照。然後 AppCoda 會教你如何利用全新的 VisionKit
來掃描名片,就像 iOS 原生的備忘錄 app 一樣。最後,Appcoda 還會展示如何對掃描後的名片進行文字識別。
? Faster way to download and install Xcode
@JimQ:平時下載 Xcode 最便捷的渠道就是 App Store,但只能用於下載最新的正式版,而且用過的人都知道,其下載速度和成功與否,除了看網速,有時還要看人品。所以我們需要更多的解決方案:
- 使用 Apple Developer 官網在瀏覽器下載最新的正式版或 beta 版;
- download/more 路徑下下載更多之前的版本;
- 使用 aria2 指令碼加速下載;
- .xip 包雙擊之後會有一個合法性驗證,可以使用命令跳過這個步驟;
- 先刪除 Xcode 再安裝比覆蓋安裝速度更快。
程式碼
NXDrawKit
@老峰:NXDrawKit 是使用 Swift 開發的一個簡單易用的手寫繪圖板類庫,提供了繪圖應用的基本功能如:撤銷、恢復、清除、儲存、設定線條顏色,粗細,透明度等,使用它可以實現類似你畫我猜,手寫簽名等功能,因為是作者第一個 Swift 專案,所以程式碼風格比較偏 OC,另外 Palette and ToolBar 自定義支援並不是太友好。
LEEAlert
@looping:LEEAlert 是一個可自定義 Alert 和 ActionSheet 樣式的檢視控制元件庫,支援的功能特性相當豐富,能滿足絕大多數彈窗提示的需求。通過 .config
開始鏈式呼叫,整體語法結構還是非常優雅的,有感興趣的小夥伴可以參與共同維護。
內推
老司機週報團隊聯合知識小集和 SwiftGG 翻譯組收錄了一份靠譜的內推職位。
如果你想找工作,點這裡:www.yuque.com/iosalliance…
如果你想招人,點這裡:www.yuque.com/iosalliance…
當然,也歡迎你關注我們每一期的週報,我們會在每期週報底部及時更新編輯內推崗位。
關注我們
我們開通了公眾號,每期釋出時公眾號(OldDriverWeekly)會推送訊息,歡迎關注。
同時也支援了 RSS 訂閱:github.com/SwiftOldDri… 。
說明
? 表示需翻牆,? 表示編輯推薦
預計閱讀時間:? 很快就能讀完(1 - 10 mins);? 中等 (10 - 20 mins);? 慢(20+ mins)