🤔

「誰のためのPWA?」- PWAのメリット・デメリットについて考えてみた

2024/02/14に公開

はじめに

コミューン株式会社でWebエンジニアをやってます。Buzo(@buzou_muzou)です。
最近、iOSでプッシュ通知が解禁されたこと[1]もあり、にわかにPWAが注目されています(?)。
弊社の技術戦略責任者である、あのちっく氏(@anoChick)とXのspacesで
PWAのメリットについてベンダー側・ユーザー側の双方の視点から話した内容をまとめました。

PWAとは?

PWAとはProgressive web appの略で、Webアプリをネイティブアプリのように動作させるフロントエンドの技術のことです。[2]
最近では、iOSにおいてもプッシュ通知が使えるようになり[1:1]注目(?)されています。
↓あのちっく氏によるPWAまとめスクラップ
https://zenn.dev/anochick/scraps/1536552e27c72b

PWAのメリット・デメリット

PWAを導入することで、どんなことが嬉しいのか。また、どんなデメリットがあるかについて
ベンダー側、ユーザー側それぞれの視点から考えました。
ここでいう「ベンダー」とは、サービスの提供者を想定しています。

ベンダー側

🥰メリット

  • 開発コストが少なくなる
    AndroidやiOS向けにネイティブアプリを開発しなくても、プッシュ通知などのネイティブの体験をカバーできるため、Webアプリの開発コストだけで済むことになります。

  • 検索に強い
    Googleなどの検索エンジンのインデックスされるため、サービスの露出の機会が増えるので流入のチャネルがネイティブアプリのみを提供する場合と比べると増えることとなります。

  • プラットフォームによる審査がない
    AppStoreやGoogle Playなどのプラットフォームの審査が不要でサービスを公開できるので、
    より自由なサービスを開発できます。プラットフォームの気まぐれで突然アプリがBanされてしまうなどのリスクがありません。また、審査の時間を待たなくてよくなるので新機能やバグの修正などが迅速にリリースできるようになります。

😈デメリット

  • OSのベンダーに意向次第でプッシュ通知が突然使えなくなったりするリスクがある
    これはプッシュ通知以外のネイティブAPI全般で起こりうるリスクです。

  • ネイティブの体験としての一貫性が失われる。
    ページ遷移の仕方、アニメーションの動かし方などOSで定められたネイティブアプリとしての体験は提供しづらくユーザーが混乱する可能性があります。

  • 利用できないネイティブのAPIが多い
    PWAとして利用できるAPIはネイティブアプリと比べると非常に限られています。 [3]
    そのため、ネイティブアプリではできるが、PWAではできないことが多くあります。
    提供したいサービスによっては致命的になる可能性があります。
    逆にメディア系など、ネイティブのAPIを利用した体験をそこまで必要としないようなサービスの場合はあまりデメリットにならないかもしれません。

  • 最新のネイティブのAPIが使えない
    OSベンダーが提供する最新のAPIはネイティブアプリと比べて使えるようになるまでタイムラグがある、または永遠に対応されない可能性があります。

ユーザー側

🥰メリット

  • サービスの利用料金が安くなる
    Google PlayやAppStoreなどのプラットフォームを介さないことで、課金による手数料が掛からないので、その分サービスの利用料が安くなる可能性があります。(あくまでサービス提供者側の意向によるが)

  • スマホのストレージを圧迫しない
    PWAをオフラインで動かせるような仕様でつくってある場合はこの限りではないが、ネイティブアプリと比べると端末に保持するデータ容量は少なくなります。

  • インストール時の通信量が少ない
    こちらもPWAをオフラインで動かせるような仕様でつくってある場合はこの限りではないが、PWAネイティブアプリと比べてアプリインストール時の通信量が少なくなる。
    そのため、外出先でWi-Fiがない環境などでアプリをインストールしたい場面(例えば、クーポンアプリやイベントのアプリなど)に、ダウンロード時間が短くなったり、モバイル通信料を気にしなくてよくなるということがありえます。

😈デメリット

  • UIの違和感
    画面遷移やアニメーションその他色々なUIの挙動がネイティブアプリと違うものになってしまう可能性が高いです。そういった挙動の一貫性のなさにユーザーは混乱してしまう可能性があるかもしれません。

  • 概念が分かりにくい
    そもそもPWAとはなんなのか、どうすればインストールできるのか、などが依然周知されていない現状があります。そのためユーザーとしては利用しづらいと感じる可能性があります。

おわりに

メリットが多い一方でデメリットも存在するため、すべてのサービスでネイティブアプリよりPWAが優れているわけではありません。
ただ、サービスの性質によってはPWAのメリットがデメリットを上回ることもあるのではないかと思いました。
次はどのようなサービスがPWAに向いているか考えてみると面白いのではないでしょうか。

脚注
  1. WebKit Features in Safari 16.4 | WebKit ↩︎ ↩︎

  2. Progressive web apps | MDN ↩︎

  3. What PWA Can Do Today ↩︎

コミューン株式会社

Discussion