HTML5 Scorecard: 新しいiPadとiOS5.1はバグの詰め合わせ

Jolt Awardsのページからリンクが張られていた、 新しいiPad/iOS5.1とHTML5についての記事が気になったので和訳。

2012/5/8追記 *ご指摘を頂いたので、「埋め込み」としていた部分を「組み込み」に修正しました。

Appleは今月同社の最新型タブレットデバイスである「新しいiPad」をリリースした。 新しいiPadは高解像度のRetinaディスプレイ、新型のCPUやGPUとより多くのメモリを搭載している。 iPadリリースの数週間前に、AppleはiOS5.1もリリースしている。 これは、バッテリーの寿命改善やその他さまざまな修正点を含むメンテナンスリリースである。 今や61%のデバイスがiOS5.1にアップグレードしている。

我々のHTML5のスコアカードは、概して、HTML5開発者がプラットフォームやモバイルデ バイス用に開発する際に考えなければならない事について焦点を置いている。 新しいiPadとiOS5.1は共にAppleのエコシステムにおいて特筆すべきアップデートだ。 このHTML5のスコアカードにおいて、個別に評価することにするが、 いくつかの我々の見つけた問題点について調査し、 iOS5を搭載した新しいiPadがどのように動作するかについて、 開発者に対していくつかのガイダンスを提示する。

一言でいうと、新しいiPadはバグの詰め合わせだ。 新しいiPadのディスプレイは信じられないほどきめ細かく、 Webサイトの文章は今や信じられないほど鮮明に表示される。 一方でブラウザエクスピリエンスは、複雑なWebページやWebアプリケーションの再描画をひどくゆっくり行う。 Retinaディスプレイ用に更新されていない画像は、鮮明なテキストとは対照的にぼやけて表示される。 iOS5は多くの新機能を提供するわけではない。そしてはっきりと退化している。 パッケージ化されたWebアプリケーションにとっては、 iOS5.1がローカルストレージやWebSQLの永続性を破壊するので、 それらを当てにすることができなくなった。

iOS5.1

Webデベロッパーによって広く伝えられたように、 iOS5.1では組み込みのWebViewの挙動が変更になった。 WebViewは、PhoneGapやSencha Touchで作成したネイティブパッケージの中でHTML5を動かしている。 それらはWebアプリケーションをネイティブアプリケーションストアで配布するために、 ネイティブアプリケーションの中でWebアプリケーションを動かすための組み込みWebブラウザを提供する。 WebViewは最近のモバイル用OS全てが備えている機能だ。

iOS5.1までのOSは、組み込みのWebViewが利用される際、 HTML5のストレージ機能を利用してローカルに保存されたデータは永続的に保存された。 つまり、あなたのアプリケーションがローカルストレージやWebSQLを利用していた場合、 アプリケーションのデータの一部として扱われた。 これらのアプリケーションの新しいバージョンがインストールされたり組み込まれたりする場合、 データは永続的に保持された。 次にアプリケーションを起動した時、Safariのモバイル版でそうであるように、 ローカルストレージはまるでそれが一時も削除されたりしていないかのようにそこにあった。

iOS5.1では、このデータはもはや永続的なものとは捉えられず、一時的又は過渡期のデータとして扱われる。 そのためiOSはこのデータを、メモリ不足の場合等を含め、警告なしでいつでも削除できる。 これはおそらくAppleがiCloudのバックアップ機能か、 native CoreDataに保存されていないデータに対するiCloudの同期機能を信頼していないからではないか。 まさにその通り、Appleは開発者に対して、iCloud対応のアプリケーションを開発するために、 Appleのネイティブなデータシステムに移行するよう催促している。 もちろんこんなことは全員が望んでいるわけではない。 アプリケーション内のデータ保存をローカルストレージやWebSQLに依存している開発者にとって、 このメカニズムを破棄することはとても大きな取引だ。 SQLiteの基礎を利用したPhoneGapのSQLPluginを利用したり、 CoreDataへの橋渡しを行うJavaScriptのプログラムを自分で書く等、さまざまな回避策がある。

我々は、CSS regionやFile APIのサポートやその他の新しいWebプラットフォーム機能 のようなHTML5の新機能がないか、iOS5.1をつつきまわした。 我々は、オープンソースのModernizr検出ライブラリであるhas.ioというお気に入りのツールをを利用して、 何か隠された機能はないか探した。 一言でいえば、無かった。 iOS5.0から5.1へのアップデートでは、何の機能追加も見つからなかった。 iOSは今だ最高のHTML5サポートをしているモバイルブラウザのうちの一つだが、 しかしこの最新の実装は、モバイルSafariの標準化機能へのサポートを全く深めなかった。 我々は、Safari6でサポートされたのと同様に、早期にCSSリージョンがiOSに組み込ま れることを望んできた。 モバイルSafariのバージョンナンバーは5.1と表示されるので、 我々がリージョン機能を手に入れるのは時間の問題のようではある。 我々は同様に、現在はAppleのiAds専用であるWebGLが 一般のブラウザでも利用できるかどうかも見守ってきた。 haz.ioによると、WebGLはモバイル版Safariにも搭載されている。 しかし、Khronosのデモリポジトリを試したところ、デモは全く動かなかった。

HTML5の開発者は、iOS5.1の中のローカルストレージやWebSQLを利用する時にこの点について注意しなければならない。 iOS5.1のモバイル版SafariのHTML5の新機能は期待できるものではない。

Retina iPad

HTML5の開発者にとって、もっともはっきりしていることは、 iPadのRetinaディスプレイは膨大なピクセル数であるということだ。 新しいiPadは、テレビの1080pよりも高い解像度を弄んでいる。 ユーザインタフェースは、4倍以上に詰め込まれたピクセルの上で描画される。 新しいiPadは、Apple A5X CPUと共にPowerVR SGX543MP2を搭載している。 A5Xは、デュアルコアのARM-Cortex A9デザインで1GHzで動作し、 GPUはQuad-Coreで、大まかにいうとNvidia Tegraと同レベルで動作する。 我々に分かっている、(iPad2とiPhone4Sに搭載されている)A5とA5Xの大きな違いは、新しいQuad-CoreのGPUだ。 新しいピクセル密度も、新しいiPadの処理システムの中で、 GPUこそがもっともアップグレードされた部分であることを示している。

我々はHTML5開発者に注目しているので、 パフォーマンスのうち、Webのベンチマークを重視している。 iOS5.1をインストールしたiPad2を、同じくiOS5.1をインストールした新しいiPadと一緒に動かした結果、 一連の興味深い結果が得られた。

いつものように、JavaScriptの処理能力を調べるため、 SunSpiderとV8ベンチマークスイートを利用した。 新しいiPadはほんのわずかばかりiPad2よりも遅いことを発見した。 (そしてこれは、恐らく新しいディスプレイによるシステム全体に対する税金のようなものであるだろうことは想像に難くない) SunSpiderのスコアは150ポイントほど、そしてV8ベンチマークは45ポイントほど、iPad2よりも悪かった。 我々は数回テストを行い、個別の数値は毎回違うものの、全体としての結果は同じであった。 純粋なJavaScript処理能力において、新しいiPadはiPad2よりも劣っている。

*図注釈)SunSpider v0.91の結果である。小さいほどよい値である。

*図注釈)V8 Benchmark Suite v6の結果である。大きいほどよい値である。

それ故、新しいiPadがどのように描画を行うかを見るために、 我々はいくつかの複雑なWebサイトやWebアプリケーションに注意を向けた。 とても複雑なCSS3アニメーションであるSencha Animation Kickfu demoに注目し、 このデモが比較的よく動くことを期待した。 ほんのちょっとだけテストを先に進めるため、ピンチとズームインの処理を行うことに決め、 ゲームをもう一度プレイしようとした。 そして、今回は膨大な量のタイリングが発生するのを見た。

この厳しいTilingは、iOS5になってから経験してきたように思えるので、新しいiPadの問題ではない。 しかし、新しいiOSと紹介された製品を新しいハードウェアで動作させてよくならないことはまれだ。

我々の試験はいつもCanvasを含めている。 我々は2つの現在お気に入りのCanvasアプリである Canvas RiderとCanvas Cycleをテストした。 これらのアプリは共に、CPU/GPUとブラウザのCanvas描画エンジンをテストできる。 これについては、新しいiPadは良かった。 どちらのアプリについても、描画機能について、iPad2と同等のパフォーマンスを発揮した。 iPad2がどれだけ速いといっても、二つのデバイスのCanvas機能の差を見た目で認識するのは難しかった。

一般的なWebブラウズにおいて、iPad2と新しいiPadの間の一つの特筆すべき差に気付いてしまった。 新しいiPadは、複雑なページの描画が遙かに遅い。

例えば、Ext JSのexampleページにおいて、ページのスクロール中に、ページの底の 新しいタイルをロードしているのが目に見える。 Sencha Touch 2のプロダクトページのようなリッチなコンテンツの画像をズームする際にもまた、 同様にタイリングの挙動が発生する。これはiPad2では見られなかった事象だ。 これは新しいRetinaディスプレイのせいであることは明白だ。 画像やその他の資産のGPUへの転送(そしてバス帯域)が、デバイスがリアルタイム処理できる量を超えているのだ。

我々は、ハードウェアやチップのエキスパートというわけでは全くない。 しかし、この問題の原因は、新しいiPadのパーツが新しい解像度と釣り合ったアップグレードをなされていないのではないか? ということを確かめるために、iFixit breakdownを見て少し掘り下げた。 iPad 2はAppleのA5のチップを使っていて、SoCのパッケージに512MBのDDR2 RAMを搭載している。 これを新しいiPadのA5Xの、メモリを搭載していないSoCパッケージと比べてみろ。 もちろんそこには2つの512MBのElpidaのDDR2チップがある。 新しいiPadは2倍のメモリーを積んでいるし、4倍のピクセル数がある。 しかし、そのベースとなるメモリバスはiPad2と同じだ。 繰り返すが、我々は組み込みシステム設計の専門家ではない。 しかし、我々の見ている幾つかのグラフィックパフォーマンスの問題の原因は明らかで、 (とりわけタイリングとbox shadowsのパフォーマンスのデグレについて) システムのバランスの悪さが原因であろう。

新しいiPadとiOS5.1: HTML5開発者のためのtips

我々は、Appleの最新のモバイルブラウザやハードウェアについて、大抵感情をぶちまける。 しかし、この最新版は良く言えばバグの詰め合わせ、悪く言えば落胆でしかない。 ここ何年かで我々は、Appleが優れたハードウェアとさらに良いHTML5対応ブラウザでライバルをごぼう抜きにするのに慣れてきた。 最近の一連のAppleのハードウェアは、JavaScriptのパフォーマンスの低下を含め、iPad2と比べて退化してきた。 iOS5.1から開発者が信頼してきた機能を取り除いたのは、本当に残念だ。 我々がiPadがまだ最高のタブレットだと信じている一方で、 新しいAppleの製品がそれ以前のものよりもはっきりと良くなっていないのは初めてのことだ。 とりわけビジネス用アプリケーションにとって、iPad 2ではなく新しいiPadを選ぶ理由はどこにもない。

かなりボロンチョに言われてます・・・

誤訳等あればご指摘下さい(´Д`;)

Written on April 20, 2012