このページの本文へ

前へ 1 2 次へ

Apple Geeks 第162回

iOS 8の「WKWebKit」でWebアプリが変わる

2015年04月10日 11時00分更新

文● 海上忍(@u_shinobu)、編集●ハイサイ比嘉/ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

圧倒的パフォーマンスの「WKWebKit」

 SafariそのものではなくiOS全体という話であれば、iOS 8のWeb技術における最大の注目点は「WKWebKit」ではないだろうか。

 これまでiOSでは、WebにアクセスするAPIとして「UIWebView」を提供してきたが、OS XのWebKitと比較すると制約が多かった。OS XのWebKitではDOM(Document Object Model、文章や図といったWebページの構成要素)にまでアクセス可能だが、iOSのUIWebViewにはそこまでのAPIが用意されていなかったのだ。

 しかし、AppleはiOS 8でついに“大きな一歩”を踏み出した。UIWebViewを温存し互換性を維持しつつ、新しいWebビュー「WKWebKit」を用意したのだ。WebKitにDOMレベルでアクセスできるAPIもいくつか公開されたため、Webアプリのパフォーマンスが大幅に改善されると考えられる。

 なんといっても、WKWebviewではJavaScriptエンジンに「Nitro」を利用できる。NitroはSafariにしか利用が許可されてこなかったが、サードパーティー製アプリでもWKWebViewを使えばNitroの恩恵にあずかれるのだ。

 実際、UIWebViewとのパフォーマンスの差は一目瞭然。iOSのSafariはまだUIWebViewベースのため、パフォーマンス測定には使えないが、App Storeで公開されている「WebView - WKWebView and UIWebView rendering」というサードパーティー製アプリがある。このアプリは、WKWebViewとUIWebViewそれぞれで1つのURLをレンダリングする機能を持つので、同条件でパフォーマンスを比較できるのだ。

WebView - WKWebView and UIWebView renderingApp
価格無料 作者MashSpots
バージョン1.2 ファイル容量4.9 MB
対応デバイスiPhone/iPad/iPod touch 対応OSiOS 8.0以降

 最初に試したのは「Speedometer」。WebKitチームが開発した、DOMオブジェクトに着目しWebアプリの応答性を測定するベンチマークだ。結果はUIWebKitが23.82、WKWebKitが26.48(いずれもiPhone 6で測定)と、大きな差とはいえないまでもWKWebKitに軍配が挙がった。

DOMオブジェクトに着目したベンチマーク「Speedometer」。WKWebKitのほうが高速だが、劇的なパフォーマンス差というほどではない

 次に試したのは、定番JavaScriptベンチマーク「SunSpider 1.02」。こちらは差が歴然、UIWebViewは1177.7ms、WKWebKitが341.4msとなった(いずれもiPhone 6で測定)。iOSのSafariにおけるWebアプリのボトルネックは、JavaScriptではなくDOM再描画にあるが、これまでNitroを利用できなかったサードパーティー製アプリは事情が異なる。iOS 8以降、Webアプリの可能性は一気に高まることだろう。

定番JavaScriptベンチマーク「SunSpider 1.02」。Nitroを使えるWKWebKitの圧倒的パフォーマンスがわかる


前へ 1 2 次へ

カテゴリートップへ

この連載の記事

ASCII.jp RSS2.0 配信中