iOS 開發(fā)資料總結(jié)

戴明大神的總結(jié):

接下來,我按照 iOS 開發(fā)地圖的順序,和你推薦一些相關(guān)的學(xué)習(xí)資料。

實例

學(xué)習(xí) iOS 開發(fā)最好是從學(xué)習(xí)一個完整的 App 入手,GitHub上的Open-Source iOS Apps
項目,收錄了大量開源的完整 App 例子,比如 Hacker News Reader 等已經(jīng)上架了 App Store 的應(yīng)用程序,所有例子都會標注是否上架 App Store的、所使用開發(fā)語言、推薦等級等信息,有利于進行選擇學(xué)習(xí)。

開發(fā)一個完整的 App 也有最佳實踐,這里有份最佳實踐可以參考。

下面兩個教程網(wǎng)站都會手把手通過實例教你怎么動手學(xué)習(xí) iOS 各個知識點。

  1. AppCoda
  2. Raywenderlich

iOS 基礎(chǔ)

完整開發(fā)了多個 App 后,為了更好、更快的掌握開發(fā),你就會有需要了解更多 iOS 基礎(chǔ)知識的訴求,包括列表的優(yōu)化、高效界面布局開發(fā)、圖表圖形、圖片處理、動畫多媒體等等。

圖形渲染 Metal 框架的學(xué)習(xí)可以參看下面四篇文章

  1. Metal
  2. 基于 Metal 的 ARKit 使用指南(上)
  3. 基于 Metal 的 ARKit 使用指南(下)
  4. 基于 Metal 的現(xiàn)代渲染技術(shù)

iOS 系統(tǒng)

iOS 基礎(chǔ)學(xué)習(xí)到一定程度就需要了解 App 是如何在系統(tǒng)中工作的,系統(tǒng)提供了什么基礎(chǔ)功能,提供了哪些界面控件等等。

擴展知識可以閱讀下面四本書:

  1. 《深入解析Mac OS X & iOS操作系統(tǒng)》
  2. 《現(xiàn)代操作系統(tǒng)》
  3. 《深入理解計算機系統(tǒng)》
  4. 《程序員的自我修養(yǎng)》

編程語言

編程語言的學(xué)習(xí)可以參考官方手冊,對于 Runtime 的擴展文章閱讀:

  1. Objective-C 消息發(fā)送與轉(zhuǎn)發(fā)機制原理
  2. 神經(jīng)病院Objective-C Runtime入院第一天——isa和Classhttps://halfrost.com/objc_runtime_isa_class/
  3. 神經(jīng)病院 Objective-C Runtime 住院第二天——消息發(fā)送與轉(zhuǎn)發(fā)
  4. 神經(jīng)病院 Objective-C Runtime 出院第三天——如何正確使用

編程語言 Swift 推薦閱讀書籍是《Swift 進階》、《函數(shù)式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》 。

架構(gòu)相關(guān)擴展閱讀可以參看 iOS 組件化相關(guān)討論文章匯總 | KANGZUBIN 。

設(shè)計模式推薦書籍如下:

  • 《設(shè)計模式 可復(fù)用面向?qū)ο筌浖幕A(chǔ)》
  • 《Objective-C 編程之道:iOS設(shè)計模式解析》
  • 《Head First 設(shè)計模式》
  • 《大話設(shè)計模式》

開發(fā)工具

開發(fā)的代碼多了,開發(fā)效率和開發(fā)質(zhì)量的提升就越來越離不開開發(fā)工具了。

iOS 開發(fā)工具 Xcode、Instrument 的使用學(xué)習(xí),推薦看蘋果開發(fā)者大會 WWDC 的 Session 視頻。

擴展閱讀文章推薦:

  1. The Architecture of Open Source Application
  2. Writing AST matchers for libclang
  3. 使用 OCLint 自定義 MVVM 規(guī)則
  4. iOS 增量代碼覆蓋率檢測實踐

閱讀書籍推薦:

  1. 《Getting Started with LLVM Core Libraries》
  2. 《Modern Compiler Implementation in C》
  3. 《Compiler》

開發(fā)完成

當(dāng)開發(fā)完成后就需要進行調(diào)試、持續(xù)化交付、測試。

LLDB 調(diào)試推薦先看官方指南,再看這篇“與調(diào)試器共舞 - LLDB 的華爾茲”。為了更好的調(diào)試體驗擴展 LLDB 可以參看這篇文章“How to Extend LLDB to Provide a Better Debugging Experience”。

另外,這個網(wǎng)址收錄了各種調(diào)試資料。

持續(xù)化交付可以參看各大公司的實踐,比如:

  1. 知乎 iOS 客戶端工程化工具 - Venom
  2. 百度App iOS工程化實踐: EasyBox破冰之旅
  3. 如何實現(xiàn)“持續(xù)集成”?淘系閑魚把研發(fā)效率翻了個翻

測試擴展閱讀推薦文章如下:

  1. TDD的iOS開發(fā)初步以及Kiwi使用入門
  2. Kiwi 使用進階 Mock, Stub, 參數(shù)捕獲和異步測試
  3. Unit Testing
  4. 客戶端自動化測試研究
  5. PICK一下,iOS自動化測試新方案出道
  6. 愛奇藝基于AI的移動端自動化測試框架的設(shè)計

上線后

開發(fā)完成后,做完測試,就可以上線了。上線后還需要做大量監(jiān)控保證用戶使用 App 的高可用性和好體驗。動態(tài)化保證發(fā)版靈活和問題的快速修復(fù)。

推薦的擴展閱讀如下:

  1. iOS應(yīng)用啟動性能優(yōu)化資料
  2. iOS啟動時間優(yōu)化
  3. Understanding and Analyzing Application Crash Reports
  4. PLCrashreporter源碼分析其一
  5. PLCrashreporter源碼分析其二
  6. How Not to Crash
  7. Logan:美團點評的開源移動端基礎(chǔ)日志庫
  8. Hook Objective-C Block with Libffi
  9. Hot or Not? The Benefits and Risks of iOS Remote Hot Patching

計算機基礎(chǔ)

經(jīng)歷多次 App 開發(fā)到上線后的過程,碰到問題,解決問題,越發(fā)覺得計算機基礎(chǔ)的重要性。牢固的基礎(chǔ)能有利于碰到問題時快速定位和解決。

推薦擴展閱讀文章和資源如下:

  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. 從零構(gòu)建 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 卡頓監(jiān)控

通用知識

iOS 開發(fā)中還有很多和其他計算機領(lǐng)域相通的知識,比如渲染、數(shù)據(jù)庫、網(wǎng)絡(luò)等。

推薦擴展閱讀文章有:

  1. 深入理解 iOS Rendering Process
  2. 繪制像素到屏幕上
  3. 手把手教你封裝網(wǎng)絡(luò)層
  4. A high performance JSON library in Swift

網(wǎng)絡(luò)相關(guān)文章推薦如下:

  1. 百度App網(wǎng)絡(luò)深度優(yōu)化系列《三》弱網(wǎng)優(yōu)化
  2. iOS 流量監(jiān)控分析 | 周小魚のCODE_HOME
  3. TCP/IP(一):數(shù)據(jù)鏈路層
  4. TCP/IP(二):IP 協(xié)議
  5. TCP/IP(三):IP 協(xié)議相關(guān)技術(shù)
  6. TCP/IP(四):TCP 與 UDP 協(xié)議簡介
  7. TCP/IP(五):TCP 協(xié)議詳解
  8. TCP/IP(六):HTTP 與 HTTPS 簡介
  9. 攜程App的網(wǎng)絡(luò)性能優(yōu)化實踐
  10. 美團點評移動網(wǎng)絡(luò)優(yōu)化實踐
  11. 萬人低頭時代,支付寶APP無線網(wǎng)絡(luò)性能該如何保障
  12. QQ空間在生產(chǎn)環(huán)境使用QUIC協(xié)議的經(jīng)驗
  13. 美圖HTTPS優(yōu)化探索與實踐
  14. 九個問題從入門到熟悉 HTTPS
  15. 試圖取代 TCP 的 QUIC 協(xié)議到底是什么
  16. 小談 HTTP 中的編碼
  17. 利用 WireShark 深入調(diào)試網(wǎng)絡(luò)請求
  18. 關(guān)于 iOS HTTP2.0 的一次學(xué)習(xí)實踐 - 掘金
  19. 移動 APP 網(wǎng)絡(luò)優(yōu)化概述 ? bang’s blog
  20. GYHttpMock:iOS HTTP請求模擬工具 | WeRead團隊博客
  21. YTKNetwork源碼解析 | JKnight
  22. LefexWork/iOS 需要掌握的 HTTP 知識.md at master · lefex/LefexWork · GitHub
  23. LefexWork/以不一樣的方式理解SDWebImage.md at master · lefex/LefexWork · GitHub
  24. Alamofire的設(shè)計之道 - Leo的專欄 - CSDN博客

專有知識

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

視野

推薦手冊:

  1. Apple Developer Documentation
  2. Swift 開發(fā)手冊

開源控件:

  1. iOS Example
  2. Cocoa Controls
  3. awesome-swift
  4. Swift 開源項目精選 - 應(yīng)用架構(gòu)角度
  5. Swift 開源項目精選導(dǎo)圖
  6. SwiftGuide
  7. Swift 開源項目團隊介紹
  8. Swift 知名開發(fā)者介紹

視頻推薦 Swift Talk - objc.io

這里的 iOS 博客都很值得訂閱,GitHub - awesome-tips/blogs: 行業(yè)優(yōu)質(zhì)博客匯總。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前一段時間,網(wǎng)絡(luò)上突然有一條微博中提到一句詩“我有一壺酒,足以慰風(fēng)塵”,請求網(wǎng)友對個下聯(lián),隨后就火得一塌糊涂,甚至...
    鶴壁飛雪閱讀 907評論 0 0
  • 小時候,一家人在一起,父親會和我們一起猜謎語,通常都是父親講,讓我們猜,猜不到的,他再慢慢講解,一家人其樂融融。講...
    周風(fēng)光澤閱讀 2,000評論 19 25
  • “你負責(zé)浪,我負責(zé)劃船?!?當(dāng)時,我覺得我的世界原來是可以有色彩存在的。 那個我頓時滿懷期待迫不及待看到燦爛的世界...
    A笑笑_32fe閱讀 197評論 1 0
  • 年齡已經(jīng)是成年了,身體也已經(jīng)成熟了,可是情商卻幼稚的很。 可能是因為家中有個幾歲的妹妹吧,被她給影響的幼稚了,也可...
    紐蔻兒閱讀 484評論 6 4

友情鏈接更多精彩內(nèi)容