老司機 iOS 週報 #91 | 2019-11-18

老司機iOS週報發表於2019-11-18

ios-weekly
老司機 iOS 週報,只為你呈現有價值的資訊。

你也可以為這個專案出一份力,如果發現有價值的資訊、文章、工具等可以到 Issues 裡提給我們,我們會盡快處理。記得寫上推薦的理由哦。有建議和意見也歡迎到 Issues 提出。

新聞

Apple Push Notification Service Update

@looping:近期蘋果釋出通知,將在 2020 年 11 月後不再支援基於二進位制協議的 APNs,建議我們儘快把推送服務更新到基於 HTTP/2 的 API 上。關於 APNs 詳細內容可檢視官方文件 APNs Overview

You Cannot Submit an Electron 6 (or 7) App to the Apple Store

@張嘉夫:開發者 David.dev 報告,App Store 會拒絕使用 Electron 6 或 7 開發的 app,原因是使用了非公開框架,包括 CAContext、CALayerHost、NSAccessibilityRemoteUIElement、NSNextStepFrame、NSThemeFrame 以及 NSURLFileTypeMappings 等。Apple 在回覆作者的訊息中還說,如果在未來提交的 app 中繼續使用或隱瞞非公開 API,可能會導致 Apple 開發者賬號被停用,並從 App Store 移除所有相關的 app。

文章

? 做一個高一致性、高效能的Flutter動態渲染,真的很難麼?

@CrazyCoderShi:最近閒魚 Flutter 小組在嘗試使用 DinamicX 的 DSL ,通過下發 DSL 模板實現 Flutter 端的動態化模板渲染。在解決了效能方面的問題後,又面臨了一個新的挑戰——渲染一致性。本文詳細講解了, 在實現的過程中各類坑的拆解, 從思路到實現的全過程, 抽絲剝繭帶你一步步實現。

? ? Swift 在 GAIA 平臺雲端一體化的探索

@蓮叔:Server Side Swift 一直以來都隨著 Swift 的發展而發展,雖然陸續有公司、團隊開始在 prod 環境使用 Swift 進行開發,但整體來看仍然相對小眾,相比 GO、Java 等傳統 Server-Side 的語言仍有較大的差距。從另一方面,近段時間的服務端技術也得到了長足的發展,Faas(Function as a service) 逐步進入人們的視野,Faas 在容器化的基礎上,將後端的服務更進一步的抽象為一個個函式,由於隱藏了大量的服務側的技術細節,Faas 讓前端、移動端開發人員全棧的完成端到雲的邏輯成為可能,這似乎是 Server-Side Swift 新的機會。

作者就做了這樣的一件事,在淘寶的 Faas 平臺:GAIA,實現了 Swift 語言的適配。這樣便可以用一門語言全棧的快速完成一個 App 的落地。作者分享了一個具體的按理以及對應的技術細節,雖然從文章本身無法窺見全貌,但仍然算一種 mind-opener,引人思考。感興趣的同學可以閱讀。

? Understanding the iOS 13 Scene Delegate

@anotheren:iOS 13 帶來了全新的 Scene Delegate 以適配應用多視窗。本文詳細講解了 Scene Delegate 對傳統的 App Delegate 的替換要點,對於理解全新的 Scene Delegate 所承擔的職能很有幫助。無論你是否已遷移至 Scene Delegate,本文都值得一讀。

? 基於 SwiftSyntax 寫一個命令列工具檢測 Xcode 專案中不用的圖片資源

@anotheren:類似的工具雖然已經有了喵神的 FengNiao,但是重複造輪子的過程中總能夠學到新的東西。作者分析了用於路徑檢索的 Path.swift 以及用於語法分析的 SwiftSyntax,並將他們組合成一個完整可用的工具。

? iOS 程式設計師眼中的 Emoji

@zvving:?有人評價 Emoji 是世界唯一通用語言。?你思考過它的編碼原理嗎?

從瀏覽 Emoji 到檢視對應編碼,從 ASCII 到 Unicode 基礎概念,從 Emoji 拼接到對應 iOS 字元處理。本文清晰明瞭,帶你快速瞭解 Emoji 編碼基礎原理。

? 5 Reasons Why Apps Fail & How To Avoid Them

@老驢:我們讀者裡應該有很大一部分在做個人專案,比如在工作之餘做個 App 上架之類的。這個時候,大家也就變身 PM,努力用各種方法去推廣自己的產品,讓自己的產品能被更多的人喜愛。

這篇文章就用了比較概括的語言,闡釋了作者心中的五鍾最常見的產品失敗的原因,同時也給出了一點建議。來讀讀文章看看能否從中學到點什麼吧。

? Flutter 效能分析

@五子棋:效能優化是所有應用開發者都必須面對的一個挑戰。而隨著 Flutter 等跨平臺框架的不斷湧現,移動端的開發正規化也正經歷著轉變。 本文從方法論和對應工具使用等兩個層面闡述如何分析 Flutter 中的效能問題。文中的一些經驗對於幫助大家快速定位問題能起到不小的作用。

工具

iShot 截圖工具

@含笑飲砒霜:Mac 自帶的截圖功能,大部分使用場景下基本足夠,但長截圖的痛點蘋果遲遲沒有成全使用者。相信不少使用者曾被推薦 Xnip 這款截圖工具,但畢竟是付費的。iShot 工具的出現應該會讓不少 Xnip 使用者倒戈陣營,iShot 是 Mac 上一款免費優秀、功能全面的區域截圖、視窗截圖、長截圖、延時截圖、快速標註的工具,小巧實用,非常適合對截圖有多重需求的使用者。

Topology

@Jimq:Topology 是一款開源的基於 canvas + typescript 的繪圖引擎,可用於實現軟體架構圖、微服務部署結構圖、流程圖、活動圖、類圖、時序圖、SCADA 等,也可以按照自己的想法實現任何想要的圖形庫。

官方有基於 Topology 實現的線上繪圖平臺,可線上編輯,一鍵儲存到雲伺服器,免費使用,且前端開源。

程式碼

xcdiff - A tool which helps you diff xcodeproj files

@xiaofei86:一個用來對比 xcodeproj 檔案的開源庫,能夠輸出更易於理解的對比結果。關於使用場景,作者舉例:“當我們使用工具來生成 xcodeproj 檔案時,對比 xcodeproj 檔案能夠增強我們對遷移過程的信心”。推薦給有需求的同學。

? ? LDNetDiagnoService

@蓮叔:如果關注使用者反饋的開發者可能多多少少都會遇到這樣的一個無力時刻:使用者反饋使用 App 期間遇到網路問題無法正常使用,但缺乏相應的資訊來判斷是 App 本身的問題還是使用者的裝置所處的環境問題。LDNetDiagnoService 是一個網路診斷的庫,基於 ping 和 traceroute 的原理對指定的域名進行測試,並生成診斷報告。結合該庫,在使用者網路出錯的時候執行該診斷,想必能更好的協助使用者和開發者定位原因。有類似困擾的開發者不妨一試。

UIFontComplete

@anotheren:這是一個可以安全呼叫字型的管理庫,使用 enum 將字型的呼叫方式進行了封裝,而不使用字串這種不安全的方法。同時支援 iOS 和 tvOS。

? FSPagerView

@老峰:FSPagerView 是一個 Swift 實現的優雅輪播相簿,它可以在製作橫幅檢視、產品展示、歡迎 / 指南頁面、螢幕 / 檢視控制器滑塊等為我們帶來很大的便利。

內推

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

如果你想找工作,點這裡:www.yuque.com/iosalliance…

如果你想招人,點這裡:www.yuque.com/iosalliance…

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

關注我們

我們開通了公眾號,每期釋出時公眾號(OldDriverWeekly)會推送訊息,歡迎關注。

老司機 iOS 週報 #91 | 2019-11-18

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

說明

? 表示需翻牆,? 表示編輯推薦

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

相關文章