PR

 スマートフォンのメリットの一つは、さまざまなアプリケーションが入手できる点です。もうもう一つは、誰でも、何の契約もなく自由にソフトウエアを作ることができる点です(もっとも、iPhoneのようにいろいろと制限のある場合もあります)。

 Androidの場合、基本的には開発は自由。配布は、Androidマーケットを使ってもいいし、適当なWebサイトに置いて、ダウンロードするようにもできます。Androidマーケットは、デベロッパー登録が有料になりますが、アプリケーションを有償で販売することが可能です(無償配布も可能)。

 開発環境は、Androidの場合すべて無料で入手可能です。グーグルからSDKを入手し、オープンソースの統合開発環境である「Eclipse」とJavaをダウンロードしてインストールすれば、すぐに開発が始められます(とはいえ、アプリケーションはJavaで作るので、ある程度のプログラミングの知識は必要です)。

 プログラムはEclipseで作ります。WindowsやLinuxの上で動く、Androidエミュレータ(Android Virtual Device)があるので、そこでプログラムを試すことができるほか、デバッガーを使って、プログラムの途中で停止させたり、変数の状態を調べることもできます。もっとも、最初のうち多いのは、作ったプログラムが停止してしまって、その原因を探るという感じにはなると思いますが。

 また、Androidでは、不完全ながら、システムのソースコードを入手することも可能です。実際、SDKに付属するサンプルコードは限られており、全般を網羅しているものの、実際に開発を進めると、「どうすりゃいいんだろう?」みたいなところは結構出てきます。こんなとき、Android側に同じような機能や画面があるなら、これを参考にすればいいのです。ただし、標準でAndroidに含まれるGmailなどのGoogleサービスのクライアントのソースは非公開なので、見ることはできません。

 開発を始めるなら、まず、必要なプログラム(SDKとEclipse、JavaのJDK)をダウンロードしてインストールし、サンプルプログラムをコンパイルできるような環境を整えることから始めた方がいいでしょう。その後、Androidの開発者サイトに行き、「開発ガイド」(一部がまだ英語のままです)を見るなどして、「Hello World」などのサンプルアプリケーションを実際に入力してコンパイルしてみましょう。最初からドキュメントを読んでもいいのですが、手を動かした方が理解が早いと思います。

 プログラミングに慣れていない方に言っておくと、「Hello World」とは、画面に「Hello World」という文字を表示するだけの簡単なプログラムです。プラットフォームや言語のサンプルプログラムとして必ずといってもいいほど用意されるもので、最も簡単なプログラムの構成になっています。文字を表示させることができるのなら、あとは、これに機能を追加していけば、立派なプログラムになります。

 Eclipseは、プラグインなどを用意することでさまざまなプラットフォームに対応可能です。Androidの場合、専用のプラグインが用意されています。前述のAndroidエミュレータもEclipseから起動でき、デバッガーもEclipseの中で動かすことが可能です。

 少なくとも、こうしたフリーで手に入る開発環境が出てきてから、モバイルのソフトウエア開発はぐっとラクになりました。かつて、筆者がPalm用(当時はPalm Pilotでした)のアプリケーションを作ったときには、数万円を出してコンパイラーなどを含む開発環境を購入しなければなりませんでした。モバイル・ソフトウエアの開発は少しハードルが高かったのです。しかし、今では、少なくとも、開発を始めるのには、高価なコンパイラなどを買う必要もなく、気軽に試すことが可能です。昔は、コンパイラーが高かったので、作ろうという気合いが強すぎて、ちゃんとできないと、損した気分が大きかったのですが、いまでは、そんなことはありません。

 当時、モバイルアプリケーションは、シェアウエアまたはフリーソフトとして配布するしか方法がなかったのですが、現在のスマートフォンでは、各プラットフォーム用にアプリケーション・ストアが用意されていて、その気になれば、ソフトウエアを販売することもできます。パソコンなどのシェアウェアと違い、ユーザーは、アプリケーションをストアで購入するため、きちんとしたビジネスが可能です(逆にいうと、お金を取るならきちんとビジネスしないとダメなのです)。

Androidの開発環境となるEclipse。基本的にはJavaの開発環境だが、プラグインなどでさまざまなプラットフォームに対応できる
Androidの開発環境となるEclipse。基本的にはJavaの開発環境だが、プラグインなどでさまざまなプラットフォームに対応できる
[画像のクリックで拡大表示]

Windows上で動くAndroid Virtual Device。ほぼ実機と同じ構成だが、Androidマーケットなど一部のプログラムがない。SDKに含まれるデバッガーと組み合わせて、実行中のプログラムの動きなどを調べることもできる
Windows上で動くAndroid Virtual Device。ほぼ実機と同じ構成だが、Androidマーケットなど一部のプログラムがない。SDKに含まれるデバッガーと組み合わせて、実行中のプログラムの動きなどを調べることもできる
[画像のクリックで拡大表示]