プログラマでありたい

おっさんになっても、プログラマでありつづけたい

iOS5のTwitter APIを使って実装してみる

 最近、iOS5に追加されたTwitter APIを作ってTwitterに呟く機能を実装してみました。解説がいらないくらい簡単です。Twitter連携していて採用出来る環境の人は、是非使うべきでしょう。


まずはこれ
Tweeting Sample Code
TWTweetComposeViewController Class Reference


ソースサンプルと設定

まず設定のBuild Phasesで、Link Binary With LibrariesでTwitter.frameworkを追加します。
そのうえで、ViewControllerに下記のような感じで追加します。
TWTweetComposeViewControllerはUIVewControllerの拡張です。

#import <Twitter/Twitter.h>

〜略〜

- (void)_sendTweet:(NSString *)tweet url:(NSURL *)url {
    TWTweetComposeViewController *tweetViewController = [[TWTweetComposeViewController alloc] init];
    NSLog(@"tweet=%@", tweet);
    [tweetViewController setInitialText:tweet];
    if (url != nil) {
        NSLog(@"with url");
        [tweetViewController addURL:url];
    }
    [tweetViewController setCompletionHandler:^(TWTweetComposeViewControllerResult result) {
        switch (result) {
            case TWTweetComposeViewControllerResultCancelled:
                // The cancel button was tapped.
                NSLog(@"Tweet cancelled.");
                break;
            case TWTweetComposeViewControllerResultDone:
                // The tweet was sent.
                NSLog(@"Tweet done.");
                break;
            default:
                break;
        }
        
        // Dismiss the tweet composition view controller.
        [self dismissModalViewControllerAnimated:YES];

    }];
    [self presentModalViewController:tweetViewController animated:YES];
    [tweetViewController release], tweetViewController = nil;
}

メソッドの解説

メソッドも非常にシンプルで解りやすいです。

  • (BOOL)addImage:(UIImage *)image

画像の追加

  • (BOOL)addURL:(NSURL *)url

URLの追加

  • (BOOL)removeAllImages

全ての画像の削除

  • (BOOL)removeAllURLs

全てのURLの削除

  • (BOOL)setInitialText:(NSString *)text

初期に追加する文言の設定

感想

 最近リリースしたアプリをiOS5専用で出したので使ってみました。iOS5限定ということで、堂々とiOSのTwitter APIを利用してみました。これが超絶に楽です。本当に5分くらいでコーディング完了できました。これを実感すると、アプリの性格によっては常に最新のiOSのみ対応するという選択肢もあるんではないかなと思います。また、各種のレポートがiPhone/iPadユーザはかなり高い確率で、最新のOSを使っているというレポートがあります。
 考え方の問題ですが、最新のOSでどんどんリリース出来て新規のユーザが獲得できるのであれば、ある程度旧バージョンのユーザを置き去りにするというのもありなのかもしれません。企業として出しているアプリであれば、その決断はなかなか出来ませんが、個人としては考慮に値するでしょう。