Awesome
ApplicationGroupKit
<img align="left" src="logo.png" hspace="20"> Applications communication using group identifier.
let appGroup = ApplicationGroup(identifier: "group.id")
appGroup.postMessage("your message", withIdentifier: "key")
appGroup.observeMessageForIdentifier("key") { message in
...
}
Usage
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)!
:warning: ApplicationGroup
could return nil
if you misconfigured application group.
Post a message
Choose a message identifier and post any NSCoding
compliant object
appGroup.postMessage("your message", withIdentifier: "key to identify message")
Using subscript
appGroup["key to identify message"] = "your message"
Receive a message
Using the same message identifier you can receive message into callback
appGroup.observeMessageForIdentifier("key to identify message") { message in
..
}
Read a message
You can read current value using same message identifier
if let message = appGroup.messageForIdentifier("key to identify message") {
..
}
Using subscript
if let message = appGroup["key to identify message"] as? String { .. }
Todo
- Tests
- WatchKit (WatchConnectivity/WCSession...)
- Carthage: let me know if carthage work and I will add the shell.io badges and installation instruction
Contribute
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)
Installation
Using CocoaPods
CocoaPods is a centralized dependency manager for Objective-C and Swift. Go here to learn more.
-
Add the project to your Podfile.
use_frameworks! pod 'ApplicationGroupKit'
-
Run
pod install
and open the.xcworkspace
file to launch Xcode.