ガジェット通信Androidアプリの作り方 第2回:「Hello World」とAndroidアプリ開発の基本

写真拡大




ガジェット通信の最新記事を読めるAndroidアプリ『ガジェット通信 Getnews Reader』を開発いただいた、アンドロイド記者のnayutanoutyuさん連載第2回。「Androidアプリってどうやって作るの?」「これからAndroidアプリを開発してみたい!」という読者に向けて、nayutanoutyuさんにアプリ開発の一連の流れを全4回の記事で解説いただきます。今回は、プログラミングの入門書に必ずといっていいほど、最初の例題として出される「Hello World」を出力するアプリの制作を学んでいきましょう。

第1回:開発環境のセットアップ
http://getnews.jp/archives/132193


■第2回:「Hello World」とAndroidアプリ開発の基本

前回はAndroid開発環境のセットアップについてご説明しました。お気づきの方もいらっしゃると思いますが、Android開発環境に必要なソフトウェアはすべて無料で利用できます。Androidはとてもオープンなプラットフォームです。Android自体のソースコードはオープンソースライセンスで、開発環境はOSを選びません。

今回は、Linux (Ubuntu 10.04.1 LTS)上に構築した開発環境にて、「Hello World」プログラムのAndroidアプリ版の開発の流れを説明します。LinuxといってもWindowsの開発環境とできることに違いはほとんどありません。『Eclipse』を通じて作業をすべて行うならば、違いはまったくないといってもいいでしょう。

●Androidアプリを開発するために必要な事前知識
Androidアプリを開発するためには基本的にJavaの知識が必要です。もし、Javaでのアプリ開発の経験がない場合は、Androidアプリを開発することは難しいかもしれません。また、可能でしたら下記の知識もあるとよりアプリ開発がスムーズにいくと思います。

・XML
・SQLite
・コマンドライン(CUI)の使用方法
・『Eclipse』の使用方法
・英語

XMLの知識があった方がよい理由は二つあります。まず、AndroidアプリインタフェースはXMLで記述することができるから。次に、XML文書を解析し、その情報を基にしたアプリを開発する機会が訪れる可能性が高いからです。XML文書の代表的なものとしては、XHTML、RSSフィードなどがあります。『Androidマーケット』で公開されているアプリには、XMLで提供されるウェブサイトの情報を参照してアプリ側で独自のインタフェースを用意して表示するものが結構な数、存在します。ちなみに、次回詳しくご説明することになるガジェ通アプリでは、RSSフィードを解析する必要があります。

SQLiteはとても使いやすいSQLデータベースシステムです。実は、Androidは最初からSQLiteを使用することができます。SQLiteは小型で軽量のため、Androidアプリで使用できるデータベースとしては最適なものです。SQLiteが必要になるケースとしては、住所管理のような、ある一定形式のデータを一括して操作する場合が考えられます。業務アプリの要件で多く見られると思います。

Androidアプリの開発中に、アプリのデバッグのためにエミュレータや実機の中身を見たい場合があります。例えばファイルを調べたり、ログを見たりなどです。また、場合によってはSQLiteを直接操作してデータベースの中身を見たい場合もあります。そのよう作業を行うためにコマンドラインの使い方に慣れておくと、作業の効率化につながります。

Androidアプリ開発の最中に、使った事がないAPI(Application Programming Interface)の仕様を調べることがあるでしょう。その場合は、『Android Developers』のリファレンスを見ることになるはずです。しかし、そのリファレンスは英語で書かれているので、英語が読めないと苦労することになるでしょう。

『Eclipse』でアプリ開発をするのであれば、『Eclipse』の使い方を知っているほうがよいことはすぐにお分かりかと思います。

まったく知識がない方にとって、独学で一から勉強する事とても大変です。時間に余裕があるのでしたら、Androidアプリ開発トレーニングを受講されることをお勧めします。失業者限定ですが、基金訓練コースのAndroid開発講座は無料なので、とてもお勧めです。

●Hello World
それでは、「Hello World」アプリを作ってみましょう。『Eclipse』を初めて起動すると、「Welcome」ウィンドウが全面に表示されています。これは不要なので、タブの右側に表示されている「×」をクリックして閉じて下さい。

「Welcome」ウィンドウを閉じると左側に、「Package Explorer」が表示されています。この中で、右クリックをしてください。右クリックするとポップアップメニューが表示されます。ここから、「New -> Project...」の順にクリックして下さい。

記事の1枚目の画像のように、「New Project」ウィンドウが開きます。ここから、「Android Project」をクリックして、「Next」ボタンを押して下さい。

プロジェクトの設定
「New Android Project」ウィンドウが開いたら、下記の項目を埋めて「Build Target」に「Android 2.2」を指定して下さい。

・Project Name: HelloWorld
・Application name: HelloWorld
・Package Name: jp.getnews.hello
・Create Activity: HelloWorld
・Min SDK Version: 8

「Project Name」とは、プロジェクトの名前です。『Eclipse』では、個々のソフトウェア開発をプロジェクトという単位で分けることができます。

「Application name」は、アプリの名前です。Androidのランチャーに表示されたりします。

「Package Name」はパッケージの名前です。アプリを外部に提供する場合、1個のアーカイブにまとめる必要があります。このアーカイブの名前は、パッケージ名です。また、Android 上のアプリの ID としての役割を持ちます。

「Create Activity」はActivityを作るという意味です。ActivityはAndroidアプリ開発の固有の概念です。Activityを作るのならばその名前を入力する必要があります。もう少し詳しく説明すると、このActivityは、Activityスーパークラスのサブクラスとして生成されます。

「Min SDK Version」は、サポートする SDK(Android のバージョン)の下限を決めるものです。API Level 8 (Android 2.2)以上でアプリを動かしたい場合は、「8」と入力します。Android 1.6 もサポートしたいならば、「4」と入力する必要があります。

すべての項目を埋めたら、ウィンドウ右下の「Finish」ボタンを押して下さい。

「Package Explorer」に「HelloWorld」ができたはずです。この上で右クリックをして下さい。メニューが開きます。ここから、「Run As -> Android Application」をクリックして下さい。すると、アプリのコンパイル、エミュレータの起動、アプリのインストール、アプリ実行までの一連の作業が連続して行われます。エミュレータ画面のロックを解除して下さい。エミュレータ上に「HelloWorld」が表示されます。

Hello Worldが表示されました

●なぜ「Hello World」が表示されたのか
実は、作った「Hello World」アプリは、アプリの名前と「Hello World」という文字列を表示するものです。つまり、アプリの名前が「HelloWorld」なので、重複表示されたように見えます。

main.xml
Androidアプリのプロジェクトを作成すると必ず、「Hello World」を表示するためのコードが生成されます。このコードは、XMLファイルで TextViewウィジェットに「Hello World」文字列を表示する処理として表現されています。

Androidでは、インタフェースの定義を XMLファイルで行うことが一般的です。この XMLファイルは、AndroidのGUIを定義する専用XML文書です。TextViewは、XMLでは「要素/エレメント」と呼ばれますが、GUIでは「ウィジェット」と呼ばれます。TextView以外にも、ボタンを表現するButton、テキストボックスを表現するEditTextなど、たくさんの ウィジェットが存在します。

strings.xml
TextViewウィジェットの中には3種類のプロパティがあります。android:textプロパティは、「@string/hello」 とあります。これは、strings.xmlに定義された「hello」というnameプロパティを保持するstring要素の値を参照することを意味しています。

Javaのコード
XMLファイルで定義したインタフェースを実際に表示するには、Javaのコードが必要です。 その処理は、Activityから拡張されたクラスであるHelloWorldクラスの setContentView() メソッドで行われます。

* * * * *
一般的に、Androidでのプログラミングは、XMLでGUI定義を行い、Javaでロジックの実装を行います。今回の説明では、XMLとJavaの関連性をお分かり頂けたと思いますが、プログラミング経験のない方には難しい用語があったかと思います。この記事では、感覚的な部分や大雑把な流れをご理解頂けたら幸いです。次回は、ガジェ通アプリがどのように作られたかを踏まえて、Androidアプリ開発の基本的な事項を説明したいと思います。

※この記事は、アンドロイド記者nayutanoutyuさんの寄稿です。

Androidアプリ『ガジェット通信 Getnews Reader』についてはこちら

ガジェット通信がAndroidスマートフォンで読めるアプリになりました
http://getnews.jp/archives/131345

ガジェット通信 Getnews Reader(Androidマーケット)
https://market.android.com/details?id=jp.getnews.rssreader

■関連記事
ガジェット通信Androidアプリの作り方 第1回:開発環境のセットアップ
ガジェット通信がAndroidスマートフォンで読めるアプリになりました
ガジェット通信はアンドロイド記者を募集しています
重ね書きの手書き文字認識を採用 auの初心者向けスマートフォン『MIRACH IS11PT』
家電量販店のスマートフォン設定料金が更に過激化! 「テザリング3800円 アプリ導入5700円」