Code Quality Rank: L5
Programming language: Swift
License: MIT License
Tags: Utility    
Latest version: v1.0.0

ApplicationGroupKit alternatives and similar libraries

Based on the "Utility" category.
Alternatively, view ApplicationGroupKit alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of ApplicationGroupKit or a related project?

Add another 'Utility' Library



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.

*Note that all licence references and agreements mentioned in the ApplicationGroupKit README section above are relevant to that project's source code only.