Twitter にツイート投稿する iOS アプリのサンプルコードを書いてみた。 Storyboard を使わずに、GUIを組み立てなくても、サンプルコードをコピペするだけで動作する。

今回の動作確認環境: Xcode 7.1.1 + Swift 2.1 + 実機 iPhone 6 + iOS 9.1

Xcode で新規に Single View Application のプロジェクトを作成して、

Swift で Twitter 投稿するサンプルコード (Storyboard を使わないお手軽コピペ版)

以下のコードを ViewController.swift に上書きコピペすればOK。


//
//  ViewController.swift
//

import UIKit
import Social

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        buildToolbar()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    // ツールバーを作る
    internal func buildToolbar() {

        // ツールバー
        let toolbar = UIToolbar(frame: CGRectMake(0, 0, self.view.bounds.size.width, 44.0))
        toolbar.layer.position = CGPoint(x: self.view.bounds.width / 2, y: self.view.bounds.height - 22.0)

        // ボタン
        let tweetButton = UIBarButtonItem(title: "ツイートする", style:.Plain, target: self, action: "onClickTweetButton:")
        toolbar.items = [tweetButton]

        // ツールバーを画面に追加
        self.view.addSubview(toolbar)
    }

    // ボタンを押したときの処理
    internal func onClickTweetButton(sender: UIBarButtonItem) {

        // Twitter 投稿用ダイアログ
        let cvc = SLComposeViewController(forServiceType: SLServiceTypeTwitter)

        // ダイアログ内の初期テキストを設定
        cvc.setInitialText("おなかすいた #nilab")

        // URLを追加することが可能
        cvc.addURL(NSURL(string: "http://www.nilab.info/"))

        // 画像を追加することも可能
        //cvc.addImage(UIImage!)

        // 投稿ダイアログ用を表示
        self.presentViewController(cvc, animated: true, completion:nil)
    }

}

プログラムを実行すると、真っ白な画面の左下に「ツイートする」とテキストが表示される。

Swift で Twitter 投稿するサンプルコード (Storyboard を使わないお手軽コピペ版)

「ツイートする」をタップすると、Twitter 投稿用ダイアログが表示される。ここにテキストなどを入力して「投稿」ボタンを押すとツイートできる。

Swift で Twitter 投稿するサンプルコード (Storyboard を使わないお手軽コピペ版)

iOS の設定画面で Twitter アカウントを追加していないと、「Twitterアカウントがありません」 とエラーダイアログが表示される。 iOS が用意してくれているデフォルトの機能なので、自前で実装しなくていいからお気楽。

Swift で Twitter 投稿するサンプルコード (Storyboard を使わないお手軽コピペ版)

Twitter アカウントを追加していない場合は、 iOS の設定画面から追加できる。

Swift で Twitter 投稿するサンプルコード (Storyboard を使わないお手軽コピペ版)

残念ながら SLComposeViewController クラスのお手軽な手法では、ツイートに位置情報を付加することはできないみたい。画像とかURLは付加できるのに。

tags: swift twitter

Posted by NI-Lab. (@nilab)