logo header
logo header
logo header
logo header
  • 2014.09.02
  • 技術ブログ

Android向け通信ライブラリ Volley

大通公園のビアガーデンも終わって、すっかり秋めいてきました。油断して半袖で夜に出かけると寒いぐらいですね。

さて、Androidアプリを幾つか開発していると、どのアプリでも使う部分の共通化なんかを漠然と考えたりするわけですが、その中でも良く取り上げられるものの1つに通信周りがあります。

Androidの場合、通信を非同期で行わないとそもそも例外でアプリが落ちるなどの制約、モバイル端末である事に起因する、通信断やキャッシュ処理など考えだすと、気が付くと膨大なコード量になっていたりします。

今回は、それを補ってくれるライブラリ、 Volley のご紹介です。

ネットワーク通信用ライブラリVolleyを使いこなす

日本語の情報源としては、上記のサイトが非常によくまとまっているので、今回はNHKの番組一覧を取得する処理を書いてみようと思います。

(参考)NHK番組表API

早速ですが、ソースコードです。(抜粋)

29行目でリクエストキューを作成しています。Volleyはこのリクエストキューにどんどんリクエストをキューイングしていくことで、通信処理をよきに計らってくれます。楽ですね。

実際、42行目でボタンのイベントハンドラ内でリクエストキューにリクエストを追加しています。以下が、リクエストの作成処理となります。

今回はサンプルという事で、エラー処理(onErrorResponse)などは実装していません。通信が正常に完了した際の処理(onResponse)の中で、取得した番組表をTextViewに反映し、通信が正常に完了したかどうかを確認しています。

たったこれだけのコードでレスポンスの取得まで出来てしまうので、もう少しUIを整えるコードやエラー処理を追加すれば、場所や時間を指定しての番組表閲覧アプリはあっという間に作れてしまいそうです。

ともに世界をアップグレードできる、そんな日を夢見て。
Upgrade the World!