Latest 0.3.0
Homepage https://github.com/phimage/ApplicationGroupKit
License MIT
Platforms ios 8.0, osx 10.9, tvos 9.0
Dependencies Prephirences
Authors

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

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

: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.

  1. Add the project to your Podfile.

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

Latest podspec

{
    "name": "ApplicationGroupKit",
    "version": "0.3.0",
    "summary": "Share information between your applications and extensions",
    "homepage": "https://github.com/phimage/ApplicationGroupKit",
    "license": "MIT",
    "authors": {
        "phimage": "[email protected]"
    },
    "platforms": {
        "ios": "8.0",
        "osx": "10.9",
        "tvos": "9.0"
    },
    "source": {
        "git": "https://github.com/phimage/ApplicationGroupKit.git",
        "tag": "0.3.0"
    },
    "default_subspecs": "Core",
    "dependencies": {
        "Prephirences": []
    },
    "pushed_with_swift_version": "3.0",
    "subspecs": [
        {
            "name": "Core",
            "source_files": "Sources/*.swift"
        }
    ]
}

Pin It on Pinterest

Share This