この短期集中講座では、Android 4.0の新機能を利用したプログラミングを紹介していきます。

図1●サンプルアプリケーション完成図
図1●サンプルアプリケーション完成図
[画像のクリックで拡大表示]
 この連載では、Android 4.0(コードネームはIce Cream Sandwich)の知っておきたい機能やこれから使えそうな機能を4回に渡って紹介していきます。第1回は、Android 3.0(コードネームはHoneycomb)以降のアプリを作成する上での定番「Fragment」と「ActionBar」、Android 4.0で追加された「ActionProvider」について、図1のようなアプリを一覧表示するAndroidアプリを通じて解説していきます。後述しますが、図1にはそれぞれに対応するコードを示しておきます。

新たに導入されたFragment

 これから学ぶFragmentですが、この機能はAndroid 4.0ではなく一つ前のメジャーバージョンであるタブレット向けOSのAndroid 3.0から追加されたものです。ただし、スマートフォンで利用できるようになったのはAndroid 4.0からなので、ここで取り上げることにします。

 このFragmentを使いこなすためには、アプリケーションの作り方をガラリと変更しなければなりません。Android 3.0より前では、Activityの上に各種LayoutやViewなどの部品を配置することで画面を構成していました。ところが4.0以降では、ActivityではなくFragment上にViewなどの部品を配置して画面を構築します(図2)。

図2●Fragmentの用途
図2●Fragmentの用途

 Fragmentを利用して画面を作ると、大きく二つのメリットを享受できます。一つは、スマートフォンとタブレットの両方に対応することが容易になります。例えば、スマートフォンとタブレットでGmailアプリの表示を比較すると、その情報量の違いに驚かされます。タブレットでは、メール一覧とメール本文を一目で確認できます。ところがスマートフォンでは、メール一覧とメール本文の両方を表示するスペースがないため、メール一覧のみが表示されます。一覧からメールを選択することで画面全体が切り替わり、はじめて該当するメールが全画面で表示されます。

 Gmailのアプリでは、このような挙動を実現するためにスマートフォン用とタブレット用に別々のプログラムを作成しているわけではありません。メール一覧のFragmentとメール本文のFragmentを作成し、タブレット用では二つのFragmentを同時に表示する、スマートフォンでは片方を表示する、という仕組みです。端末固有の実装をActivityに盛り込む必要はありますが、それぞれの端末用に開発することに比べると労力は雲泥の差です。