ウェブビュー(Webview)とは?Androidシステムの不具合・ネイティブアプリとの違いも解説

スマートフォンアプリの主な形式であるウェブビュー(以下、Webviewと表記)とネイティブアプリ2つのアプリ形式について分かりやすく解説します。
結論として、Webviewアプリは低予算で作成可能ですが、利用できる機能に制限があります。
ネイティブアプリはさまざまな機能を利用できますが、一定の開発予算が必要です。
また、形式の使い分けはジャンルによっても異なるため、記事の後半で詳しくご紹介しています。
加えて、2021年に起こったAndroidアプリの誤作動について、Webviewシステムの障害が関わっているため、今後も踏まえた対策をご紹介します。
Webアプリとスマートフォンアプリについてはこちらの記事でより詳しく解説しているため、ぜひお読みください。
目次
ウェブビュー(Webview)とは|ローコストのアプリ形式
Webviewは、スマホアプリ上でWebサイトを表示する機能です。スマホの機能を利用してアプリケーションを動作させる形式ではなく、Web上にあるサイトを利用してアプリケーションを動作させます。
Webサイトは、iPhoneとAndroid両方で閲覧できるように作られます。Webサイトを利用するWebviewアプリも、プラットフォームを問わず使用可能です。
Webviewの特長
Webviewの優れている点を3つ紹介します。
開発費や維持費を削減できる
ネイティブアプリは、スマートフォンのOSごとに適したプログラミング言語を使って開発する必要があります。しかし、WebviewによってWebサイトを利用する際は、専用のプログラミング言語が必要な範囲を大幅に削減できます。
既にWebコンテンツを開発している場合、Webviewアプリを使うことで流用できるため、より開発費を抑えることができます。
また、アプリを改修・アップデートする際も、Webview形式であればWebサイトを改修するのみで済みます。ネイティブアプリは各OSごとに改修作業が必要であるため、Webview形式よりも多くの作業を行わなければなりません。
アプリストアの審査が不要
スマホアプリを公開する際は、各OSのアプリストアが行う審査に合格しなければなりません。しかし、Webviewを利用してWebコンテンツを表示する場合、スマホアプリ内の機能ではないため、審査が不要です。
各ストアの審査によって機能が制限されないため、自由にアプリケーションを開発できます。
ネイティブアプリと併用できる
Webviewはあくまで機能の一種であるため、ネイティブアプリに組み込むことができます。ネイティブアプリとWebviewを組み合わせたアプリは「ハイブリッドアプリ」と呼ばれます。
既にWeb上に存在するコンテンツは流用し、新規に開発が必要な部分をネイティブアプリとして開発する、といった手法が可能です。
このように、それぞれの強みを両立するとアプリケーション開発を効果的に進めることができます。
【関連記事】
Webviewの欠点
Webviewには欠点も存在します。3つの欠点を紹介します。
スマートフォンの機能をフル活用できない
スマートフォンの機能をフル活用できるネイティブアプリと比較すると、Webviewが活用できる機能には制限があります。
ネイティブアプリであればカメラ機能やおサイフケータイなどの機能を実装できますが、Webviewで利用する場合は難易度が高くなります。
動作の遅くなる可能性がある
Webviewはオンライン上のサーバにアクセスし、サーバ側でアプリの処理を行います。
ネイティブアプリはスマートフォンのみでアプリの処理を行います。Webviewとネイティブアプリの処理時間が同程度の場合、通信時間が必要である分Webviewの方が処理に時間が必要です。
UIの配置に制限がかかる
ネイティブアプリは、スマートフォンの利用を前提に作られています。ユーザーインターフェース(UI)の細かい配置が可能であり、利用者にリッチな体験を与えることができます。
対して、WebviewはHTMLで作成されたWebサイトを閲覧する機能です。ネイティブアプリと比較するとUIの配置に制限があるため、融通が利かない場面もあります。
Webviewの実例|Amazon
Amazon公式アプリの商品詳細画面にはWebviewが組み込まれています。
アプリ上でもブラウザ上でも、商品詳細画面は同じページを表示しています。頻繁に情報が更新される商品詳細画面にWebviewを使用することで、大幅なコストカットが可能です。
また、商品詳細画面以外の部分にネイティブアプリの機能を使い、ユーザーが使いやすいUIを実現している点も特徴です。
ネイティブアプリとは|ハイクオリティのアプリ形式
アプリストアからスマートフォンにダウンロードして使う、スマートフォン専用のアプリケーション形式が「ネイティブアプリ」です。
AndroidであればKotlinやRuby、iOSであればSwiftやObjective-Cなど、それぞれのOSに適したプログラミング言語を使って開発を行います。
OSごとに開発を行うため、スマートフォンの性能や機能をフル活用できるアプリ形式です。
ネイティブアプリの特長
ネイティブアプリの優れている点を3つ紹介します。
スマートフォンの機能をフル活用できる
ネイティブアプリであれば、スマートフォンに搭載されるカメラや位置情報、プッシュ通知といった機能をフル活用できます。開発するアプリがスマートフォンの持つ機能を必要とする際は、ネイティブアプリを開発するとよいでしょう。
軽快に動作する
Webviewを使用する場合、スマートフォンとサーバ間で通信処理が必要です。一方、スマートフォンの内部で処理が完結するネイティブアプリは、Webviewと比較すると軽快に動作します。
オフラインでも動作する
Web上のコンテンツを利用するWebviewは、仕様上スマートフォンがインターネットに接続されていなければ動作しません。
一方、スマートフォンの内部で処理を行うネイティブアプリであれば、通信状態にかかわらず動作します。
ネイティブアプリの欠点
ネイティブアプリの欠点も押さえて、必要に応じてWebアプリとの使い分けが重要です。
開発費や維持費がかかる
ネイティブアプリはOSごとに開発を行わなければなりません。
つまり、多くの人々にアプリを利用してもらうためには、利用者が多いiOSとAndroidの両方で開発する必要があります。また、アプリを改修しアップデートする際も、OSごとに作業しなければなりません。
しかし、Webview形式であればOSを問わずコンテンツが開発できます。ネイティブアプリはWebview形式と比較すると、開発費や維持費が多く必要です。
アプリストアの審査が必要
開発したアプリをユーザーに届けるためには、アプリを配信するアプリストアの審査に合格する必要があります。iOSならApp Storeで、AndroidならGoogle Playでガイドラインを把握し、違反しない内容でアプリケーションを開発しなければなりません。
App Storeは一つひとつのアプリケーションを人の手でチェックしているため、AndroidのGoogle Playよりも審査が厳しく、時間がかかると言われています。審査に合格しなかった際は修正が必要であるため、さらに時間と手間がかかります。
Webviewであればリリースや改修のたびに審査の必要がないため、自由な開発が可能です。
課金に手数料が発生する
App StoreやGoogle Playに登録したアプリ内で決済処理を行う際、各ストアが手数料を徴収します。App StoreとGoogle Playの手数料はどちらも15~30%であり、ブラウザ上で決済してもらうよりも収入は少なくなります。
ネイティブアプリの実例|タニタ
タニタのヘルスアプリは、トップ画面の配置を自由に設定できることや、Bluetoothを利用して体組成計と連携できることなど、さまざまな機能があります。
ジャンル別アプリ形式のオススメ
Webviewとネイティブアプリの違いについて解説してきました。
それでは、実際にどのようなサービスがそれぞれのアプリ形式に向いているのでしょうか。ここでは、アプリごとにそれぞれ向いているジャンルを紹介します。
使いやすさ重視ならネイティブアプリ
位置情報を利用したアプリはネイティブアプリがオススメです。位置情報を利用した著名な例として「Pokemon GO」があります。地図アプリや周辺情報を表示する際も、位置情報を利用します。
また、ゲームアプリを開発する場合もネイティブアプリがオススメです。ネイティブアプリであれば複雑な処理を素早くできます。また、オフラインでも遊ぶことが可能です。
ネイティブアプリは、位置情報以外にもスマートフォンの機能を使えます。その上、操作が軽快で、通信環境に依存しません。
複雑な処理を伴う機能の実装や、使いやすさを目的とするのであれば、ネイティブアプリでの制作が適しているといえるでしょう。
開発・運用コスト重視ならWebviewアプリ
そのほかショッピングサイトのように、ページの更新が頻繁に必要な場合はWebview形式がオススメです。ネイティブアプリは更新のたびに各アプリストアの審査を通さなければなりません。しかし、Webviewアプリであれば審査の必要はありません。
OSごとに作業が必要なネイティブアプリよりも、手軽かつ迅速に更新できます。
そのため、Webviewアプリであれば、開発やアップデートにかかる費用が比較的安価で済みます。開発・運用コスト重視であれば、Webviewアプリでの制作が適しているといえるでしょう。
PWAとは|第三の選択肢
Progressive Web Apps(先進的なWebアプリ)を略して「PWA」と呼びます。
Webアプリでありつつネイティブアプリのようにリッチな挙動を実現した、革新的なWebアプリです。
PWAの特長
PWAの優れている点を3つ紹介します。
開発費や維持費を削減できる
PWAはWebアプリの一種でありOSを問わず動作します。1つのコンテンツでAndroid・iOS両方の利用が可能です。
ネイティブアプリはOSごとに開発・維持する必要がある、PWAはネイティブアプリよりもコストを大幅に削減できます。
インストールする必要がない
PWAはブラウザ上で動作するアプリケーションです。ユーザーはPWAを利用する際にダウンロード・インストールの必要がありません。
また、PWAはネイティブアプリのようにアプリストアに登録する必要もありません。
軽快に作動する
PWAはキャッシュ機能を活用し、表示よりも先にページをダウンロードします。
ページを開いてから読み込む通常のWebサイトと比較すると、ユーザーはストレスなくコンテンツを楽しむことが可能です。
また、先にページをダウンロードするため、オフラインでも関わりなく閲覧できる点も大きなメリットです。
PWAの欠点
PWAには欠点も存在します。3つの欠点を紹介します。
対応機種が限られる
PWAは2015年にGoogleが発表したアプリケーションです。まだ新しいアプリケーション形式であり、対応機種が限られています。たとえば、Appleが提供するブラウザ「Safari」ではプッシュ通知機能が利用できません。
サイトをSSL化する必要がある
PWAはHTTPS(※)を前提にしたアプリケーション形式です。現在保有しているWebサイトがHTTPである場合は、全体をSSL化しHTTPS化が必要です。
(※)HTTPS:通信を暗号化しセキュリティを強化する手法。
アプリストアに登録できない
前述の通り、アプリストアの登録は手間がかかるため、登録作業の手間を省くことができます。
PWAはアプリストアを通した宣伝ができないため、ユーザーの認知獲得には別の手段を講じなければなりません。
PWAの実例|SUUMO
株式会社リクルートが運営を行う不動産情報サイト「SUUMO」は、いち早くPWAを導入しています。
SUUMOはPWAの機能としてプッシュ通知を実装しています。そうすることで、スマホアプリをインストールしていないユーザーにも物件情報が素早く届きます。
AndroidシステムにおけるWebviewの不具合・障害について
2021年3月、Androidのアプリが起動しない・正常に動作しない不具合が発生しました。不具合が起きたアプリは、Webview機能を搭載したアプリでした。
ここでは、Webviewの仕組みに触れたうえで、不具合の原因や、今後同様のことが起きた際の対策について具体的に解説します。
AndroidアプリにおけるWebviewの仕組み
Androidアプリは、OS上に用意されたさまざまなパーツで構成されています。そのパーツの1つがWebviewです。
Webviewを利用すると、Webブラウザを利用せずに、アプリ内でWeb情報の表示が可能です。しかし、WebviewはWeb情報の参照をするため、Webブラウザと同様に脆弱性が度々発見されます。
そのため、システムアップデート以外でも脆弱性の対策ができるように、OSから切り離されて個別にアップデートされます。
2021年3月に起こったAndroidアプリの誤作動
前述したように、Androidアプリが起動しない・正常に動作しないなどの不具合が2021年3月に発生しました。その原因は、Webviewの不具合だとGoogleが公表しています。
Webviewにバグを含んだバージョンを配信したため、Androidアプリが誤作動を起こしてしまったとのことです。現在は問題が修正されており、最新のWebviewではバグが修正されたバージョンが配布されています。
アプリの誤作動を防ぐ今後の対策は各アプリのアップデート
今後、Androidアプリで不具合が起きた際は、最初にChromeとWebviewのアップデートを試みましょう。
アップデートの方法は、以下のとおりです。
- Google Play ストアの右上にあるプロフィールアイコンから「アプリとデバイスの管理」 を選択します。
- アプリ一覧からChrome・Webviewを探し、タップします。
- 「更新」と表示されていたらそのボタンを押すと、アップデートが始まります。
もしくは、不具合が起きているAndroid端末で、下記のリンクにアクセスします。
- Google Chromeの場合:Google Chrome: 高速で安全
- Webviewの場合:AndroidシステムのWebview
「Google Chrome」「AndroidシステムのWebView」と表示されていることを確認して更新しましょう。
それでもアプリが復旧されない場合の対策
ChromeとWebviewをアップデートしても、アプリが起動できなかったり、不具合を起こしたままだったりする可能性があります。
ここからは、アップデートでアプリが復旧しない場合の解決策について紹介します。
①Google Play ストアからWebviewアプリをアンインストールする
Google Play ストアの右上にあるプロフィールアイコンから「アプリとデバイスの管理」を選択します。アプリ一覧からWebviewを探してタップして、「アンインストール」と表示されているボタンを押せば、アンインストールが完了します。
【アンインストールのボタンが出ない場合】Androidの設定からChomeを無効にする
Google Play ストアからWebvewアプリを開いても、アンインストールのボタンが出ない場合があります。Chromeを無効にすることで復旧できる場合があります。
最初にAndroidの設定画面を開いて、アプリ一覧からChromeを探します。Chromeの「無効」と表示されているボタンを押せば完了です。
②Google Playのメニューの設定から「アプリの自動更新」をオフにする
①の行程が完了したら、「アプリの自動更新」をオフにするのを忘れないようにしましょう。なぜなら、バグのあるバージョンに更新されてしまえば、再び不具合が発生するためです。
具体的な手順は、以下のとおりです。
- Google Play ストアの右上のプロフィールアイコンから「設定」を選択します。
- 「ネットワーク設定」>「アプリの自動更新」と順に選択し、アプリを自動更新しない設定にすれば完了です。
③端末を再起動する
①と②が完了した後に、端末の電源ボタンを長押しして電源を落とします。再起動したら、アプリが正常に稼働するかどうかを確認しましょう。①から③の手順を踏めば、アプリの不具合が解消されている可能性があります。
ただし、今回紹介した手順はあくまで応急処置です。Webviewを初期化すると、更新によって対策された脆弱性がそのままになってしまうため、後に最新バージョンにアップデートするようにしましょう。
自社の開発目的に適した形式を選択しよう!
スマートフォンアプリの形式を紹介しました。ネイティブアプリとWebviewアプリのみならず、ハイブリッドアプリやPWAといった形式も登場しています。
この記事を参考に、自身の開発目的に適した形式を採用してください。
自社でアプリ開発するのが大変そうだと感じたら…
GMOデジタルラボでは開発目的・予算をヒアリングし最適なアプリ制作をご提案いたします。名だたる企業との豊富な取引実績をもとに、既存アプリの乗り換えから新規アプリの導入までぜひご相談ください。
【関連記事】