CocoaPods trunk is moving to be read-only. Read more on the blog, there are 14 months to go.
| TestsTested | ✗ | 
| LangLanguage | SwiftSwift | 
| License | MIT | 
| ReleasedLast Release | Apr 2017 | 
| SwiftSwift Version | 3.0 | 
| SPMSupports SPM | ✗ | 
Maintained by phimage.
 Applications communication using group identifier.
 Applications communication using group identifier.
let appGroup = ApplicationGroup(identifier: "group.id")
appGroup.postMessage("your message", withIdentifier: "key")appGroup.observeMessageForIdentifier("key") { message in
 ...
}The data sharing between applications and extensions require you to enable App Group or Keychain sharing (if using key chain messenger type):
Then you must create an ApplicationGroup object.
let appGroup = ApplicationGroup(identifier: "your.application.group.id")!You can choose the way the messages are transferred by choosing one of the MessengerType enum value (File, UserDefaults, FileCoordinator, KeyChain, …)
let appGroup = ApplicationGroup(identifier: "..", messengerType: .UserDefaults)!ApplicationGroup could return nil if you misconfigured application group.
Choose a message identifier and post any NSCoding compliant object
appGroup.postMessage("your message", withIdentifier: "key to identify message")appGroup["key to identify message"] = "your message"Using the same message identifier you can receive message into callback
appGroup.observeMessageForIdentifier("key to identify message") { message in
 ..
}You can read current value using same message identifier
if let message = appGroup.messageForIdentifier("key to identify message") {
  ..
}if let message = appGroup["key to identify message"] as? String { .. }I am more than happy to accept external contributions to the project in the form of feedback, bug reports and even better pull requests.
Implement WatchKit features and I will add you to the project (I have no need and time to do it now)