ネイティブアプリケーションとWebアプリケーションを比べると、開発の容易さやiPhone以外のプラットフォームでの動作などでは、Webベースのアプリケーションのメリットが大きく、またデメリットも少ないことが分かります。ローカルストレージを利用することで、データ保存の問題もクリアできます。
しかし、WebアプリケーションはApp Storeでの配布ができない点が、大きなマイナスです。苦労して開発したアプリケーションですから、より多くの人に使ってもらい、場合によってはビジネスにつなぎたいものです。
そこで、HTML+JavaScriptの技術を使いつつ、ネイティブアプリケーションを開発する「ハイブリッドアプリケーション」ともいえる開発手法を検討してみます。ハイブリッドアプリケーションとは、このところ海外の開発者たちが注目しているiPhoneアプリの開発手法で、いつものWebアプリのように開発できるのに、App Storeで販売できてしまうという一挙両得の方法です。
iPhone SDKに含まれるUIパーツに、WebブラウザSafariと同等の機能を提供するUIWebViewというクラスがあります。URLを指定してコンテンツを表示したり、JavaScriptを実行したりできます。
このUIWebViewを使ってシンプルなアプリケーションを作成し、あらかじめリソースとして用意されたHTMLやJavaScriptを実行すれば、ネイティブアプリケーションでありながらコードの大部分をHTML+JavaScriptで構成するハイブリッドアプリケーションを作成できます。
ここで紹介するフレームワークは、さらにGPSや傾きセンサなどの機能をJavaScriptから呼び出せるようにして、独自の拡張を行っています。
GPS機能を使った位置情報の取得、傾きセンサの情報の取得をサポートしています。MITライセンス。「Binary Clock」「Inside Trader」というアプリケーションが、実際にPhoneGapで開発されApp Storeで販売されています。
GPS、傾きセンサに加えて、カメラやフォトライブラリの画像の利用、バイブレーションの利用、電話機の固有情報(端末IDなど)の取得が可能です。オープンソース開発者向けにはGPLライセンス。商用の利用にはデベロッパライセンスの購入が必要です。
XcodeやDashcodeにテンプレートをインストールすることで、ひな型プロジェクト作成から始められます。JSONライブラリやSQLiteへのアクセスを抽象化するデータオブジェクトなど、高機能な本格派ですが、その分フレームワーク自体の学習が必要です。ライセンスはLGPLです。
QuickConnectの開発者は、Webテクノロジーを使ったiPhoneアプリケーション手法について書籍を執筆中のようです。こちらも楽しみです。
ここまでのフレームワークとは若干異なりますが、JiggyAppもiPhoneで動くアプリケーションをJavaScriptで開発できるツールです。Jailbreakが必要で、一般的なアプリケーション開発には向きませんが、こんなものもあるということで紹介しています。
Copyright © ITmedia, Inc. All Rights Reserved.