Combine 框架,从0到1 —— 5.Combine 提供的发布者(Publishers)

| Swift , iOS , Combine

正所谓,工欲善其事,必先利其器。在开始使用 Combine 进行响应式编程之前,建议您先了解 Combine 为您提供的各种发布者(Publishers)、操作符(Operators)、订阅者(Subscribers)。合理地选择符合需求的预置功能,可以大幅度地提升您的开发效率! 这些都是 Combine 为我们提供的发布者:Just,Future,Deferred,Empty,Publishers.Sequence,Fail,Record,Share,Multicast,ObservableObject,@Published。接下来的几分钟,让我们把它们各个击破!

使用 Swift Package Manager 集成依赖库

| Swift , iOS , Xcode

在 Swift Package Manager 出现之前,我们需要使用 CococaPods, Carthage 等包管理工具来管理依赖。 现在,我们可以直接使用 Xcode 来管理依赖。Xcode 内建了对 Git 版本控制系统的支持,我们可以轻松地使用 Xcode 中的 Swift Package Manager 来管理公开的、私有的仓库中的包。

Github 个人首页的 README,这样玩儿~

| 其他 , Github

大家最近有没有发现这个现象,有些名人的Github首页变得更丰富了?尤其是那个夺目的README!!!想不想自己也弄一个呢?来,现在就开始吧~

Combine 框架,从0到1 —— 4.在 Combine 中执行异步代码

| Swift , iOS , Combine

你的应用可能会使用一些常见的模式来处理异步事件,比如:完成处理器、闭包属性。Combine 为这些模式提供了强大的替换项目。它可以让你消除这种样板代码,并且充分利用 Combine 中的操作符。当你在应用的其他地方采用 Combine 时,将异步调用点转换为 Combine 可以提高代码的一致性和可读性。 朋友,行动起来吧!把现有项目中的旧代码重构成使用 Combine 的代码~

Combine 框架,从0到1 —— 4.在 Combine 中使用 KVO

| Swift , iOS , Combine

KVO(Key-Value Observing) 是苹果开发者常用的功能,很多框架都会使用 KVO 来发送异步改动。将基于回调和闭包的 KVO 代码迁移到 Combine,可以使你的代码更优雅、更易维护。朋友,行动起来吧!把现有项目中的旧代码重构成使用 Combine 的代码~

Combine 框架,从0到1 —— 4.在 Combine 中使用计时器

| Swift , iOS , Combine

计时器是苹果开发者常用的功能。如果你的应用使用 Foundation 框架中的计时器 Timer 来周期性地执行某些操作,你可以用 Combine 简化这些代码。 现在,让我们来学习如何使用 Combine 处理计时器,并将已有的计时器处理代码迁移到 Combine。朋友,行动起来吧!把现有项目中的旧代码重构成使用 Combine 的代码~

Combine 框架,从0到1 —— 4.在 Combine 中使用通知

| Swift , iOS , Combine

通知中心是苹果开发者常用的功能,很多框架都会使用通知中心来向外部发送异步事件。现在,让我们来学习如何使用 Combine 处理通知,并将已有的通知处理代码迁移到 Combine。朋友,行动起来吧!把现有项目中的旧代码重构成使用 Combine 的代码~

Combine 框架,从0到1 —— 3.使用 Subscriber 控制发布速度

| Swift , iOS , Combine

对于大多数响应式编程场景而言,订阅者不需要对发布过程进行过多的控制。当发布者发布元素时,订阅者只需要无条件地接收即可。但是,如果发布者发布的速度过快,而订阅者接收的速度又太慢,我们该怎么解决这个问题呢?Combine 已经为我们制定了稳健的解决方案!现在,让我们来了解如何施加背压(back pressure)以精确控制发布者何时生成元素。

Combine 框架,从0到1 —— 2.通过 ConnectablePublisher 控制何时发布

| Swift , iOS , Combine

使用 Connectable Publisher, 你可以决定发布者何时开始发送订阅元素给订阅者。那么,为什么我们需要这么做?使用 sink(receiveValue:) 可以立刻开始接收订阅元素,但是这可能不是你想要的结果。当多个订阅者订阅了同一个发布者时,有可能会出现其中一个订阅者收到订阅内容,而另外一个订阅者收不到的情况。在使用 Combine 的过程中,我们往往需要面对这些问题。现在就来弄清楚如何处理这一类问题吧~

Combine 框架,从0到1 —— 1.核心概念

| Swift , iOS , Combine , MVVM , Rx

未来已来,只是尚未流行!响应式编程这个名词已经久负盛名,但是在实际项目中采用了响应式编程的公司其实不多。如果您有 iOS 开发经历,那么您多半听说过 RxSwift,而 Rx 源自微软。提到Rx,往往也会提到源自微软的 MVVM模式。 不过,本文不会讲解 MVVM。 由于 Combine 借鉴了 Rx 的思想,二者具有基本相同的特性,所以本文会同时讨论这两个大框架。 而且,如果有必要的话,我们可以通过学习开源的 RxSwift 源码来了解 Combine 的工作原理。您甚至可以这么简单粗暴的认为:Combine 就是苹果官方的 RxSwift。😅