iPhone用Safariに、GoogleGearのようにWebアプリをオフラインで実行させる機能が実装されているとの情報がありました。
※11月26日追記:@ITの記事から飛んでこられた方へ。以下のエントリー内容はすでに公式情報となっており、Appleの「Safari Web Content Guide for iPhone OS」に詳細が記載されています。
[webkit-dev] HTML5 Application Cacheによると、iPhoneOS 2.1に搭載されているMobileSafariに、HTML5で規定されている「applicationCache」が実装されているとの記載があります。 ※Mac OS X / WindowsのSafariは未搭載であるとの記載もあります。
なお、このアプリケーションキャッシュについても先のエントリー同様に、ホーム画面に登録した後、アイコンから起動しなければ効力を発揮しないとも書かれています。
これらを考慮すると、実はiPhone2.1というのは、Safari関連でかなり大きなアップデートであったことが伺い知れます。
HTML5のOffline Web applicationsとは、リソースファイルの定義を行うmanifestファイルをWebサイトに設置しHTMLファイルのヘッダ部分にそのmanifestファイルへの参照を記述することにより、ブラウザがキャッシュを利用したり、オンラインファイルを参照しに行くという処理を行うものです。
キャッシュマニフェストの例CACHE MANIFEST # v1 # これはコメントです。 http://www.foo.com/index.html http://www.foo.com/header.png http://www.foo.com/blah/blah
HTMLヘッダでの指定例<html manifest="http://www.foo.com/cache-manifest">
iPhoneのSafariでのオフラインでWebアプリを実行する手法としては、data URI scheme(RFC 2397)を利用しclient-side databaseに格納する手続きを踏んだり、あるいはブックマークエリアに格納することにより「擬似的にオフラインアプリを構築すること」も可能なようなのですが、(私からすれば)恐ろしいほどのテクニックを駆使しないといけないため青空文庫のオフライン対応で挫折していた所です。 ※さらに、ブックマーク格納手法は危険な所があるようです。
このアプリケーションキャッシュを利用することにより、Webアプリケーションの可能性がまたひとつ広がることになります。特にiPhoneは3G+Wi-Fiを利用できるとはいえ、やはりネットワークからのファイル読み取り速度には限界があり、ローカルキャッシュで済めばそれに越したことはありません。
もちろんネイティブアプリもいいのですが、今後のWeb標準であるHTML5での実装の場合、”iPhoneプラットフォームに縛られない可能性を残せる”という無視できないメリットがあると考えています。
ただし、実際に私自身でコードを書いて実証したわけではありませんので、これから少しずつ検証を行う必要があると思っています。いつもどおり他力本願的なのですが、情報をお持ちの方やお気づきの点がある方はご指摘頂ければ幸いです。



[...] それは、次のiPhone SDK2.2のsafariから、ウェブアプリがローカル保存できるようになるらしいというもの。一見、たいしたことのないニュースだけど、多分これはモバイルのパワーバランス [...]
オフラインでの読み込み動作の確認ができました。
manifest ファイルの拡張子がよく分からなかったので .htaccess にMINE type を以下のように追加しました。
AddType text/cache-manifest .manifest
またどうやらホームアイコンからだけでなく、Safari のブックマークからの起動でも大丈夫のようです。
ご参考まで。
hkitago様、コメントありがとうございます。
manifestファイル指定によるオフライン読み込み動作が
確認できたということで、やはりすでに実装されているということですね。
また、MIME typeについても、きちんと調べきれずに書き漏らしてしまっていたのですが
こちらも情報ご提供ありがとうございます。
せっかくiPhoneにいち早く用意されたこの仕組みを、
いかに活用するかが問われてる気がしてきました^^