前回まではSwiftの基本ルールを説明しましたがプログラミングの文法だけではつまらないのであわせて実践的なプログラムを作成してみましょう!まずはTwitterでつぶやく簡単なプログラムを作成してみます。

最初はプログラムの全ての意味がわからなくてもいいので、実際に腕を動かしてプログラムを記述して実行してみましょう!自分でプログラムを記述して実行を繰り返すことによって徐々に理解が深まってきます。

プロジェクトを作成

「Single View Application」でプロジェクトを作成し「Main.storyboard」の画面中央に「Button」を追加し、タイトルを「Tweet」に変更します。

スクリーンショット 2015-11-14 22.03.33

追加した「Button」にActionを追加しNameを「TweetTwitter」に設定します。

スクリーンショット 2015-11-14 22.14.24

Twitterをつぶやくコードを記述

Twitterでつぶやくには「SLComposeViewController」を使用します。「SLComposeViewController」を使用するためには「ViewController.swift」の先頭で「Social」をインポートします。

import Social   // Twitterでつぶやく場合はSocialをインポートする

先ほど作成したAction「TweetTwitter」で「SLComposeViewController」の変数を宣言します。

// SLComposeViewControllerの変数を宣言する
var composeView:SLComposeViewController

「SLComposeViewController」のインスタンスの引数で定数「SLServiceTypeTwitter」を指定するとTwitterでつぶやけるように設定されます。

// インスタンス生成時に引数を定数SLServiceTypeTwitterに設定するとTwitterでつぶやけます
composeView = SLComposeViewController(forServiceType: SLServiceTypeTwitter)

Twitterのつぶやき画面表示された際に表示される初期のつぶやきをテキストプロパティ「setInitialText」で指定します。特に設定する必要がなければこの処理は省略可能です。

// 最初に表示するテキストを設定
composeView.setInitialText("仕事面倒くさい~")

Twitterの完了したらつぶやき画面を表示させます。

// Twitterでつぶやく画面を表示する
self.presentViewController(composeView, animated: true, completion: nil)

「ViewController.swift」の全てのコードは以下のとおりです。

import UIKit
import Social   // Twitterでつぶやく場合はSocialをインポートする

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func TweetTwitter(sender: AnyObject) {
        // SLComposeViewControllerの変数を宣言する
        var composeView:SLComposeViewController

        // インスタンス生成時に引数を定数SLServiceTypeTwitterに設定するとTwitterでつぶやけます
        composeView = SLComposeViewController(forServiceType: SLServiceTypeTwitter)

        // 最初に表示するテキストを設定
        composeView.setInitialText("仕事面倒くさい~")

        // Twitterでつぶやく画面を表示する
        self.presentViewController(composeView, animated: true, completion: nil)
    }
}

プログラムを実行してみる

上記のプログラムを実行すると以下のようになります。

スクリーンショット 2015-11-14 22.38.11

Tweetボタンをクリックすると…

スクリーンショット 2015-11-14 22.38.54

アカウントが設定されていない場合は自動的にアカウント設定を行うことができます。

スクリーンショット 2015-11-14 22.40.46

Twitterアカウントの設定完了後つぶやいてみると…

スクリーンショット 2015-11-14 22.41.39

何も反応がないですがTwitterを確認するとつぶやくことができました!

スクリーンショット 2015-11-14 22.42.49

まとめ

  • Twitterでつぶやくには「SLComposeViewController」を使用する
  • インスタンス時に引数に定数「SLServiceTypeTwitter」を指定する
  • 「presentViewController」に「SLComposeViewController」の変数を指定してつぶやく画面を表示する。

「SLComposeViewController」の他の機能についてはまた後々説明していきたいと思います!