「iPhoneアプリケーション開発ガイド」を読んだ

前提

  • Apple Storeでダウンロード購入可能なiPhone(iPod touchiPadも含む)で動作するアプリケーションは原則としてアップルが提供している開発環境で、Objective-Cという開発言語を使って開発する。これはネイティブ・アプリケーションと呼ばれることが多い。
  • Objective-Cは基本的にはプログラム経験がない人にとっては、すぐに扱えるものではない(個人差があります)。
  • 一方、iPhoneに限らず、Webブラウザ上で動作するアプリケーションもある。定義に依ってはこれらはアプリケーションと呼ばないかもしれないが、利用者にとっては重要なことではないので、アプリケーションと呼ぶことにする。
  • iPhoneではURLへのショートカットを利用者がアプリケーションとして使えるようにデスクトップにアイコンを置く方法とサービサーがアイコンを指定する方法を提供している。これらはWebアプリケーションと呼ばれることが多い。
  • Webアプリケーションはネイティブ・アプリケーションに比べると開発が容易であるが、iPhone固有の機能が使えないという欠点を持つ。またWebアプリケーションはアップルストアで販売することができない。
  • iPhone以外のプラットフォームではWeb上のアプリケーションはFlashを使うことが多い(多かった)。これは、HTMLだけでは不十分だった機能を提供するプラグインソフトを利用者がブラウザに追加することで、そのプラグインを利用した様々な表現(主に画像・音・動画)が可能にするもの。
  • ただ、アップル社は最近になってこのFlashを様々な理由から嫌うようになり、対立を深めている。
  • その動きとは別にHTMLの機能を増やして、いままで苦手だった表現をプラグインなしにブラウザのみで行えるようにしようという動きが何年も前から始まり、各ブラウザが対応をしつつある。→ HTML5
  • ただし、この仕様はまだ最終決定版には至ってない。

本書の内容

  • 本書の要点は2つある。ひとつは「iPhoneぽいWebアプリケーションを作る方法」、もうひとつは「Webアプリケーションをネイティブ・アプリケーションに変換する方法」だ。
  • 後者はPhoneGapというフリーのライブラリツールにより実現される。PhoneGapは単なる変換だけではなく、Webアプリケーションでは利用できなかったiPhone固有の機能を使う方法も提供されている。例えば、位置情報の取得やバイブレーション機能がJavascriptで利用可能になる。
  • これにより「開発が容易で」「iPhoneの機能がある程度使えて」「アップルストアで販売可能な」アプリケーションが開発可能になるというのが、本書の目的である。
  • ただし、PhoneGapは、アップル社ではないサードパーティ製であるため、この方法が今後とも可能であるという保証はない。
  • PhoneGapの存在はアップル社の不利益になるとは思えないが、例えばセキュリティ上の問題が発生した場合には、このツールで作ったアプリケーションが審査に合格しないようになるということもありうる。

感想

  • iPhoneアプリケーション開発ガイド」というタイトルは本書の内容としては適切ではないように思える。サブタイトルの「HTML+CSS+JavaScriptによる開発手法」の方が実情に近い。原著のタイトルは「Building iPhone Apps with HTML, CSS, and JavaScript」と長いが親切。
  • 原著が書かれた時期が若干古いため細かい点で違いがあったものの、現行の開発環境でも概ね動作可能なサンプルが掲載されており、打ち込みながら気楽に読み進めることができた。
  • サンプルコードの解説が豊富で解りやすい。逆に言えば、既にiPhone上でのWebアプリケーションに詳しい人にとっては冗長かもしれない。
  • Objective-Cを使わないという方針は本書を通して一貫している。とは言えネイティブ・アプリケーションの開発環境であるXcodeは必要。Xcodeを利用したことがない場合は本書だけでは不十分かもしれない。また、Javascriptの基礎知識も当然必要となる。
  • Webアプリケーションとネイティブ・アプリケーションのいいとこ取りをしているため、依存関係が多岐に渡るという点も心配だ。
  • 具体的には「HTML, CSS, Javascript」といったWebアプリケーション開発のための基本的な要素と「Xcode, iPhoneSafari, iPhone, Apple Store」といった動作環境側の変化に対して、間に入るPhoneGapが今後どこまでついていけるのかが鍵となる。
  • 本書のサンプルはすべてHTML5より前の機能のみを使って書かれていて、前述のHTML5に関する記述は出てこない。HTML5を利用したWebアプリケーションがiPhoneでどれだけ動作するのか、またそれらは問題なくネイティブ化可能なのか(不可能であるとい理由はなさそうだけど)という点に興味が出てきた。この点については、自分で試してみたい。

iPhoneアプリケーション開発ガイド ―HTML+CSS+JavaScript による開発手法

iPhoneアプリケーション開発ガイド ―HTML+CSS+JavaScript による開発手法