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 的扩展文章阅读:

  1. Objective-C 消息发送与转发机制原理
  2. 神经病院Objective-C Runtime入院第一天——isa和Classhttps://halfrost.com/objc_runtime_isa_class/
  3. 神经病院 Objective-C Runtime 住院第二天——消息发送与转发
  4. 神经病院 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源码解析 | JKnight
  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: 行业优质博客汇总

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容

  • 前一段时间,网络上突然有一条微博中提到一句诗“我有一壶酒,足以慰风尘”,请求网友对个下联,随后就火得一塌糊涂,甚至...
    鹤壁飞雪阅读 729评论 0 0
  • 小时候,一家人在一起,父亲会和我们一起猜谜语,通常都是父亲讲,让我们猜,猜不到的,他再慢慢讲解,一家人其乐融融。讲...
    周风光泽阅读 1,766评论 19 25
  • “你负责浪,我负责划船。” 当时,我觉得我的世界原来是可以有色彩存在的。 那个我顿时满怀期待迫不及待看到灿烂的世界...
    A笑笑_32fe阅读 156评论 1 0
  • 年龄已经是成年了,身体也已经成熟了,可是情商却幼稚的很。 可能是因为家中有个几岁的妹妹吧,被她给影响的幼稚了,也可...
    译家人阅读 434评论 6 4