スマホで情報を集めたりゲームをするときにそれがスマホアプリなのかウェブアプリなのかを意識する人はあまりいないと思います。
簡単に言うと画面のアイコンをタップしてサービスやゲームがすぐ始まるものがスマホアプリです。ユーザーが明示的にインストールする必要があります。
ホームスクリーンに並んでいるアイコン一つ一つがスマホアプリで、アイコンをクリックするとアプリ本体が立ち上がります。下記はGoogle Mapの例。
ウェブアプリはSafariやChromeといいったブラウザ上で表示されるサービスです。画面上部にURLが表示されます。ちなみにSafariやChromeのようなブラウザもスマホアプリの1つです。
出来ることの違い
スマートフォンアプリでしかできないこと
- デバイス機能へのアクセス
スマホアプリの一番の特徴はやはりデバイス機能へのアクセスではないでしょうか。
デバイス機能例:カメラ、ジャイロメーター(傾き検知)など
その中でも代表格はやはりカメラです。ポケモンGOに代表されるAR(Artificial Intelligence)機能はカメラ機能へのアクセスなくして実現できません。またInstagramで直感的に写真が投稿、編集できるのはスマホアプリならではの機能となります。
サービス例:ポケモンGO, Instagram,
- かんたん認証
スマホアプリを立ち上げてからIDを入力することってほぼないですよね。それはスマートフォン自体が認証された状態となるので、わざわざIDを聞く必要がないためです。
スマホアプリをインストールする過程で「このアプリはデバイス内のどこどこにアクセスするがよいか」という確認が入ると思いますが、この段階でさまざまな場所へのアクセス権限を記憶させています。
2020年現在では複数人でスマートフォンを使いまわすような使い方はしないので、スマホは個人に帰属するという考えに基づく思想ですね。
ウェブアプリでしかできないこと
- 複数のデバイスで同じアカウントを使ってサービスを利用する
スマートフォンを複数台もっている人が同じゲームを同じアカウントで利用することは難しいです。それは先に述べたようにアカウントがデバイス自体に紐づいているため、アカウントを共有できないためです。
その点ウェブサイトはデバイスに紐づいていないため、ID認証を通せばどのスマホでもアクセスすることが可能です。
メリットとデメリット
スマホアプリとウェブアプリ、メリットもあればデメリットもあります。
スマートフォンアプリ
メリット
- カメラを使用したゲーム、ソリューションを提供可能
- スマートフォンの傾きを利用したゲームを提供可能
- 個人のスマートフォン用にパーソナライズされたサービスにすぐにアクセス可能
- スマートフォン上のアイコンワンクリックでサービスが開く
デメリット
- 機種変更などでスマートフォンのOSが変わると動作不良を起こす場合がある
- スマホ上の1アイコンが1アプリに対応しているため、管理するアプリが多くなると画面が雑多になる
- デバイスの容量を使用するため、いっぱいになったら削除する必要がある
- アプリはデバイスに紐づくことが多いため、スマートフォンを変えるとアカウント情報が消える可能性がある
ウェブアプリ
メリット
- サービスのインストールが不要。ブラウザさえあればすぐにアクセス可能
- デバイスの容量を使用しない
- 機種変更などでスマートフォンのOSが変わっても動作に影響がない(ただし、ブラウザのアップデートは影響あり)
- アカウント情報はサービス側で管理しているため、デバイスが変わってもID/パスワード入力で同じアカウントへアクセス可能
デメリット
- スマートフォン自体の機能(カメラやジャイロメーター)を利用したサービスが提供できない
- デバイス内にプログラムをインストールしないため、アプリより動作が遅い
気を付けること
スマートフォンアプリで気をつけること
- うっかり課金
先に述べたようにスマホアプリは個人情報をあらかじめ記憶しているため、クレジット情報を再入力させることもあまりないため、課金への心理的ハードルが低くなります。
したがってゲームや応援アプリなどに熱くなるとどんどん課金してしまう恐れがあります。
- 容量オーバー
スマホアプリはスマートフォン自体にプログラムをインストールする必要があります。したがってスマホ容量を使用することになるため、大量にインストールすると容量オーバーとなってしまいます。
不要なものを削除すればいい話なのですが、写真や動画を取る度に容量オーバーだから保存できないと言われると結構なストレスになります。
ウェブアプリで気をつけること
- ウイルス
スマートフォンでウェブサイトを閲覧するという行為はPCからウェブサイトを閲覧するのと同じです。PCのウイルス脅威についてはご存知かと思いますが、スマートフォンでも同じことが起こりえます。
PCと比較してまだターゲットにされることが少ないですが、スマホ技術の経年と今後のスマホ重要度の増加によって耳にする機会も増えてくるのではないかと思います。
こちらは有名なマルウェアであるランサムウェア感染OSの割合です。2019年のデータです。(*便宜上ウイルス、マルウェアを同義で扱います)
参照:https://www.statista.com/statistics/701020/major-operating-systems-targeted-by-ransomware/
実に90%弱がWindows OSとなっています。
ランサムウェアとは
デバイスに保存されているデータを勝手に暗号化しアクセス不可能にします。ランサムとは英語で人質という意味で、人質(データ)と引き換えに金をよこせと脅します
技術的な違い
スマートフォンアプリの構成
スマートフォンアプリは小さなプログラムの塊で、この塊をスマホにインストールすることによりプログラムが動作します。データベースもプログラム内に内包している場合もあります。
この小さなプログラム単体で動くものもあれば、裏でサーバと通信をしながらサービスを提供しているものもあります。
インターネットがつながらないところでも完全に動作しているものは単体で動くタイプです。ネットなしでは動かないものはサーバと連携して動くタイプとなります。
スマホアプリには大きく2種類あります。
- ネイティブアプリ
特定のOS専用に作られたアプリケーションのことです。今はiPhoneアプリならSwift言語、AndroidあぷりならKotlin言語を使って構築するのがメジャーです。ネイティブアプリの良いところはその高速性です。
特定のOSに向けた専用プログラムなので変換作業がないため、非常に高速に処理が動きます。
難点はOSの変更がもろにプログラムへ影響する点です。
- ハイブリッドアプリ
ネイティブアプリの上にウェブ技術を載せたものです。デバイスアクセスというネイティブアプリの利便性を兼ね備えながら1つのアプリであらゆるOS上で動かすことができるというウェブアプリの利便性も併せ持ちます。
一見いいとこどりのように見えますが、やはり動作速度はネイティブに劣ってしまうため、要件に応じて使い分ける必要があります。
ウェブアプリの構成
アプリという名前のとおりプログラムの塊には違いありませんが、スマホ自体にインストールはしません。
サーバ側にプログラムの塊があり、ブラウザからの要求に対して表示部分(HTML, CSS, Javascript)のみをスマホ側に呼び出します。
まとめ
いかがでしたか?スマートフォンアプリとウェブアプリは似て非なるものということがご理解いただけましたでしょうか。
作る側(プログラマ側)からすると、この二つは全く別の代物で、どちらか片方ができるからもう片方もできるわけではありません。
1つのデータを表示させるのにも全く異なるコーディングをする必要があります。
メリット・デメリットは当記事で述べた通りでどちらかが優れているというものでもありません。
スマートフォンが世の中に出てきたころは「ウェブは死んだ(ウェブアプリは死んだ)、これからはスマホアプリだ」という声がありましたが、現在を見ればわかる通りそうはなりませんでした。
スマホアプリの便利さもいいが、ウェブアプリの手軽さも捨てがたいわけです。
私はWeb屋さんなので浮気をせず、これからもウェブアプリ道を究めていきたい と所信表明をしたところで今日は筆をおきたいと思います。