[iOS] Fabric 入門 #3 Twitter のツイートを1つだけ表示する

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

画面の中にツイートを1つだけ

前回、Twitter のタイムラインを表示する際に TWTRTweetTableViewCell というクラスを用いました。このクラスは UITableView で使うための View ですが、UITableView 以外の場所では TWTRTweetView を利用します。なお、TWTRTweetView は TWTRTweetTableViewCell のメンバーです。

今回は TWTRTweetView を使って、画面上にツイートを1行だけ表示するサンプルを作ります。

特定のツイートを取得して表示する

実装は今回もシンプルです。前回はログインの処理の後にタイムラインを取得する処理を記述しましたが、今回はツイート ID を特定して取得し、TWTRTweetView に反映します。

#import "ViewController.h"
#import <TwitterKit/TwitterKit.h>

@interface ViewController ()

@property (weak, nonatomic) TWTRLogInButton *logInButton;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // TWTRLogInButtonの設定
    TWTRLogInButton *logInButton = [TWTRLogInButton buttonWithLogInCompletion:^(TWTRSession *session, NSError *error) {
        if (error) {
            NSLog(@"Error : %@", error);
        } else {
            NSLog(@"UserName : %@", session.userName);
            self.logInButton.hidden = YES;
            [self loadTweet];
        }
    }];
    logInButton.center = self.view.center;
    self.logInButton = logInButton;
    [self.view addSubview:logInButton];
}

- (void)loadTweet
{
    TWTRAPIClient *client = [[Twitter sharedInstance] APIClient];
    [client loadTweetWithID:@"554844117167927296" completion:^(TWTRTweet *tweet, NSError *error) {
        if (error) {
            NSLog(@"Error : %@", error);
        } else {
            if (tweet) {
                TWTRTweetView *tweetView = [[TWTRTweetView alloc] initWithTweet:tweet style:TWTRTweetViewStyleRegular];
                tweetView.theme = TWTRTweetViewThemeDark;
                tweetView.primaryTextColor = [UIColor lightGrayColor];
                tweetView.backgroundColor = [UIColor darkGrayColor];
                tweetView.linkTextColor = [UIColor cyanColor];
                tweetView.center = self.view.center;
                [self.view addSubview:tweetView];
            }
        }
    }];
}

@end

実行してみよう

以上で実装完了です!アプリを実行し、Twitter にログイン後、ツイートが1つ表示されるはずです。

show-tweet01

なお、TWTRTweetView には TWTRTweetViewStyleRegularTWTRTweetViewStyleCompact という2つのスタイルがあります。デフォルトは TWTRTweetViewStyleCompact ですが、 TWTRTweetViewStyleRegular にしたい場合は以下のように実装します。

TWTRTweetView *tweetView = [[TWTRTweetView alloc] initWithTweet:tweet style:TWTRTweetViewStyleRegular];

show-tweet02

「ツイートを共有」をタップすると、共有アクションシートが開きます。

show-tweet03

スタイルのカスタマイズ

TWTRTweetView は画面の一部に埋め込むことを想定した View ですが、時にはアプリのテーマに色を合わせたいこともあると思います。TWTRTweetView は Dark か Light か選べるほか、プライマリカラー、背景色、リンク色などを変更することができます。

TWTRTweetView *tweetView = [[TWTRTweetView alloc] initWithTweet:tweet style:TWTRTweetViewStyleRegular];
tweetView.theme = TWTRTweetViewThemeDark;
tweetView.primaryTextColor = [UIColor lightGrayColor];
tweetView.backgroundColor = [UIColor darkGrayColor];
tweetView.linkTextColor = [UIColor cyanColor];

show-tweet04

カスタマイズも自由自在ですね!全体で変更したい場合は [TWTRTweetView appearance] 経由で設定しましょう。

まとめ

TWTRAPIClient にはツイートを簡単に取得するためのメソッドが用意されているため、タイムライン表示より簡単に実装できました。書き方によっては View の表示も含めて1メソッドで完結できるので、簡単に埋め込めますね!

参考