Androidアプリを開発する上で、どうしても避けては通れないコーディングの一つに、Viewの操作があります。毎回findViewByIdメソッドを使って、キャストして、長いコードを書いて、ようやくTextViewなどを操作する準備が整うわけです。こんなに面倒で、Eclipseもろくに自動生成してくれないコードを記述するのは嫌になりませんか。筆者は、嫌です。

 例えば、テキストビューを使用するためには、

TextView textView = (TextView)
findViewById(R.id.text);

というコードを記述しなければなりません。なぜ、

TextView textView =
  findViewById(R.id.text);

のように「(TextView)」を省いたシンプルな記法を許さなかったのか理解に苦しみます。

 今回紹介する「Android Query」は、このような悩みを解決してくれるライブラリです。Android Queryは、JavaScriptのライブラリである「jQuery」を元に考案されたライブラリで、View周りのコードを記述する際には、リスト1のように記述できます。Android Queryを使うと、すっきりとした記述に直すことができます。

リスト1●Android QueryによってViewの定義を書き直したプログラム
[画像のクリックで拡大表示]

jQueryのように書ける

 Android Queryを使うと、今まで冗長だった処理を簡潔に記述できるようになります。先ほど紹介したViewの操作のサポートもその一つです。jQueryのようにメソッドチェーンで、処理を次々に記述していけることもうれしいところです。

リスト2●冗長だった処理を簡潔に記述でき、数珠つなぎで記述も可能
[画像のクリックで拡大表示]

 例えば、リスト2の上のコードを下のコードのように、数珠つなぎで書くことができます。ちなみに、

AQuery aq = new AQuery(this);
aq.id(R.id.text);
aq.text(R.string.hello);
aq.background(R.color.bg);

のように書くことも可能です。

 また、Web APIを利用する際の補助としても使えます。Android Queryには、Web APIをたたくための便利なメソッドが提供されています。サンプルとして、リスト3のように認証なしで利用できるTwitterのpublic timeline(すべての公開ユーザーのつぶやきが見られる)を取得するAPIをたたいてみましょう。

リスト3●Twitterのつぶやきを取得するプログラム
[画像のクリックで拡大表示]

 これだけで、TwitterのAPIからのデータの取得を非同期で開始→ProgressDialogを表示→取得が完了したら処理→ProgressDialogを消す、という一連の処理を実装できます。レスポンスは、JSONArrayのほかにもJSONObjectやString、File、InputStreamなど、様々な形式で受け取ることが可能です。

 リスト3では、クライアント側から何もファイルのアップロードやパラメータの受け渡しなどを行なっていませんが、これらのパラメータやファイルも簡単に送信したり、アップロードしたりできます。

この先は会員の登録が必要です。今なら有料会員(月額プラン)は12月末まで無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら