JavaScriptやRubyなどの軽量言語でスマホアプリを開発できるフレームワークが増えてきた。これまでスマホアプリの開発手法は、開発が容易なWebアプリ、高機能で使い勝手の良いUIを実現できるObjective-CやJavaによるネイティブアプリという、二つのアプローチがあった。軽量言語によるフレームワークは、両者の利点を併せ持つ。
2012年に入って、JavaScriptやRubyといった軽量言語でスマホアプリを開発できるフレームワークが充実してきた(表)。米アドビ システムズの「PhoneGap」、米モトローラ ソリューションズの「RhoMobile Suite」、米アップセラレーターの「Titanium Mobile」といった製品は、2012年6~7月にかけて相次いで新版を提供開始した。Objective-CやJavaなどで開発する場合と比べて手軽さが評価され、利用事例が増えている。
例えば、Titanium Mobileは、iOS向けとAndroid向けで合計4万件以上のアプリ開発に利用されている。アプリの実行性能やユーザーインタフェース(UI)の使い勝手の面で、Objective-CやJavaで開発したアプリとほとんど遜色がない。画像処理やアクションゲームなど特殊な場合を除けば、あえてObjective-CやJavaで作る必然性は薄れてきている。
新規の製品も増えている。SCSKが2012年9月に「Caede」を、Webサイト構築などを手掛けるジークスが2012年9月に「ダイナミックアプリ」を、米ヒップバイトが2012年5月に「RubyMotion」を、それぞれ発売した。
高機能で開発も容易
スマホアプリの実現形態は従来、(1)ブラウザーで動作させるWebアプリ、(2)Objective-CやJavaで開発するネイティブアプリ、二つのアプローチがあった。
(1)のWebアプリは開発が容易であり、多様なプラットフォームに対応できる利点がある。しかし、Webアプリの場合、現状ではカメラや加速度センサーなどスマホ上のデバイスへのアクセスに一部制約がある。課金処理やアプリストアでの配布にも対応できない。
(2)のObjective-CやJavaで開発するネイティブアプリは、複雑な機能を実現でき、開発の自由度が高いという利点がある。しかし、OSの機能や利用方法について詳細な知識が求められるほか、開発言語であるObjective-CやJavaの習得コストも大きいため、初心者には開発のハードルが高い。
軽量言語を用いたスマホアプリ開発フレームワークは、(1)と(2)の中間的なアプローチであり、両者の利点を兼ね備える(図1)。