DoubleLLL

V1

2022/06/14阅读:38主题:橙心

iOS | 妈妈再也不用担心我找不到 iOS 学习资料啦

大家好,这里是 Bo2SS,上次提到了应用开发篇还差一份资料推荐的加餐,这不马上加上~

互联网时代,学习资料基本上是应有尽有、琳琅满目了,但对于学习者来说,选择适合自己的优质学习资料已经成为一大难题。

如果能够快速找到经过检验的、适合自己的学习资料,不仅可以提升我们的学习效率,还能帮助我们快速解决现阶段遇到的问题。

所以,这份加餐主要是整理了作者推荐的一些在线资源相关书籍,开发者们赶快收藏起来吧!


关键字」Open Source、知名公众号、Apple 官方资源、修炼内功


在线资源

系统学习

Open-Source iOS Apps[1]:收录了很多优秀的、完整的开源 App,分类细致,并专门标记了上架 App Store 的 App,适合通过完整的例子学习 App 开发。

Awesome iOS[2]

  • 众所周知的 Awesome 系列,但凡是有一定知名度的领域,都有自己的 Awesome xxx 项目。

  • 它最大的特点就是大而全,囊括了从开发、调试到发布的各种学习资料,也包含了博客、书籍、教程、播客和邮件订阅等推荐。

  • 同时,还有更细分的 Awesome 子系列推荐,比如 Awesome ARKit[3]Awesome iOS Interview[4](一款收集了常见面试问题的 App,上架了 App Store,亲测使用需要借助梯子🪜)。

  • 最后作者建议,当你遇到任何 iOS 的问题时,都应该先到这个网站看看

Awesome iOS Interview
Awesome iOS Interview

查漏补缺

界面交互

  • Cocoa Controls[5]iOS Examples (Swift)[6]:收集了大量开源库,分类细致,非常适合找“轮子”或学习实现思想。

冷知识点

  • NSHipster[7]:由 AFNetworking 和 Alamofire 的作者 Mattt 维护的网站,主要关注一些不常用的 iOS 知识点。

开发者 / 团队

  • Swift 知名开发者[8]:了解走在 iOS 领域前沿开发者的视野和 iOS 最新的动向。

  • Swift 开源项目团队[9]:如果你正在使用他们的开源项目,通过关注他们的动向,可以随时了解这些开源项目的最新进展。

  • PS:iOS 知名开发者基本都偏向 Swift 了。

我关注的一些公众号

  • 老司机技术周报(定期周报)、iOS 成长之路(定期周报)、starming(作者本人)、SwiftGG翻译组(关注 Apple 生态)、Bo2SS(与你一起成长👀)。

  • 「公众号里附上链接」

其它

  • iOS开发者值得关注的网站推荐[10]:从社区到周报到博客到工具等的精心推荐。

官方资源

💡 当然还少不了对 Apple 官方资源的关注:

  • WWDC[11]:苹果每年举办的全球开发者大会,可使用 WWDC App for macOS[12] 提升观看体验。

    • WWDC NOTES[13]:收集了 WWDC 视频对应的优质笔记,相比观看视频,可用来快速回顾,甚至节省时间。

    • WWDC Community[14]:跟踪近期各种 WWDC 活动、新闻和教程。

  • Human Interface Guidelines[15](人机交互指南)

  • API 帮助文档[16]

WWDC22
WWDC22

相关书籍

如果你想要透彻地掌握某领域的专业知识,还是需要静下心,通过阅读相关书籍来慢慢学习。

Objective-C

Objective-C 编程[17]》、《iOS 编程[18]》:

  • The Big Nerd Ranch[19] 出品,均属于不错的入门书

  • 目前自己就在过一遍,有机会整理出一些笔记。

Objective-C 高级编程[20]》:

  • 围绕 OC 中 3 个核心知识点展开:内存管理、Block、GCD(Grand Central Dispatch)

  • 基于苹果公开的源码,讲解透彻。

Effective Objective-C 2.0[21]》:

  • 众所周知的 Effective 系列,但凡是有一定知名度的语言,都有……

  • 从语法、接口与 api 设计、内存管理、框架等 7 大方面总结和探讨了 OC 编程中 52 个鲜为人知和容易被忽视的特性与陷阱,属于进阶读物

Swift

Raywenderlich > Books[22] 平台:

  • 一步一步教你掌握一些开发知识,内容非常实用,质量非常不错。

  • 涉及面很广,比如 ARKit、数据结构和算法的 Swift 版、设计模式、Core Data、iOS 动画、Apple 调试和逆向工程、RxSwift、Realm 和游戏开发等等。

  • 此外,该网站还包含学习路径、视频和文章等其它优质内容。

objc.io[23] 平台:

  • 从原理和源代码实现的角度来讲解知识点。

  • 内容比 Raywenderlich 出版的图书更深入,适合有一定 iOS 开发经验的人阅读。

Source: InfoQ
Source: InfoQ

不变的通用知识

程序员的自我修养 - 链接、装载与库[24]》:

  • 详细且深入地讲解了硬件、操作系统、线程的知识,帮你从代码编译、链接到运行时内存虚拟空间和物理空间映射的角度,了解一个程序从编写到运行时的底层知识的方方面面,有助于你理解系统工作原理

  • 阅读本书之前,你需要先掌握 CPU、计算机原理、汇编、编译原理、C 语言、C++ 语言等计算机学科的基本知识。

架构整洁之道[25]》:

  • 创造“Clean 神话”的 Bob 大叔在架构领域的登峰之作,里面架构设计的思想永远不会过时,并适用于所有的知识领域。

  • 详细分析了架构的目标价值、编程范式、架构设计原则、组件拆分和边界处理,并通过实践案例把所讲知识都串了起来,便于读者理解。

  • 当你有了大量编程经验,需要考虑工程架构合理性的时候,推荐阅读。

💡:很多经典值得你反复阅读,不同阶段阅读也会有不同的体会和收获。

小结:有些知识是不会变的,只要抓住这些知识,不管上层如何变化,你都能抓住核心,掌握技术的走向,也就不会感到知识焦虑。


其它:热点问题答疑(三)

什么是 WatchDog 机制?

Source: CSDN
Source: CSDN
  • WatchDog 机制是苹果公司设计的,一种为了避免 App 界面无响应造成用户无法操作,而强杀掉 App 进程的机制。

  • 造成 App 界面无响应的原因种类太多,于是苹果公司采用了一刀切的做法:凡是主线程卡死一定的时间就会被 WatchDog 机制强杀掉(这个卡死时间,WatchDog 在 App 启动时设置的是 20 秒,前台时设置的是 10 秒,后台时设置的是 10 分钟)。

  • 由于 WatchDog 强杀日志属于系统日志,所以你的 App 上线后需要自己来监控卡顿,这样才能够在 WatchDog 强杀之前捕获到 App 卡死的情况,可参考苹果公司关于崩溃分析的文档:Diagnosing Issues Using Crash Reports and Device Logs[26]


对于第三方库的使用,作者建议:

  • 如果和业务强相关,比如埋点或者 A/B 测试这样的库,最好是自建,然后可以借鉴开源库的思路;

  • 对于一些通用性强的基础库,比如网络库和持续化存储的库,可以直接使用成熟的第三方库,既可以节省开发和维护成本,又能够提高产品质量;

  • ➕还有种情况就是,对于较小的、只有几个 iOS 开发人员的团队来说,还是尽可能使用开源项目,可以优先去 Awesome iOS[27](前文提到过)上找适合团队的项目。

PS:有评论推荐 Firebase 的 A/B Testing SDK,它整合了数据上报、数据分析、PUSH 消息和 AI 预测等Firebase 的其他功能,这样大大降低了数据分析的成本。


好啦,应用开发篇到此结束!下次就要真正开始原理篇的内容了。

如果你还有一些非常不错的学习资料,欢迎在下方给 Bo2SS 留言推荐,也欢迎转发本文给有需要的朋友~

咱们下次见!

参考资料

[1]

Open-Source iOS Apps: https://github.com/dkhamsing/open-source-ios-apps

[2]

Awesome iOS: https://github.com/vsouza/awesome-ios

[3]

Awesome ARKit: https://github.com/olucurious/Awesome-ARKit

[4]

Awesome iOS Interview: https://github.com/dashvlas/awesome-ios-interview

[5]

Cocoa Controls: https://www.cocoacontrols.com/

[6]

iOS Examples (Swift): https://iosexample.com/

[7]

NSHipster: https://nshipster.com/

[8]

Swift 知名开发者: https://github.com/ipader/SwiftGuide/blob/master/2019/SwiftDevelopers.md

[9]

Swift 开源项目团队: https://github.com/ipader/SwiftGuide/blob/master/2019/SwiftDevelopmentTeam.md

[10]

iOS开发者值得关注的网站推荐: https://www.jianshu.com/p/1a94549364d6

[11]

WWDC: https://developer.apple.com/videos/

[12]

WWDC App for macOS: https://wwdc.io/

[13]

WWDC NOTES: https://wwdcnotes.com/

[14]

WWDC Community: https://github.com/twostraws/wwdc

[15]

Human Interface Guidelines: https://developer.apple.com/design/human-interface-guidelines/ios/overview/themes/

[16]

API 帮助文档: https://developer.apple.com/search/?q=uiview

[17]

Objective-C 编程: https://book.douban.com/subject/26613294/

[18]

iOS 编程: https://book.douban.com/subject/26287812/

[19]

The Big Nerd Ranch: https://bignerdranch.com/books/

[20]

Objective-C 高级编程: https://book.douban.com/subject/24720270/

[21]

Effective Objective-C 2.0: https://book.douban.com/subject/25829244/

[22]

Raywenderlich > Books: https://www.raywenderlich.com/ios/books

[23]

objc.io: https://www.objc.io/books/

[24]

程序员的自我修养 - 链接、装载与库: https://book.douban.com/subject/3652388/

[25]

架构整洁之道: https://book.douban.com/subject/30333919/

[26]

Diagnosing Issues Using Crash Reports and Device Logs: https://developer.apple.com/documentation/xcode/diagnosing-issues-using-crash-reports-and-device-logs

[27]

Awesome iOS: https://github.com/vsouza/awesome-ios

分类:

移动端开发

标签:

IOS

作者介绍

DoubleLLL
V1

公众号:Bo2SS