iOSの非純正ブラウザーはSafariと比較して不利?

スマートフォンやタブレットは多くの場合、購入してすぐに使える標準のWebブラウザーを備えていますが、その一方で、さまざまなWebブラウザーアプリをアプリストアからダウンロードして使うこともできます。

これは、iPhoneやiPadの「iOS」も同様で、パソコンやAndroidでおなじみGoogle製Webブラウザーアプリ「Chrome」をはじめいくつかのWebブラウザーアプリが存在します。

しかし、残念ながらiOSにおいては、これらの非純正Webブラウザーアプリが逆立ちしても純正(標準)の「Safari」にかなわないところがあるのです。今回の「スマホのちょっと深いとこ」は、iOSで提供されているブラウザーアプリの裏事情を紹介します。

【iOSの非純正WebブラウザーアプリはAppleの部品を使っている】

Webブラウザーを作る場合、Webページのデータをダウンロードして整形し、Webページとして表示する処理を全て自前で作成することが考えられます。本記事では、このようなWebブラウザーの中核機能を実現する部分を「エンジン」と呼ぶことにします。PCやMac、Android向けに提供されている「Mozilla Firefox」や「Google Chrome」、「Opera」などはそれぞれ独自のエンジンによりWebページを表示しています。

ios_browser_001
Android版FirefoxはPC版同様自前のエンジンを使用

ところが、iOSにおいては、Webブラウザーの機能を提供するためにはAppleが開発者向けに提供するソフトウェア部品(名前は「UIWebView」といいます)を使うことが求められ、独自のエンジンを作ったり使ったりすることは認められていません(*1)。iOSで提供されているさまざまな非純正Webブラウザーアプリは、外見や機能は違ってもWebページの表示は同じ部品で行っているわけです(*2、*3) 。

*1:「App Store Review Guidelines」というキーワードでWeb検索すると、iOSアプリの審査に関するさまざまな情報が得られます。
*2: Androidにも「WebView」と呼ばれる同じようなWebブラウザー部品がありますが、これを使わず自前でWebページの表示機能を実現することも可能です。
*3:「Opera Mini」のように、Webページのデータをダウンロードして整形する処理をネットワーク上のコンピューターで行うことでこの制限を回避している例もあります。

ios_browser_002
iOSアプリのWebブラウザー機能はUIWebViewで実現する必要がある
(Appleの開発者ドキュメントより)

【UIWebViewはSafariより処理性能が劣る】

さて、このWebブラウザー部品「UIWebView」ですが、iOSの標準ブラウザー「Safari」と同等の機能を提供しているわけではありません。Webページの表示は同じように行えますが、Webページ上でさまざまな計算処理を行う「JavaScript」の処理性能に大きな違いがあるのです。JavaScriptは動的なWebサイトを実現するために多用されており、その処理性能はWebサイトの表示・動作速度に直結する大事な要素です。

実際にSafariと非純正Webブラウザーアプリ数種、またUIWebViewを用いて作成したサンプルアプリを用いて、JavaScriptの実行速度を計測するベンチマークソフト「SunSpider 1.0.1」を実行させてみました。5回行った計測の平均値を以下に示します。

No. ブラウザー SunSpider結果
※値が小さいほど速い
1 Safari 1756.8 ms
2 Chrome(28.0.1500.16) 6857.0 ms
3 iLunascape (4.1.1) 7129.4 ms
4 Dolphin Browser(V7.4) 6870.7 ms
5 UIWebViewを用いたサンプルアプリ 6851.3 ms

※測定条件は以下の通りです。
[端末] iPhone 4S(32GB、iOS 6.1.3、キャリアはSoftBank)
[接続] Wi-Fi(802.11n、2.4GHz帯)
[回線] NTT東日本 フレッツ 光ネクスト ファミリー・ハイスピードタイプ
[プロバイダ] @nifty(v6プラス)

この測定結果より、Safariとその他の非純正Webブラウザーアプリの間には数値にして約4倍のスペック差があることになります。サンプルアプリとの比較から、Safari以外のブラウザーはWebページの表示にUIWebViewを用いていると推測されます。なお、iLunascapeのみさらに実行速度が遅い結果となりましたが理由は不明です。

ios_browser_003
Safariとそのほかで差が歴然
(写真左:Safari、写真右:Chrome)

今回使用したサンプルアプリは、本当にUIWebViewをそのまま使っただけのアプリ(作成時間:10分未満)で、パフォーマンス面を含めて一切の工夫を行っていません。そんなサンプルアプリと、非純正Webブラウザーアプリが同じ程度の性能であることから、UIWebViewに頼らざるを得ない非純正WebブラウザーアプリがSafari相当の性能を提供することは難しいと考えてよいでしょう。

【非純正iOSブラウザーはSafariとのハンデマッチを強いられる】

ChromeのGoogleアカウント連携機能など、Webページ表示以外の追加機能では非純正Webブラウザーアプリが独自性を発揮する余地が残されています。しかしながら、肝心のWebページ表示機能についてはAppleの部品(それもSafariより性能の悪い部品)を使わざるを得ず、iOSにおいて非純正Webブラウザーアプリが不利な状況に置かれているのは間違いありません。

このあたり「iOSではSafariを使えばいいじゃない? 非純正Webブラウザーアプリなんていらないじゃない?」というAppleの本音がなんとなく透けて見えます。個人的にはiOSのSafariでそれほど不便していないのですが、その一方で、個性的なWebブラウザーが選び放題のAndroidと比較して少々寂しく思えるのも正直なところです。この辺り、みなさんはどう思いますか?


■関連リンク
エスマックス(S-MAX)
エスマックス(S-MAX) smaxjp on Twitter
S-MAX - Facebookページ
連載『吉川英一の「スマホのちょっと深いとこ」』記事一覧 - S-MAX
今日の気分はバリいくつ?
iOS Dev Center - Apple Developer