[译]想成为高级 iOS 开发者(Swift)?这些资料你不容错过

原文:Best resources for Advanced iOS Developer (Swift)

作者:Pavlo Shadov

点赞评论,希望能在你的帮助下越来越好

作者:@iOS成长指北,本文首发于公众号 iOS成长指北,欢迎各位前往指正

如有转载需求请联系我,记住一定要联系哦!!!

当然,以我的拙见(更新时间](2019年10月10日)

在很长一段时间以来,我的浏览器里有一个文件夹,里面有一些关于 iOS development + Swift 的文章和视频,这些文章和视频对我很有帮助。我敢肯定,大多数开发人员都有自己的库,里面有最好的东西。

所以我决定分享我的信息

更新历史

  • 2017 年 12 月 10 日](添加了调试部分
  • 2019 年 9 月 8 日](增加模块化、用户体验、软技能
  • 2019 年 10 月 10 日](增加了SwiftUI、Combine、CI&CD、机器学习

设计模式

  • 良好的 iOS 应用程序架构:MVVM vs. MVC vs. VIPER —— academy.realm.io

    MVVM、MVC、VIPER…… 这么多缩写词,哪种架构最好?让我们来谈谈对于良好的 iOS应用程序架构而言至关重要的事情。

  • 驯服极大的复杂性:MVVM,协调器和 RxSwift —— blog.uptech.team

    去年,我们的团队开始在生产应用程序中使用协调器和 MVVM。一开始看起来很吓人,但从那以后,我们已经完成了 4 个基于这些架构模式构建的应用程序...

  • Khanlou 的协调器 Redux —— khanlou.com

    应用程序委托是任何应用程序的入口点。它的主要职责是从操作系统到应用程序的子系统来回传递消息...

  • Khanlou 的 8 种模式助你处理巨大的视图控制器—— khanlou.com

    视图控制器之所以变得庞大,是因为它们做了太多的事情...

  • iOS 架构模式 —— medium.com

    揭开 MVC,MVP,MVVM 和 VIPER 的神秘面纱

  • 高级 iOS 教程之MVVM —— medium.com

    如何利用 MVVM 处理复杂的表视图

  • MVVM简介—— objc.io

    objc.io 出版有关用于 iOS 和 macOS 开发的高级技术的书籍,视频和文章。

  • 用 VIPER 构建 iOS 应用程序—— objc.io

    objc.io 出版有关用于 iOS 和 macOS 开发的高级技术的书籍,视频和文章。

  • 依赖注入 —— objc.io

    objc.io 出版有关用于 iOS 和 macOS 开发的高级技术的书籍,视频和文章。

  • 依赖注入,iOS 和你—— bignerdranch.com

    面向对象编程就是利用网络对象及其相互发送的消息来描述软件问题...

  • 应用于 Swift 的 SOLID 原理—— marcosantadev.com

    可维护的组件。可重复使用的。只是个梦?也许不是,SOLID 原则可能就是这样。

  • 更好的 MVC—— davedelong.com

    他就是这个人,你知道吗?(喜欢这个 Slogan )

  • 出色的 iOS 架构—— github.com

    构建应用程序的更好方法

模块化

  • iOS 模块化:Wayfair App 的模块化 —— tech.wayfair.com

    在 Wayfair,我们面临着普通 iOS开发者可能永远不会遇到的挑战。在过去的 8 个月里,我们已经有 47 个不同的开发人员向我们的代码仓库提交了超过 2000 个提交...

  • iOS 上的模块化架构以及我如何将构建时间减少 50% —— medium.com

    最近,我被 Freelancer 聘为 iOS 工程师,负责他们的核心 iOS 应用程序...

  • iOS中的模块化架构 —— medium.com

    在大型项目中,甚至在任何项目中,创建、运行和测试独立部件的能力都是必要的。。。

  • 优化应用启动时间 —— developer.apple.com

    启动应用程序是一个复杂而微妙的过程,不同应用程序设计模式对启动时间的影响往往不明显...

协议编程

  • 协议不仅仅是语法包 —— oleb.net

    语义是协议的重要组成部分,你不能针对它们编写有用的通用算法...

  • 具有关联类型的泛型协议 —— blog.bobthedeveloper.io

    了解如何创建泛型协议和重写关联类型

  • Swift:什么是关联类型的协议? —— natashatherobot.com

    我最近发表了有关关联类型协议(PAT)的演讲 —— 我担心我的听众已经了解了有关PAT的所有知识,但事实恰恰相反...

  • Swift 世界:类型擦除 —— medium.com

    本文以协议和泛型的两个引号开头。两者都是 Swift 的核心功能。众所周知,有类,结构和枚举的泛型。那么协议呢?...

  • 用 Swift 编写网络层:面向协议的方法 —— medium.com

    在本指南中,我们将了解如何在没有任何第三方库的情况下在纯 Swift 中实现网络层(参照常见网络库的源码,希望能引起思考)

  • 保持冷静以及类型擦除 —— academy.realm.io

    就在你认为拥有明确的类型是 Swift 的一种正确方法时,事实证明有时候类型擦除是必要的...

  • Swift 中的面向协议编程 —— developer.apple.com

    Swift 的设计核心是两个令人难以置信的强大想法:面向协议的编程和第一类值语义...

  • Swift 和 Objective-C中的协议组成 —— jessesquires.com

    Swift 和 Objective-C 中的协议是强大的解耦代码的工具。它们允许你指定使用它们的类之间的协定...

  • 对 AnySequence 的一点尊重—— robnapier.net

    曾几何时,当 Swift 还年轻的时候,分别称为 SequenceOfGeneratorOf,他们可以进行类型擦除。

集合

  • 你想了解的有关 Sequence 和 Collection 的一切 —— academy.realm.io

    我叫 Soroush。我在这里告诉你有关 Sequence 和 Collection的所有信息...

  • Swift 5.1 Collection Diffing —— fivestars.blog

    在本文中,我将精确地做到这一点](在5000多个单词的基础上,结合大量的技术和代码...(关于Collection Diffing 实现的一次探究,与源码不同但值得品位)

闭包

  • 在 Swift 3 如何中使用自动闭包和 @autoclosure —— cocoacasts.com

    即使你可能不知道什么是自动闭包,但我敢打赌你已经在不知道的情况下使用了自动闭包...

  • 在Swift 3 中 @scaping 和 @noescape 意味着什么 —— cocoacasts.com

    入门 Swift 可能很容易,但是,随着你越来越频繁地使用这种语言,你逐渐接触到 Swift 更复杂的结构...

  • 你不(总是)需要 [weak self] —— medium.com

    正如标题所言...

并发

  • 所有关于 Swift 中的并发——第1部分:现在 —— uraimo.com

    在本文将涵盖Foundation 框架中的锁、线程和计时器到语言保证以及最近改进的Grand Central Dispatch和Operation Queue 的所有内容...

  • 深入研究 Swift 中的 Grand Central Dispatch —— swiftbysundell.com

    诚如标题,深入...

  • Swift 并行编程:基础知识 —— medium.com

  • Swift 并行编程:Operations —— medium.com

  • Swift 并行编程:Promises —— medium.com

  • Swift 并行编程:可能出什么问题了? —— medium.com

    诚如所见,这就是一个系列的所有文章了

方法派发

  • Swift 中的方法派发 —— rightpoint.com

    方法派发是指程序在调用方法时如何选择要执行的指令的方法...

JSON 解析

  • 使用 Swift 进行 JSON 解析的终极指南 —— benscheirman.com

    在 Swift 4 之前,解析JSON是处理非类型化数组和字典的常见(但很麻烦)过程。现在 Swift 附带了 Codable,一个功能强大的编码和解码系统...

Debugging

  • 与调试器共舞 - LLDB 的华尔兹 —— objc.io

    objc.io 的文章都能找到中文版,因为主要文章都很经典...

  • 用 LLDB 调试 Swift 代码 —— medium.com

    作为工程师,我们将近 70% 的时间用于调试。剩下的 20% 会继续考虑架构方法以及与队友之间的交流,而实际上只有 10% 会编写代码...

  • 使用 Xcode 的可视化调试器和 Instruments 模块防止内存过度使用 —— rderik.com

    向用户交付应用程序之前的一个重要步骤是确保应用程序没有过度使用用户的资源...

  • Xcode 高级调试 —— medium.com

    正确使用调试工具可以帮助开发人员节省大量时间...(有视频哦)

测试

  • 单元测试,如何编写可测试代码,以及为什么它很重要—— toptal.com

    你真的会写单元测试吗?以及如何编写可测试的代码...

  • 使用 XCTest 在 Swift 中测试代理 —— mokacoding.com

    请注意其相关文章的阅读,对你来说这可能真的挺重要的...

  • 使用Swift进行更好的单元测试—— masilotti.com

    在过去的几个月中,我在 Swift 中进行了一些“实际”单元测试,并总结了一些概念...

  • iOS 上的常见单元测试技术 —— marisibrothers.com

    大多数(如果不是所有的话)iOS 上的单元测试用例都可以遵循同一个众所周知的模式](给定一组初始条件,当发生某些事情时,就可以预料到某些事情...

  • 使 Mock 对象更加有用 —— academy.realm.io

    Mock 对象的设计改变了我们编写单元测试的方式...

  • Swift 网络单元测试完整指南 —— medium.com

    面对现实吧,编写测试在 iOS 开发中并不那么常见(至少与为后端编写测试相比)... 这才是真的现实

CI & CD

  • 构建,测试,交付!完整的使用 fastlane 和 Jenkins 的 iOS 持续集成指南 —— medium.com
  • 如何轻松的为 iOS 项目GitLab持续集成 —— medium.com

FRP/RxSwift

  • Swift 中超赞的函数式-响应式编程 —— academy.realm.io

    喜欢函数式还是喜欢响应式,为什么不一起呢?...

  • 学习和掌握 RxSwift 的基础知识只需 10 分钟 —— medium.com

    希望不是标题党...

  • RxSwift 示例1 – 基础 —— thedroidsonroids.com

    开启你 RxSwift 旅程的第一个示例

  • RxMarble:Rx 观察者的交互图表 —— rxmarbles.com

  • 图解 Swift 中的 Functor、Applicative 和 Monads —— mokacoding.com

    人人都爱图解,因为文字确实不容易让人看懂

Combine

  • 通过 Combine Swift 解决问题 —— medium.com

  • Combine 能替代 RxSwift吗? —— medium.com

  • SwiftUI 和 Combine:更好地结合 —— medium.com

    SwiftUI 和 Combine 将帮助你构建更好的应用程序...

SwiftUI

  • SwiftUI - 如何开始一个项目 —— medium.com
  • 使用 SwiftUI 的收获 —— medium.com
  • SwiftUI - 理解状态 —— medium.com
  • SwiftUI - 动态列表和 Identifiable —— medium.com
  • 使用 SwiftUI 快速进行应用原型设计 —— medium.com
  • 简述 SwiftUI 视图的生命周期 —— medium.com

iOS 中的机器学习

  • iOS 中的机器学习:Turi Create 和 CoreML —— medium.com

  • iOS 中的机器学习:Azure Custom Vision 和 CoreML —— medium.com

  • iOS 中的机器学习:IBM Watson和CoreML —— medium.com

    iOS 机器学习三部曲...

UX

  • 底部导航设计的黄金法则 —— shrikar.com

    设计不仅仅只是为了好看...

  • 为什么以及如何避免这样的 Hamburger Menus 或 Basements —— lmjabreu.com

  • 网页设计中的Push 和 Pull ——ui-patterns.com

  • 为移动开发人员准备的设计终极指南 —— medium.com

Soft skills(软技能)

  • 加速成为 iOS 开发者—— youtu.be
  • 作为一名软件开发人员,如何保持专注? —— medium.com

Other

  • Friday Q&A —— mikeash.com

    每一个问答都是对底层的探究...

  • 输出调试信息—— ryanipete.com

    从 Raywenderlich 的调试宝典《 Advanced Apple Debugging & Reverse Engineering》的经验,讲解一些调试技巧...

  • 改进可选项 —— russbishop.net

    可选项毫无意外,很棒的改进。但有时你想用可选对象做一些事情,或者可选对象是一种特定类型的时候,你需要一些技巧...

等等

可能我会编辑并添加更多很酷的资源到这个笔记中。如果你的清单中还有其他“必备品”,请随时在评论中与我分享

如果这篇文章对你有用,不要害羞点赞、评论、分享!


如果你有任何问题,请直接评论,如果文章有任何不对的地方,请随意表达。如果你愿意,可以通过分享这篇文章来让更多的人发现它。

感谢你阅读本文!

你可能感兴趣的:([译]想成为高级 iOS 开发者(Swift)?这些资料你不容错过)