iOS 開(kāi)發(fā)輿圖

43篇 《iOS開(kāi)發(fā)高手課》已完成米奸,后面會(huì)對(duì)內(nèi)容進(jìn)行迭代师倔,豐富下內(nèi)容和配圖悔叽。最近畫(huà)了張 iOS 開(kāi)發(fā)全景輿圖莱衩,還有相關(guān)一些資料整理,方便我平時(shí)開(kāi)發(fā) App 時(shí)參看娇澎。輿圖如下:

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

實(shí)例

學(xué)習(xí) iOS 開(kāi)發(fā)最好是從學(xué)習(xí)一個(gè)完整的 App 入手括细,GitHub上的Open-Source iOS Apps
項(xiàng)目伪很,收錄了大量開(kāi)源的完整 App 例子,比如 Hacker News Reader 等已經(jīng)上架了 App Store 的應(yīng)用程序奋单,所有例子都會(huì)標(biāo)注是否上架 App Store的锉试、所使用開(kāi)發(fā)語(yǔ)言、推薦等級(jí)等信息辱匿,有利于進(jìn)行選擇學(xué)習(xí)键痛。

開(kāi)發(fā)一個(gè)完整的 App 也有最佳實(shí)踐,這里有份最佳實(shí)踐可以參考匾七。

下面兩個(gè)教程網(wǎng)站都會(huì)手把手通過(guò)實(shí)例教你怎么動(dòng)手學(xué)習(xí) iOS 各個(gè)知識(shí)點(diǎn)絮短。

  1. AppCoda
  2. Raywenderlich

iOS 基礎(chǔ)

完整開(kāi)發(fā)了多個(gè) App 后,為了更好昨忆、更快的掌握開(kāi)發(fā)丁频,你就會(huì)有需要了解更多 iOS 基礎(chǔ)知識(shí)的訴求,包括列表的優(yōu)化邑贴、高效界面布局開(kāi)發(fā)席里、圖表圖形、圖片處理拢驾、動(dòng)畫(huà)多媒體等等奖磁。

圖形渲染 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ǔ)功能繁疤,提供了哪些界面控件等等咖为。

擴(kuò)展知識(shí)可以閱讀下面四本書(shū):

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

編程語(yǔ)言

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

  1. Objective-C 消息發(fā)送與轉(zhuǎn)發(fā)機(jī)制原理
  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 出院第三天——如何正確使用

編程語(yǔ)言 Swift 推薦閱讀書(shū)籍是《Swift 進(jìn)階》稠腊、《函數(shù)式Swift》躁染。大量Swift Playground 可以了解 Swift 編程語(yǔ)言的特性,這里有份整理 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. 吞彤。這里有本在線書(shū)詳細(xì)講解了 Combine
《Using Combine》

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

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

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

開(kāi)發(fā)工具

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

iOS 開(kāi)發(fā)工具 Xcode井仰、Instrument 的使用學(xué)習(xí)懂盐,推薦看蘋(píng)果開(kāi)發(fā)者大會(huì) WWDC 的 Session 視頻。

擴(kuò)展閱讀文章推薦:

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

閱讀書(shū)籍推薦:

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

開(kāi)發(fā)完成

當(dāng)開(kāi)發(fā)完成后就需要進(jìn)行調(diào)試糕档、持續(xù)化交付莉恼、測(cè)試拌喉。

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

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

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

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

測(cè)試擴(kuò)展閱讀推薦文章如下:

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

上線后

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

推薦的擴(kuò)展閱讀如下:

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

計(jì)算機(jī)基礎(chǔ)

經(jīng)歷多次 App 開(kāi)發(fā)到上線后的過(guò)程吝岭,碰到問(wèn)題三痰,解決問(wèn)題,越發(fā)覺(jué)得計(jì)算機(jī)基礎(chǔ)的重要性窜管。牢固的基礎(chǔ)能有利于碰到問(wèn)題時(shí)快速定位和解決散劫。

推薦擴(kuò)展閱讀文章和資源如下:

  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)控

通用知識(shí)

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

推薦擴(kuò)展閱讀文章有:

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

專有知識(shí)

專有知識(shí)我就不展開(kāi)說(shuō)了颜凯,參考上面輿圖中標(biāo)注的知識(shí)點(diǎn)去檢索你需要的就可以了。

視野

推薦手冊(cè):

  1. Apple Developer Documentation
  2. Swift 開(kāi)發(fā)手冊(cè)

開(kāi)源控件:

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

視頻推薦 Swift Talk - objc.io 仗扬。

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

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市诅蝶,隨后出現(xiàn)的幾起案子退个,更是在濱河造成了極大的恐慌,老刑警劉巖调炬,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件语盈,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡缰泡,警方通過(guò)查閱死者的電腦和手機(jī)刀荒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人缠借,你說(shuō)我怎么就攤上這事干毅。” “怎么了泼返?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵硝逢,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我绅喉,道長(zhǎng)渠鸽,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任柴罐,我火速辦了婚禮徽缚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘丽蝎。我一直安慰自己猎拨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布屠阻。 她就那樣靜靜地躺著红省,像睡著了一般。 火紅的嫁衣襯著肌膚如雪国觉。 梳的紋絲不亂的頭發(fā)上吧恃,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音麻诀,去河邊找鬼痕寓。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蝇闭,可吹牛的內(nèi)容都是我干的呻率。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼呻引,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼礼仗!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起逻悠,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤元践,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后童谒,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體单旁,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年饥伊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了象浑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蔫饰。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖融柬,靈堂內(nèi)的尸體忽然破棺而出死嗦,到底是詐尸還是另有隱情,我是刑警寧澤粒氧,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布越除,位于F島的核電站,受9級(jí)特大地震影響外盯,放射性物質(zhì)發(fā)生泄漏摘盆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一饱苟、第九天 我趴在偏房一處隱蔽的房頂上張望孩擂。 院中可真熱鬧,春花似錦箱熬、人聲如沸类垦。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蚤认。三九已至,卻和暖如春糕伐,著一層夾襖步出監(jiān)牢的瞬間砰琢,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工良瞧, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留陪汽,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓褥蚯,卻偏偏與公主長(zhǎng)得像挚冤,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子赞庶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容