您當前的位置:首頁 > 書法

iOS 開發輿圖

作者:由 戴銘 發表于 書法時間:2022-01-12

43篇 《iOS開發高手課》已完成,後面會對內容進行迭代,豐富下內容和配圖。最近畫了張 iOS 開發全景輿圖,還有相關一些資料整理,方便我平時開發 App 時參看。輿圖如下:

iOS 開發輿圖

iOS 開發輿圖

iOS 開發輿圖

iOS 開發輿圖

iOS 開發輿圖

iOS 開發輿圖

接下來,我按照 iOS 開發地圖的順序,和你推薦一些相關的學習資料。

例項

學習 iOS 開發最好是從學習一個完整的 App 入手,GitHub上的Open-Source iOS Apps 專案,收錄了大量開源的完整 App 例子,比如 Hacker News Reader 等已經上架了 App Store 的應用程式,所有例子都會標註是否上架 App Store的、所使用開發語言、推薦等級等資訊,有利於進行選擇學習。

開發一個完整的 App 也有最佳實踐,這裡有份最佳實踐可以參考。

下面兩個教程網站都會手把手透過例項教你怎麼動手學習 iOS 各個知識點。 1。 AppCoda 2。 Raywenderlich

iOS 基礎

完整開發了多個 App 後,為了更好、更快的掌握開發,你就會有需要了解更多 iOS 基礎知識的訴求,包括列表的最佳化、高效介面佈局開發、圖表圖形、圖片處理、動畫多媒體等等。

圖形渲染 Metal 框架的學習可以參看下面四篇文章 1。 Metal 2。 基於 Metal 的 ARKit 使用指南(上) 3。 基於 Metal 的 ARKit 使用指南(下) 4。 基於 Metal 的現代渲染技術

iOS 系統

iOS 基礎學習到一定程度就需要了解 App 是如何在系統中工作的,系統提供了什麼基礎功能,提供了哪些介面控制元件等等。

擴充套件知識可以閱讀下面四本書: 1。 《深入解析Mac OS X & iOS作業系統》 2。 《現代作業系統》 3。 《深入理解計算機系統》 4。 《程式設計師的自我修養》

程式語言

程式語言的學習可以參考官方手冊,對於 Runtime 的擴充套件文章閱讀:

Objective-C 訊息傳送與轉發機制原理

神經病院Objective-C Runtime入院第一天——isa和Class(

https://

halfrost。com/objc_runti

me_isa_class/

神經病院 Objective-C Runtime 住院第二天——訊息傳送與轉發

神經病院 Objective-C Runtime 出院第三天——如何正確使用

程式語言 Swift 推薦閱讀書籍是《Swift 進階》、《函式式Swift》。大量Swift Playground 可以瞭解 Swift 程式語言的特性,這裡有份整理 GitHub - uraimo/Awesome-Swift-Playgrounds: A List of Awesome Swift Playgrounds 。這份資料彙總了 SwiftUI 的資料 GitHub - Juanpe/About-SwiftUI: Gathering all info published, both by Apple and by others, about new framework SwiftUI。 。這裡有本線上書詳細講解了 Combine 《Using Combine》 。

架構相關擴充套件閱讀可以參看 iOS 元件化相關討論文章彙總 | KANGZUBIN 。

設計模式推薦書籍如下:

《設計模式 可複用面向物件軟體的基礎》

《Objective-C 程式設計之道:iOS設計模式解析》

《Head First 設計模式》

《大話設計模式》

開發工具

開發的程式碼多了,開發效率和開發質量的提升就越來越離不開開發工具了。

iOS 開發工具 Xcode、Instrument 的使用學習,推薦看蘋果開發者大會 WWDC 的 Session 影片。

擴充套件閱讀文章推薦: 1。 The Architecture of Open Source Application 2。 Writing AST matchers for libclang 3。 使用 OCLint 自定義 MVVM 規則 4。 iOS 增量程式碼覆蓋率檢測實踐

閱讀書籍推薦: 1。 《Getting Started with LLVM Core Libraries》 2。 《Modern Compiler Implementation in C》 3。 《Compiler》

開發完成

當開發完成後就需要進行除錯、持續化交付、測試。

LLDB 除錯推薦先看官方指南,再看這篇“與偵錯程式共舞 - LLDB 的華爾茲”。為了更好的除錯體驗擴充套件 LLDB 可以參看這篇文章“How to Extend LLDB to Provide a Better Debugging Experience”。

另外,這個網址收錄了各種除錯資料。

持續化交付可以參看各大公司的實踐,比如: 1。 知乎 iOS 客戶端工程化工具 - Venom 2。 百度App iOS工程化實踐: EasyBox破冰之旅 3。 如何實現“持續整合”?淘系閒魚把研發效率翻了個翻

測試擴充套件閱讀推薦文章如下: 1。 TDD的iOS開發初步以及Kiwi使用入門 2。 Kiwi 使用進階 Mock, Stub, 引數捕獲和非同步測試 3。 Unit Testing 4。 客戶端自動化測試研究 5。 PICK一下,iOS自動化測試新方案出道 6。 愛奇藝基於AI的移動端自動化測試框架的設計

上線後

開發完成後,做完測試,就可以上線了。上線後還需要做大量監控保證使用者使用 App 的高可用性和好體驗。動態化保證發版靈活和問題的快速修復。

推薦的擴充套件閱讀如下: 1。 iOS應用啟動效能最佳化資料 2。 iOS啟動時間最佳化 3。 Understanding and Analyzing Application Crash Reports 4。 PLCrashreporter原始碼分析其一 5。 PLCrashreporter原始碼分析其二 6。 How Not to Crash 7。 Logan:美團點評的開源移動端基礎日誌庫 8。 Hook Objective-C Block with Libffi 9。 Hot or Not? The Benefits and Risks of iOS Remote Hot Patching

計算機基礎

經歷多次 App 開發到上線後的過程,碰到問題,解決問題,越發覺得計算機基礎的重要性。牢固的基礎能有利於碰到問題時快速定位和解決。

推薦擴充套件閱讀文章和資源如下: 1。 Algorithms and data structures in Swift, with explanations! 2。 iOS Memory Deep Dive 3。 iOS App Performance: Memory 4。 No pressure, Mon! Handling low memory conditions in iOS and Mavericks 5。 從零構建 Dispatch Queue 6。 Threading Programming Guide(1) 7。 Threading Programming Guide(2) 8。 Threading Programming Guide(3) 9。 Swift 中的鎖和執行緒安全 10。 淺談一種解決多執行緒野指標的新思路 11。 深入理解 GCD 12。 深入淺出GCD 13。 解密 Runloop 14。 Matrix-iOS 卡頓監控

通用知識

iOS 開發中還有很多和其他計算機領域相通的知識,比如渲染、資料庫、網路等。

推薦擴充套件閱讀文章有: 1。 深入理解 iOS Rendering Process 2。 繪製畫素到螢幕上 3。 手把手教你封裝網路層 4。 A high performance JSON library in Swift

網路相關文章推薦如下: 1。 百度App網路深度最佳化系列《三》弱網最佳化 2。 iOS 流量監控分析 | 周小魚のCODE_HOME 3。 TCP/IP(一):資料鏈路層 4。 TCP/IP(二):IP 協議 5。 TCP/IP(三):IP 協議相關技術 6。 TCP/IP(四):TCP 與 UDP 協議簡介 7。 TCP/IP(五):TCP 協議詳解 8。 TCP/IP(六):HTTP 與 HTTPS 簡介 9。 攜程App的網路效能最佳化實踐 10。 美團點評行動網路最佳化實踐 11。 萬人低頭時代,支付寶APP無線網路效能該如何保障 12。 QQ空間在生產環境使用QUIC協議的經驗 13。 美圖HTTPS最佳化探索與實踐 14。 九個問題從入門到熟悉 HTTPS 15。 試圖取代 TCP 的 QUIC 協議到底是什麼 16。 小談 HTTP 中的編碼 17。 利用 WireShark 深入除錯網路請求 18。 關於 iOS HTTP2。0 的一次學習實踐 - 掘金 19。 移動 APP 網路最佳化概述 « bang’s blog 20。 GYHttpMock:iOS HTTP請求模擬工具 | WeRead團隊部落格 21。 YTKNetwork原始碼解析 | J_Knight_ 22。 LefexWork/iOS 需要掌握的 HTTP 知識。md at master · lefex/LefexWork · GitHub 23。 LefexWork/以不一樣的方式理解SDWebImage。md at master · lefex/LefexWork · GitHub 24。 Alamofire的設計之道 - Leo的專欄 - CSDN部落格

專有知識

專有知識我就不展開說了,參考上面輿圖中標註的知識點去檢索你需要的就可以了。

視野

推薦手冊: 1。 Apple Developer Documentation 2。 Swift 開發手冊

開源控制元件: 1。 iOS Example 2。 Cocoa Controls 3。 awesome-swift 4。 Swift 開源專案精選 - 應用架構角度 5。 Swift 開源專案精選導圖 6。 SwiftGuide 7。 Swift 開源專案團隊介紹 8。 Swift 知名開發者介紹

影片推薦 Swift Talk - objc。io 。

這裡的 iOS 部落格都很值得訂閱,GitHub - awesome-tips/blogs: 行業優質部落格彙總。

其他資源參看上面的地圖。

標簽: iOS  Swift  APP  開發  TCP