Latest 3.1
Homepage https://github.com/mergesort/Communicado
License MIT
Platforms ios 9.0, requires ARC
Frameworks Foundation, MessageUI, Photos, Social
Authors

Sharing on iOS made easy.

BuddyBuild
Pod Version
Swift Version
License MIT
Plaform


Are you tired of rewriting the same sharing code over and over again?

Communicado

Me too!

Communicado

That’s why I wrote Communicado! Let’s show you how it’s done.

Sharing

The first thing to know is can share from any UIViewController that conforms to SharingCapableViewController. Once you add this, you will get a share function on UIViewController which supports many built in sharing types.

You can share to:

  • Messages
  • Mail
  • Pasteboard
  • Photos
  • UIActivityController
  • Twitter (iOS 10.3 and lower)
  • Facebook (iOS 10.3 and lower)
  • Sina Weibo (iOS 10.3 and lower)
  • Tencent Weibo (iOS 10.3 and lower)

Each sharing destination takes in parameters. Let’s try a simple example.

let heartImageData = UIImagePNGRepresentation(myHeartImage)
let attachment = Attachment(attachmentType: AttachmentType.png, filename: "heart.png", data: heartImageData)
let messageParameters = MessageShareParameters(message: "I ❤️ Communicado", attachments: [ attachment ])

Now let’s call the ONLY method that’s even available to you.

self.share(messageParameters)

And when you’re done, you’ll get one unified callback with the information of how the share attempt went.

self.sharingCompleted = { shareResult in
    print("Was successful? (shareResult.success)")
    print("Sharing service: (shareResult.sharingService)")
}

You can do the same for the other sharing destinations as well.

self.share(MailShareParameters)
self.share(SocialShareParameters)
self.share(ActivityShareParameters)
self.share(PhotosShareParameters)
self.share(PasteboardShareParameters)

Styling


You can also use Communicado to style the MFMailComposeViewController and MFMessageComposeViewController with just a few lines of code. This works around all of the hoops Apple makes you jump through to style the built in sharing controllers.

All you have to do is:

self.sharingTitleTextAttributes = [
    NSAttributedString.Key.foregroundColor : UIColor.white,
    NSAttributedString.Key.font : UIFont.systemFont(ofSize: 21.0)
]

self.sharingBarButtonItemAttributes = [
    NSAttributedString.Key.foregroundColor : UIColor.purple,
    NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16.0)
]

self.sharingBackgroundColor = UIColor.blue

And get something that looks like this:

Communicado

Beautiful, isn’t it?

Communicado

Requirements

  • iOS 9.0+
  • Xcode 8.0+

Installation

For Swift 3 support, use version 2.0.2.
For Swift 4 support, you can use version 3.0.
For Swift 4.2 support, you can use version 3.1 or above.

You can use CocoaPods to install Communicado by adding it to your Podfile:

platform :ios, '9.0'
use_frameworks!

pod 'Communicado'

Or install it manually by downloading all the files in the Source folder and dropping them into your project.

About me

Hi, I’m Joe everywhere on the web, but especially on Twitter.

License

See the license for more information about how you can use Communicado. I promise it’s not GPL, because I am not "that guy".

The end?

Yes, this is the end. Hopefully Communicado makes your life easier. It probably won’t help you pay your rent, but it might make it easier to share in your app.

Latest podspec

{
    "name": "Communicado",
    "version": "3.1",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "homepage": "https://github.com/mergesort/Communicado",
    "authors": {
        "Joe Fabisevich": "[email protected]"
    },
    "summary": "The easiest way to share from your app to anywhere, because you've got so much to say!",
    "source": {
        "git": "https://github.com/mergesort/Communicado.git",
        "tag": "3.1"
    },
    "source_files": "Source/*.swift",
    "frameworks": [
        "Foundation",
        "MessageUI",
        "Photos",
        "Social"
    ],
    "requires_arc": true,
    "social_media_url": "https://twitter.com/mergesort",
    "platforms": {
        "ios": "9.0"
    },
    "swift_version": "4.2"
}

Pin It on Pinterest

Share This