オープンソースのTwitterクライアントAndTweetのソースコードをダウンロードしてビルドする

AndroidTwitterクライアントアプリを作る参考にするために、AndTweetというオープンソースTwitterクライアントをダウンロードして、ビルドする。

AndTweet(オープンソースのTwitterクライアント)

1.AndTweetのソースコードをダウンロードする

(1) 以下のサイトからソースコードをチェックアウトする。
Source Checkout - andtweet - Light-weight Android Twitter client - Google Project Hosting

(2) Mercurialでクローンを作成

hg clone https://andtweet.googlecode.com/hg/ andtweet

Mercurialは使ったことがなかったので、以下のサイトからダウンロードした。
Windows版のMercurial-1.8.3 (32-bit msi)

すべてデフォルトの設定でインストール終了。コマンドプロンプトで「hg」と入力して、ヘルプ画面が出てきたら成功。上記のhgコマンドを実行する。

2.TwitterOAuth認証用のカスタマーキー、カスタマーシークレットを申請する

OAuth認証というのは、パスワードがアプリ作者に漏れないようにするための仕組み。パスワードをアプリ内に保持しておいてTwitterにPOSTするのではなく、Twitter側で用意したURLにIDとパスワードを入力して認証する。アプリがTwitterにアクセスする際は、認証のときに発行された認証コードを使用する。OAuthの概念を理解するには、以下のサイトが参考になる。

OAuth 2.0でWebサービスの利用方法はどう変わるか @IT

Twitterの認証コード(カスタマーキーとカスタマーシークレット)を取得するために、http://twitter.com/oauth_clientsにアクセスして必要事項を入力する。アプリケーションのURLの欄は、まだ取得していないURL(実在しないURL)でも大丈夫だった。

3.AndTweetをeclipseでビルドする

eclipseでプロジェクトをインポートしてビルドすると、OAuthKeysクラスでビルドエラーが出る。OAuthKeys.javaを開いてみると、以下のようにコメントに、カスタマーキーとカスタマーシークレットをフィールドに持つMyOAuthKeysクラスを作成するように書かれている。

// OAuthKeys.java

package com.xorcode.andtweet.net;

/**
 * In order to compile the application you either: 
 * 1. Create your own MyOAuthKeys class with your application's
 *    TWITTER_CONSUMER_KEY and TWITTER_CONSUMER_SECRET 
 * 2. Or remove "extends MyOAuthKeys" below and un-comment the values here
 *    replacing values with your own token and key.
 **/
public class OAuthKeys extends MyOAuthKeys {
    // public static final String TWITTER_CONSUMER_KEY = "Your Twitter Application Token";
    // public static final String TWITTER_CONSUMER_SECRET = "Your Twitter Application Secret";
}

なので、MyOAuthKeysクラスを作成する。これでビルドは成功する。

package com.xorcode.andtweet.net;

public class MyOAuthKeys {
    public static final String TWITTER_CONSUMER_KEY = "XXXXXXXXXXXXXXXXXXXXXX";
    public static final String TWITTER_CONSUMER_SECRET = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
}

4.アプリを実行する

Xperia SB-01(Android 2.1-update1)でデバッグ実行できることを確認。プロジェクトに含まれるAndorid SDKのバージョンが1.5なので少し心配したが問題なさそうだった。