このページの本文へ

前へ 1 2 次へ

Apple Geeks 第176回

iOS 9でサードパーティー製ブラウザが進化した理由

2016年03月04日 10時00分更新

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

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

 本連載「Apple Geeks」は、Apple製ハードウェア/ソフトウェア、またこれらの中核をなすOS X/iOSに関する解説を、余すことなくお贈りする連載です(連載目次はこちら)。

 UNIX使い向けを始め、Apple関連テクノロジー情報を知りつくしたいユーザーに役立つ情報を提供します。

サードパーティー製ブラウザの存在意義

 iOSでは、Webブラウザといえば「Safari」。Appleが開発した標準装備品であり、システムと密接な関係にあるため削除できない。だから皆が黙ってSafariを使うかといえば、そうはならない。あえてサードパーティー製ブラウザを選ぶユーザーは存在するし、Safariにない機能も用意されている。

 確かに、基礎性能という点でサードパーティー製ブラウザは不利だ。iOSアプリでは、安全性確保などさまざまな背景からインタープリタ・コアの収録が許されないため(iOS Developer Program License Agreementの3.3.2項)、独自のレンダリングエンジンを提供できない。アプリの実装はUIWebViewベースとなり、Chromeであれば「Blink」、Firefoxであれば「Gecko」というブラウザとしてのアイデンティティを生かせないのだ。

 スクリプトエンジンにも制約がある。Chromeには「V8」、Firefoxには「SpiderMonkey」というJavaScriptエンジンが存在するが、iOSでは備え付けのJavaScriptCoreを利用するしかない。しかもJITコンパイラ「Nitro」にアクセスできないというハンデまで課されたため、Webアプリを実行させたときのパフォーマンスはSafariに大きく差をつけられていた。

 この状況を変えたのが、AppleがiOS 8のとき投入した新API「WKWebView」だ。これを利用すれば、独自のレンダリング/JavaScriptエンジンは使えないまでも、Safariと同等の描画性能およびWebアプリ実行環境が得られる。エンドユーザー目線に立てば、Safariと同等の機能を持ちつつもSafariにはない機能を持ったサードパーティー製ブラウザを選べる時代に入った、ということができるだろう。

 実際、UIWebViewベースかWKWebViewベースかで、ブラウザアプリのパフォーマンスは大きく変わる。第162回『iOS 8の「WKWebView」でWebアプリが変わる』でも紹介している「WebView」で比較すれば、性能差は歴然だ。

アプリ「WebView」を利用すれば、UIWebViewとWKWebViewのパフォーマンスを比較できる

 ところで、ブラウザアプリがどちらのAPIを使用しているか区別する方法だが、データベースをローカルに構築する機構「IndexDB」がサポートされているかどうかでわかる。IndexDBを使用するJavaScriptコードを実行し、うまく動けばWKWebViewベース、動かなければUIWebViewベースだ。

IndexDBがサポートされているかどうかで、そのブラウザアプリがどちらのAPIを使用しているか判定できる

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

ASCII.jp RSS2.0 配信中