TwitterハッカソンでNFCによるTwitterアイコンチェンジャーを作成しました。#twtr_hack #twitter4j #nfchack

Twitterハッカソンに参加してきました。場所はTwitter Japan!
(場所はアーク森ビルといわれ、勘違いして六本木ヒルズに行き、インフォメーションカウンターのおねーさんにTwitterJapanどこですか?と聞いて、ザワザワしたのは言うまでもない。)

トゥギャッターはこちら → 第0回 Twitterハッカソン #twtr_hack
@yusukeyさんのブログはこちら →第0回Twitterハッカソンを開催しました #twtr_hack
@bina1204さんのブログはこちら →第0回 Twitter Hack に参加した
@makotoworldさんのブログはこちら →第0回Twitterハッカソンに参加して
@johtaniさんのブログはこちら →第0回 Twitter Hack #twtr_hack に遊びに行きました。

私がつくったのはNFC契機によるTwitterのアイコンチェンジャーです。
Twitterのアイコンに現在のステータスを埋め込んだら、MSNメッセンジャーとかでいう現在のステータス(退席中、取り込み中的な)が表現できるのではないかと。
また、ステータスのキーとして、SUICAAndroidにタッチすれば、「電車移動中」とTwitterアイコンに示され、
同様に、社員証をタッチすれば「仕事中!」とアイコンに示されるようにしました。Twitterのアイコンかえるくらい、ボタン操作ではなくワンタッチで済ませたい。

実際の実行結果は以下になります。
これが元のアイコン。
f:id:i2key:20120308032830p:image

これがSUICAタッチ後のアイコン。
f:id:i2key:20120308032831p:image

これが社員証タッチ後のアイコン。
f:id:i2key:20120308032832p:image

遅刻しまくったし時間が無かったので強引なオレオレ実装ですが、ソースはGitHubにアップしておきました。
https://github.com/i2key/NFCxTwitter4J

また、TwitterAPIを使うとかなりの確率でステータスコード4XXや500が返ってくるのだけど、
以下のように何回かリトライさせるような実装で対応するしかないのでしょうか。
皆さんどのように書いているのか非常に気になります。

UpdateProfileImageTask.java

//4XXや5XXでても3回まではリトライする
int continuousErrorCount = 0;
while(true){
	try {
		Log.i(TAG, "START.");
		//やりたいのはこれだけ。アイコン画像のアップロード
		twitter.updateProfileImage(bis);
	} catch (TwitterException e) {
		Integer errorCode = e.getStatusCode();
		if(errorCode.toString().startsWith("5") || errorCode.toString().startsWith("4")){
			continuousErrorCount++;
			if(continuousErrorCount < 4){
				Log.e(TAG, "STATUS CODE is 4XX , 5XX. Try " + continuousErrorCount + "times.");
				continue;
			}else{
				//リトライ4回目で終了(もう無理あきらめる)
				Log.e(TAG, "STATUS CODE is 4XX , 5XX. Try " + continuousErrorCount + "times.");
				return false;
			}
		}else{
			//STATUS CODE = 3XX , 2XXのときはリトライなしで終了
			Log.e(TAG, "STATUS CODE is 3XX , 2XX. Try " + continuousErrorCount + "times.");
			return false;
		}
	}
	//成功したら終了
	Log.i(TAG, "SUCCESS. Try " + continuousErrorCount + "times.");
	break;
}

ハッカソンの雰囲気
f:id:i2key:20120308034112j:image

頂いたノベルティ(ステッカー、ボールペン、クリアファイル、Tシャツ)
f:id:i2key:20120308035803j:image:w360

最後になりましたが、@yusukeyさん、ピザごちそうさまでした!