https://github.com/space-code/nexus
A watch connectivity wrapper
https://github.com/space-code/nexus
ios swift swift-package-manager watchos
Last synced: 12 months ago
JSON representation
A watch connectivity wrapper
- Host: GitHub
- URL: https://github.com/space-code/nexus
- Owner: space-code
- License: mit
- Created: 2023-01-27T04:11:20.000Z (about 3 years ago)
- Default Branch: dev
- Last Pushed: 2023-09-19T14:57:07.000Z (over 2 years ago)
- Last Synced: 2025-02-11T18:15:30.797Z (about 1 year ago)
- Topics: ios, swift, swift-package-manager, watchos
- Language: Swift
- Homepage:
- Size: 312 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

nexus
## Description
Nexus is a wrapper around `WatchConnectivity` that simplifies the interaction between watchOS and iOS.
- [Usage](#usage)
- [Requirements](#requirements)
- [Installation](#installation)
- [Communication](#communication)
- [Contributing](#contributing)
- [Author](#author)
- [License](#license)
## Usage
1. Define a message model like this:
```swift
import Nexus
struct TestMessage: Message {
static let identifier: String {
return "TestModel"
}
}
```
2. Create an instance of the `CommunicationService` and subscribe to receive messages:
```swift
import Nexus
var disposables = Set()
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)
```
3. Send a message to Apple Watch or iPhone:
```swift
import Nexus
let message = TestMessage()
communicationService.sendMessage(message)
```
## Requirements
- iOS 13.0+ / watchOS 7.0+
- Xcode 14.0
- Swift 5.7
## Installation
### Swift Package Manager
The [Swift Package Manager](https://swift.org/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`.
```swift
dependencies: [
.package(url: "https://github.com/space-code/nexus.git", .upToNextMajor(from: "2.0.0"))
]
```
## Communication
- 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.
## Contributing
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!
## Author
Nikita Vasilev, nv3212@gmail.com
## License
nexus is available under the MIT license. See the LICENSE file for more info.