WebView 単語

ウェブビュー

3.2千文字の記事
  • twitter
  • facebook
  • はてな
  • LINE

WebViewとは、HTMLブラウズ機を持つGUIパーツである。

割と一般的な名前のため同名のアプリがいくつかあるが、ここでは解説しない。

概要

アプリ開発ではボタンチェックボックスなどのGUI部品を組み合わせてユーザーインターフェースを作るのだが、その際にWebViewという部品が使用できる。

内部にはChromeなどのブラウザと同じHTMLレンリング(描画)エンジンが入っており、WebViewの部品内ではWebコンテンツと同じ手法(HTML + CSS + JavaScript)でインタラティブなプログラム製作が可になる。

採用環境

アプリ一覧名前が表示されるAndroid以外でもiOSWindowsMacOSなどの各種プラットフォーム、JavaFX・FlutterなどのマルチラットフォーGUIフレームワーク等に(若干名前バリエーションはあるが)幅広く存在する。

使用しているエンジンは、AndroidではChromeと同じBlinkエンジンだが、他はSafariと同じWebKitを使用しているものが多い。が、元をたどれば同じだ。WindowsEdgeエンジンを使用していたが、EdgeChromiumベースになってからは、WebView2という名前Blinkエンジンを使用したWebViewが提供されるようになった。

ブラウザとの違い

ブラウザとの違いとしては、あくまでもGUI部品の一つなので、アプリ内の他の部品や機と連携が可という点である。ブラウザセキュリティ上の問題からサンドボックスモデルを採用しているので、原則としてブラウザ内の要素からブラウザ外に働きかけることは出来ない。

先述のようにAndroidではアプリ一覧に表示されるが、あくまでも部品なのでWebView単独でアプリとして起動することはできない。

用途

ブラウザとして

極端な話をすれば、WebViewを一つだけウィンドウいっぱいに貼り付けてGoogleYahoo! Japanトップページを表示させただけで、世界シェアトップブラウザであるGoogle Chromeに匹敵するHTML描画を持つブラウザアプリ製作出来てしまうと言っても過言ではない(もっとも既存ブラウザの丸パクリだし、機も色々足りてないが)

そこまで極端でなくとも、表示した任意のWebページに何らかの操作を加えるという使い方もできる。どういう操作をするかはアプリ開発者の工夫のしどころである。

Single Page Application

実際のところは、WebViewを一つ貼り付けるだけというところまでは上記と一緒だが、SPA(Single Page Application)と呼ばれる1つのHTMLページだけでアプリの全機をまかなうタイプのものを表示させるという使い方が多い。ネイティブはガワのWebViewだけなので、ガワネイティブと呼ぶことがある。WebView外部とはハードウェアへのアクセスの際に連携するといった使い方になる。

たとえば、メルカリのようなフリーマーケットアプリであれば、閲覧や購入機はWebView上で実装し、品物を出品する際の写真カメラと連携するといった具合である。

HTML Viewerとして

マニュアルヘルプファイルローカルHTML文書として作成して、それを表示させるのに使うこともできる。同じ理屈でWebサイトアクセスさせれば、「運営からのお知らせ」的なものの配信もできる。表示される文書に外部へのリンクが含まれていると意図しないページを表示できてしまうので注意が必要なのは言うまでもない。

メリットとデメリット

メリット

プラットフォーム環境の充実

ラットフォーム側としては、オープンソースになっているブラウザレンリングエンジンを取り込めば、タダで高機GUI部品を提供することができる。

開発コストの削減

アプリ開発者側としては、商用サイト構築などで大きな発展を遂げたWeb関連の開発技術・ライブラリをそのまま転用できるし、WebViewで表示させるHTML部分さえ書けば他のプラットフォームのWebViewに容易に移植できる。Webサイトに使用しているHTMLを流用することも考えられる。

ユーザー体験の向上

ユーザー側としては、各プラットフォームやWebページとの間で操作感が統一され、操作方法をいちいち覚え直さずに済む。また、製作コストの低下によりアプリの品質向上にリソースが回ってくるかもしれない。

デメリット

パフォーマンスの低下

ブラウザエンジンを介することや、内部でスクリプト言語であるJavaScriptを使用していることなどにより、ネイティブアプリ開発を行った場合にべると動作速度はやや遅くなる傾向がある。

ただし、ハードウェアの性は年々向上しているので、体感速度にはが出ないことも多い。

セキュリティ対応の負担

基本的にブラウザと同じなので、ブラウザと同じセキュリティホールを突かれる可性がある。ネイティブ開発ラットフォームにも脆弱性問題は存在するのでWebViewに限ったことではないが、多機だけにシンプルな部品を使用した場合には起きない予想外の組み合わせが発生する可性もある。

WebViewはプラットフォーム側からセキュリティアップデートが配信されるため気にしなくても大丈夫な場合も多い。しかし、解決策が見つかる前に世間に脆弱性が知れ渡るゼロデイ問題などで、緊急かつ深刻なを受ける場合には、アプリ側でWebViewの利用あるいはアプリそのものの利用を一時停止させるといった対策が必要となる。

バージョンアップ対応の負担

先述のようにWebViewのバージョンは各アプリではなくプラットフォーム側が管理している。最近のブラウザローリングリリース方式を取るものが流なので、WebViewもそれにあわせて頻繁に自動アップデートを繰り返すことになる。結果として、アプリ側は変化していないのにWebView側が勝手にアップデートしたせいでアプリが動かなくなるという、何もしてないのに壊れた的展開が起こることがある。

ユーザー側ができる対策としてWebViewを古いバージョンに戻すという方法が考えられるが、OSごとに以下のような問題点がある。

関連動画

関連項目

この記事を編集する

掲示板

おすすめトレンド

ニコニ広告で宣伝された記事

記事と一緒に動画もおすすめ!
もっと見る

急上昇ワード改

最終更新:2024/04/24(水) 14:00

ほめられた記事

最終更新:2024/04/24(水) 14:00

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

           

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

タグ編集にはログインが必要です。

タグ編集には利用規約の同意が必要です。

TOP