ApplicationGroupKit alternatives and similar libraries
Based on the "Utility" category.
Alternatively, view ApplicationGroupKit alternatives based on common mentions on social networks and blogs.
-
SwifterSwift
A handy collection of more than 500 native Swift extensions to boost your productivity. -
SwiftGen
The Swift code generator for your assets, storyboards, Localizable.strings, … — Get rid of all String-based APIs! -
SwiftGen-Storyboard
The Swift code generator for your assets, storyboards, Localizable.strings, … — Get rid of all String-based APIs! -
R.swift
Strong typed, autocompleted resources like images, fonts and segues in Swift projects -
swift-protobuf
Plugin and runtime library for using protobuf with Swift -
Dollar
A functional tool-belt for Swift Language similar to Lo-Dash or Underscore.js in Javascript -
ExSwift
a set of Swift extensions for standard types and classes. -
Periphery
A tool to identify unused code in Swift projects. -
EZSwiftExtensions
:smirk: How Swift standard types and classes were supposed to work. -
DifferenceKit
💻 A fast and flexible O(n) difference algorithm framework for Swift collection. -
LifetimeTracker
Find retain cycles / memory leaks sooner. -
Result
Swift type modelling the success/failure of arbitrary operations. -
DeepDiff
🦀Amazingly incredible extraordinary lightning fast diffing in Swift -
Device
Light weight tool for detecting the current device and screen size written in swift. -
SwiftLinkPreview
It makes a preview from an URL, grabbing all the information such as title, relevant texts and images. -
WhatsNew
Showcase new features after an app update similar to Pages, Numbers and Keynote. -
Codextended
Extensions giving Swift's Codable API type inference super powers 🦸♂️🦹♀️ -
AwesomeCache
Delightful on-disk cache (written in Swift) -
Popsicle
Delightful, extensible Swift value interpolation framework. -
Sugar
:coffee: Something sweet that goes great with your Cocoa -
protobuf-swift
Google ProtocolBuffers for Apple Swift -
SwiftyJSONAccelerator
macOS app to generate Swift 5 code for models from JSON (with Codeable) -
Playbook
📘A library for isolated developing UI components and automatically taking snapshots of them. -
ReadabilityKit
Preview extractor for news, articles and full-texts in Swift -
PDFGenerator
A simple generator of PDF written in Swift. -
ObjectiveKit
Swift-friendly API for a set of powerful Objective C runtime functions. -
Compass
:earth_africa: Compass helps you setup a central navigation system for your application -
Delegated
👷♀️ Closure-based delegation without memory leaks -
Bow
🏹 Bow is a cross-platform library for Typed Functional Programming in Swift -
Solar
A Swift micro library for generating Sunrise and Sunset times. -
Pythonic.swift
Pythonic tool-belt for Swift – a Swift implementation of selected parts of Python standard library. -
SwiftyUtils
All the reusable code that we need in each project -
Rugby
🏈 Cache CocoaPods for faster rebuild and indexing Xcode project -
Prototope
Swift library of lightweight interfaces for prototyping, bridged to JS.
Appwrite - The Open Source Firebase alternative introduces iOS support
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of ApplicationGroupKit or a related project?
README
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.
Add the project to your Podfile.
use_frameworks! pod 'ApplicationGroupKit'
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.