SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

ハイブリッドアプリの動作性能を飛躍的にアップさせるiOS 8の新ブラウザエンジンを検証する

  • X ポスト
  • このエントリーをはてなブックマークに追加

JavaScriptベンチマーク

 性能評価によく用いられる「SunSpider」および「Octane」を用いて、JavaScriptの実行速度を計測しました。また、こちらのサイトを用いて、ECMAScript 6への準拠についても確認しました。

 
JavaScriptの実行速度とECMAScript 6への準拠
  iOS 8 WKWebView iOS 8 UIWebView iOS 7 UIWebView
SunSpiderベンチマーク 949.8ミリ秒 4249.6ミリ秒 3659.5ミリ秒
Octaneベンチマーク 2908 テスト中にアプリがクラッシュ テスト中にアプリがクラッシュ
ECMAScript 6互換性 28/71 28/71 2/71

 SunSpiderベンチマークの実行結果から、UIWebViewと比較して、WKWebViewは大幅に性能が向上していることが分かります。WKWebViewは、JIT(Just-In-Time)実行方式を採用した「Nitro」エンジンに切り替えられています。そのため、ベンチマークからは4.5倍の速度向上が見込めることが分かりました。

 同時に、Octaneベンチマークの結果より、必要とするメモリ量も削減されていることが分かりました。UIWebViewでは、ベンチマーク中にメモリ不足でクラッシュしていたものが、WKWebViewではベンチマークスコアを表示するところまで到達しました。ハイブリッドアプリの安定性も大きく改善されそうです。

実際のアプリでのベンチマーク結果

 次の表は、Canvasを用いたベンチマークツールを用いて、iOS 8のWKWebViewがどの程度高速化されるかを確認した結果です。

iOS 8のWKWebViewがどの程度高速化されるか
  iOS 8 WKWebView  iOS 8 UIWebView  iOS 7 UIWebView 
HTML5-Benchmark.com  4113 3277 3377

 UIWebViewと比べて、よりスムーズに動作していることが確認できます。一般的なアプリで考えた場合、JavaScriptが中心のプログラムであれば、20%程度のパフォーマンス向上は見込めるのではないでしょうか。

APIの違い

 実は、WKWebViewはUIWebViewとAPIレベルの互換性がありません。そのため、UIWebViewからWKWebViewに移行するためには、文字列置換以上の修正を行う必要があります。その分、APIのアーキテクチャはよりモダンなものとなり、実装もシンプルに記述できるように改良されています。

 WKWebViewの最も大きな変更は、ハイブリッドアプリの中核部分であるブラウザ側とネイティブ側のブリッジ方法が組み込まれたことです。PhoneGapなど既存の仕組みでは、内部的にAJAXで呼び出したり、IFRAME要素を使ったりして、少し回りくどい呼び出しとなっています。WKWebViewを用いると、各レイヤに直接データを渡せます。そのため、ブリッジ処理はより正確で、オーバーヘッドが少なくなるでしょう。

Monaca/PhoneGap/CordovaでWKWebViewを用いる

 モバイルアプリケーション向けフレームワークのMonacaPhoneGapCordovaでは、現在のところUIWebViewが用いられています。これをWKWebViewに切り替えるだけで、アプリの実行速度が大幅に向上されます。しかし、ブラウザエンジンとしては全く別物であるため、相当の移植作業が必要となります。とはいえ、遠くない将来、iOS 8向けにWKWebViewで利用可能にされるでしょう。

 また、MonacaやPhoneGapに関するトピックとしては「Swift言語」があります。ネイティブ側を拡張できるプラグインという仕組みがあり、その実装にSwift言語を使うことができるようになりました。iOS 7でも利用できるため、ネイティブコードを書く人にとっては良い情報です。

最後に

 今回の記事は、MonacaのiOS 8対応に際して調査し、把握したことを記述しました。今後、ハイブリッドアプリのパフォーマンスはますます向上するでしょう。「Onsen UI」のようなモダンなJSフレームワークと組み合わせることで、「ネイティブ対ハイブリッド」の議論が過去のものになるのは、時間の問題だと感じました。

 本稿で取り上げた以外にも、iOS 8のWebViewに追加・修正された機能があるかもしれません。筆者は引き続き、ハイブリッドアプリの可能性に注目していきたいと思います。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

田中 正裕(アシアル株式会社)(タナカ マサヒロ)

アシアル株式会社 代表取締役社長。ユーザーインタフェース設計からインフラストラクチャー構築まで、最先端の技術を駆使したシステム構築を手がける。特にPHPをはじめとするOSSや、HTML5やJavaScriptといったオープンなアーキテクチャーを用いたシステムの構築に尽力している。モバイルアプリ開発...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7848 2014/06/23 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング