Skip to content

Share informations betweens your applications and your extensions using group identifier

License

Notifications You must be signed in to change notification settings

phimage/ApplicationGroupKit

Repository files navigation

ApplicationGroupKit

License Platform Language Issues Cocoapod Join the chat at https://gitter.im/phimage/ApplicationGroupKit

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)!

⚠️ 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.

  1. Add the project to your Podfile.

    use_frameworks!
    
    pod 'ApplicationGroupKit'
  2. Run pod install and open the .xcworkspace file to launch Xcode.

About

Share informations betweens your applications and your extensions using group identifier

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •