見出し画像

[cocoa][swift]Tweeting

システム側でのSNS共有のサポートが終了したり、公式のTwitter Kit SDKのサポートが停止するなどで、スマートフォン・アプリケーションにTweet機能を組み込む方法が変わってきているので、今時点のTweet機能を組み込む方法を調べてみた。

- ios
  - Social.framework
        iOS11から廃止。
  - Twitter Kit SDK
        2018年10月末でサポート終了。
- Android
  - Twitter Kit SDK
        2018年10月末でサポート終了。

方向としては、ネイティブ・コード向けライブラリの提供はやめて、Web技術を利用して欲しいということのようだ。

iOS
Universal Linksを利用した方法。Twitterアプリケーションがインストールされていない場合はWebブラウザで、インストールされている場合は、Twitterアプリケーションでの投稿となる。

- Web Intent

@IBAction func intentTweet(_ sender : Any) {
   let text = "Web Intentの例"
   let encodedText = text.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
   if let encodedText = encodedText,
       let url = URL(string: "https://twitter.com/intent/tweet?text=\(encodedText)") {
       UIApplication.shared.open(url, options: [:], completionHandler: nil)
   }
}

iOSの共有機能を提供するUIActivityViewControllerを利用する方法。Twitterアプリがインストールされていないと候補に現れないだとか、SNS共有っぽくはない。でも、テキストに加え、画像も直に共有できる。

@IBAction func activityTweet(_ sender : Any) {
   let text = "共有機能を利用する"
   let bundlePath = Bundle.main.path(forResource: "brownout", ofType: "jpg")
   let image = UIImage(contentsOfFile: bundlePath!)
   let shareItems = [image, text] as [Any]
   let controller = UIActivityViewController(activityItems: shareItems, applicationActivities: nil)
   present(controller, animated: true, completion: nil)
}

ソースコード
GitHubからどうぞ。
- https://github.com/murakami/workbook/tree/master/ios/Tweets - GitHub

【関連情報】
Cocoa.swift
Cocoa勉強会 関東
- Cocoa練習帳

この記事が気に入ったらサポートをしてみませんか?