Swiftpack.co - phimage/ApplicationGroupKit as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by phimage.
phimage/ApplicationGroupKit 1.0.0
Share informations betweens your applications and your extensions using group identifier
⭐️ 38
🕓 1 year ago
iOS macOS watchOS tvOS
.package(url: "https://github.com/phimage/ApplicationGroupKit.git", from: "1.0.0")


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


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 { .. }


  • Tests
  • WatchKit (WatchConnectivity/WCSession...)
  • Carthage: let me know if carthage work and I will add the shell.io badges and installation instruction


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)


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.

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


Stars: 38
Last commit: 1 year ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.


Release Notes

swift 5
1 year ago

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics