2011年5月27日金曜日

スマホ時代のアプリケーション開発

 スマートフォンのアプリケーション開発において、"いち早く対応する"には、二つのハードルがある。一つめのハードルは、いかに素早くアプリケーションを開発するか。そしてもう一つのハードルは、多種多様なスマートフォンやタブレット端末にいかに効率よく対処するか、である。

マウス操作でAndroidアプリを開発できる

 一つめの"素早く"アプリケーションを実現できる開発ツールとして注目されるのが、「App Inventor for Android(以下、App Inventor)」だ。App Inventorは、米Googleが提供する開発ツールで、Android用のアプリケーションを比較的簡単に作成できるのが特徴である。Googleアカウント保持者なら無償で利用できるのも魅力だ。

 通常、Androidアプリケーションを開発するとなると、プログラミング言語のJavaの知識はもちろんのこと、統合開発環境のEclipseやAndroid用のソフトウエア開発キット(Android SDK)などの使い方をマスターする必要がある。実現したいアプリケーションの内容にもよるが、いち早くアプリケーションを開発したい状況において、これらの知識やスキルの習得に時間やコストをかけるのをなるべく避けたい場合もあるだろう。

 App Inventorを使えば、GUI(グラフィカルユーザーインタフェース)上のプログラム部品をマウスで操作することにより、Android用のアプリケーションを開発できる。あらかじめ用意されたUI部品を画面上にドラッグして表示画面をデザインしたり、ブロック状の制御用部品をパズルのように組み合わせて挙動を実装したりできる。一切コードを書かずにアプリケーションを実現できるので、開発者は言語仕様や開発ツールのAPI(アプリケーションプログラミングインタフェース)をマスターしなくて済む分、アプリケーションの画面デザインとロジックに注力できるわけだ。

同一コードでiPhone/Androidアプリを開発できる

 二つめのハードルとなる、いかに"多種多様な"スマートフォンやタブレット端末に対応するかについては、当然のことながら、マルチプラットフォームを前提にした標準化技術が鍵を握るだろう。具体的には、HTML5やCSS3、JavaScriptである。この観点から注目されるのは、HTMLやCSSを使わずにJavaScriptだけでiPhone/iPad/iPod touchアプリ(以下、iPhoneアプリ)とAndroidアプリの両方を一気に開発できる「Titanium Mobile」だ。

 これだけスマートフォンの普及が見込まれるようになると、「iPhoneで動作する業務アプリをAndroid端末にも提供したい」あるいは「はじめからiPhoneとAndroid端末の両方で業務アプリを実現したい」といった要求が当たり前のように出てくる。2010年春以降の段階では、先行して広まったiPhoneの開発環境(Objective-C)と普及の兆しが見えてきたAndroidの開発環境(Java)の類似点と相違点を把握したうえで効率よく開発するという手法が用いられたりしていた。日経ソフトウエアでもそうしたノウハウを一部盛り込んだムック「iPhone/iPad & Androidプログラミング入門」を発行している。

 しかしながら、これから業務アプリケーションをiPhoneやAndroid端末にいち早く提供したいといったときに、Objective-CやMacの開発ツールであるXcode、JavaやEclipseといった複数の開発環境に精通するのはなかなか困難だ。この課題を解消すべく米Appceleratorが開発して提供しているオープンソースソフトウエアが、Titanium Mobileである(図3)。こちらも無償で使えるCommunity Editionが用意されている。

 Titanium Mobileを使えば、Webアプリケーションの開発で広く使われているJavaScriptだけでiPhone/Androidアプリの両方を実現できるため、開発に取り掛かるときのハードルはかなり低くなるだろう。さらに、JavaScriptによる同一のソースコードだけで、iPhone/Androidアプリを実現して維持できるのもメリットだ。

制限や不得手な分野をしっかり評価しよう

 アプリ開発でのハードルを乗り越えるという視点から、メリットを前面に出して二種類の開発ツールを紹介してきたが、実用に向けては慎重に評価する必要がある。App Inventorはまだベータ版であるうえに、画面間の連携をとる機能であるIntentに対応していない、App Inventorから直接Android Marketへ作成したアプリケーションをアップロードできない、などの制限がある。Titanium Mobileにしても、iPhone(iOS)とAndroidのUI部品に違いがある以上、同じJavaScriptのコードで実装しても見た目などで細かな差異が生じるのは避けられないし、画面遷移が頻繁なアプリあるいはリアルタイム性が追求されるアプリには向いていないなど不得手な分野もある。

0 件のコメント:

コメントを投稿