Nexus is a wrapper around WatchConnectivity
that simplifies the interaction between watchOS and iOS.
- Define a message model like this:
import Nexus
struct TestMessage: Message {
static let identifier: String {
return "TestModel"
}
}
- Create an instance of the
CommunicationService
and subscribe to receive messages:
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)
- Send a message to Apple Watch or iPhone:
import Nexus
let message = TestMessage()
communicationService.sendMessage(message)
- iOS 13.0+ / watchOS 7.0+
- Xcode 14.0
- Swift 5.7
The Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into the swift
compiler. It is in early development, but nexus
does support its use on supported platforms.
Once you have your Swift package set up, adding nexus
as a dependency is as easy as adding it to the dependencies
value of your Package.swift
.
dependencies: [
.package(url: "https://github.com/space-code/nexus.git", .upToNextMajor(from: "2.0.0"))
]
- If you found a bug, open an issue.
- If you have a feature request, open an issue.
- If you want to contribute, submit a pull request.
Bootstrapping development environment
make bootstrap
Please feel free to help out with this project! If you see something that could be made better or want a new feature, open up an issue or send a Pull Request!
Nikita Vasilev, [email protected]
nexus is available under the MIT license. See the LICENSE file for more info.