Nexus: AW and iPhone Communication Service

nexus

License Platform Swift5.7 CI CodeCov

描述

Nexus 是 WatchConnectivity 的一个封装,简化了 watchOS 和 iOS 之间的交互。

用法

  1. 像这样定义一个消息模型
import Nexus

struct TestMessage: Message {
  static let identifier: String {
    return "TestModel"
  }
}
  1. 创建 CommunicationService 的一个实例并订阅以接收消息
import Nexus

var disposables = Set<AnyCancellable>()
let communicationService = CommunicationService()
communicationService.receiveMessage(TestMessage.self)
  .sink(receiveCompletion: { result in 
    if case let .failure(error) = result {
      // something went wrong
    }, receiveValue: { message in 
      debugPrint(message)
    }
  })
  .store(in: &disposables)
  1. 发送消息到 Apple Watch 或 iPhone
import Nexus

let message = TestMessage()
communicationService.sendMessage(message)

要求

安装

Swift Package Manager

Swift Package Manager 是一种用于自动化 Swift 代码分发的工具,并集成到 swift 编译器中。 它还处于早期开发阶段,但 nexus 确实支持在受支持的平台上使用它。

一旦你设置好你的 Swift 包,添加 nexus 作为依赖项就像把它添加到你的 Package.swiftdependencies 值中一样简单。

dependencies: [
    .package(url: "https://github.com/space-code/nexus.git", .upToNextMajor(from: "2.0.0"))
]

通讯

贡献

引导开发环境

make bootstrap

请随时帮助这个项目! 如果您发现有什么可以做得更好或者想要新功能,请打开一个 issue 或发送一个 Pull Request!

作者

Nikita Vasilev, nv3212@gmail.com

许可证

nexus 在 MIT 许可证下可用。 有关更多信息,请参见 LICENSE 文件。