Astrarium 5.1.0

Astrarium 5.1.0

Sergei MikhanEugene FilipkovDmitry Duleba 维护。



Astrarium 5.1.0

  • Dzmitry Duleba

Astrarium

全局调度程序库

Version License Platform

安装

pod 'Astrarium', '~> 5.0'

主要概念

该库背后的主要想法是为了解决以下问题

  • 使 AppDelegate 实现更简洁;
  • 停止将管理器/处理程序作为单例对象提供接口;

Astrarium 的主要概念是 Service。在大多数情况下,服务是一个状态对象。它与应用程序的生命周期相同。通过 ServiceIdentifier 使用 Dispatcher 来访问这些服务。

初始化

要将 Astrarium 集成到您的应用程序中,您需要从 Astrarium.AppDelegate 继承您的 AppDelegate

public class AppDelegate: Astrarium.AppDelegate

然后,您需要重写服务变量并返回服务 ID 列表

  public override var services: [ServiceIds?] { return [
    .fabric,
    .firebase,
    .ui
    ]
  }

服务实现

服务本身可以访问任何 AppDelegate 回调以执行服务所需的任何操作。以下是一个简单的 UI 服务示例

extension ServiceIds {
  static let ui = ServiceIdentifier<UICoordinator>()
}

final class UICoordinator: AppService {
  func someFancyMethod() {}
  func setup(with launchOptions: LaunchOptions) {}
}

然后您可以访问服务的实例

Services[.ui]?.someFancyMethod()