Progressive Web AppsはNative AppsのUXを忠実にWEBで再現するもの、ではない。

StookawaIMGL1797 TP V

今日会社でWEBとネイティブについて話されているのをちょっと耳にしたので、気持ちがアツい?うちに書いておこうと思う。

これまではアプリと言えばネイティブアプリで古くはAndroidはJava、iOSはObjective-Cで書くのが普通だった。そして最近はAndroidならKotlin、iOSならSwiftで書く。

で、「同じコード二回書くのクソじゃね?」って発想で生まれたのが、クロスプラットフォームで開発できる、React Nativeとかが最近は結構流行ってるイメージ。

これは、WEBの技術でネイティブアプリが書けるってのはもちろんなんだけど、やっぱりクロスプラットフォームだからってのがデカいと思う。

僕もWEB屋で、IE対応とかはあるにはあるけど、基本的に「ブラウザ上であればどの端末であっても動く」ので、同じコードを二回書くのは苦痛でしか無い。

で、ここからが本題なんだけど、ネイティブの機能をWEBで実現できるようにしようって発想で生まれたのが、Progressive Web Apps、PWAだ。

WEBでネイティブっぽさを表現する

この前、以下のエントリがバズっていた。

PWAが来るって言っているエンジニアは今すぐ辞めろ

ネイティブのヌルヌルトランジションに慣れているユーザーからしたらウンコアプリにしか見えないっしょ。

こう言っているということは、この人は、ネイティブとPWAは全く同じものであるべき、と言っているわけだ。

ハッキリ言って、これは全然違う。お前が今すぐ辞めろってくらい。ネイティブとPWAは違うんです。技術的な話ではなく、設計思想が。

PWAってのは、「ブラウジングくらいしかまともにできない端末、環境でもネイティブのUXに近いものを提供するもの」です。

ネイティブでヌルヌル動かすには、それなりの端末スペックが必要で、非同期通信で先読みしたものをキャッシュしておく必要があります。要は潤沢なリソースをふんだんに使って、ヌルサクを実現してるわけ。

つまり、貧弱なスペックで回線も細いものしか無い人達、主としてターゲットは、後進国。PWAのターゲットは、後進国です。

だから日本国内、北米とかのマーケットだけみて、PWAなんてゴミって言うのは、完全にナンセンス。

もちろんPWAはまだ発展途上だから、多少実装上の悪さもあるかもしれないが、基本的には「できない」ではなく「やっていない」ことの方が多いと思ってもらっていい。

タイムライン上で複数投稿があった時にスワイプで切り替えられない。

動画が自動再生しないの。止まるは止まるは。もう何なの???って感じ。

スワイプで切り替えるということは、そのスワイプ後の画像を先読みしておくことを意味する。でも、これはあえてそういう実装にはしていないだけだ。

ぶっちゃけスワイプで切り替えなんて普通にやればなんの問題もなく実装できる。というか、メッチャ簡単。

だが、ここではあえてそういう実装にはしていない。上記の通り、後進国ターゲットなので、データの取得はオンデマンドで行いたいからだ。

動画だってそう。勝手に再生させるんではなく、オンデマンドで。

例えば、自分が海外でSIMを買って使う時のことを考えてみてほしい。あれって1日の制限が結構少なくて、普通に使ったら、かなりデータ量を使う。

できれば使いたくないですよね?

でも、アプリ(WEBサイト)が先読み先読みで通信料が膨大になったらどうですか?キレませんか?僕ならキレます。再生したくないのに再生するな、と。

つまりむやみやたらとギガを消費しない設計で作られてんすよ、PWAってのは。

だから、ネイティブのUXとは違って当然。みているマーケットが異なるから

PWAの意味を見間違っているエンジニアは今すぐ辞めろ

今回取り上げられたInstagram。

Instagramはネイティブも、PWAも両展開している。ってことは、「わざわざコストをかけて」PWA版を作った、ということ。ネイティブと同じターゲットなら、わざわざ作りませんよね、開発コストもかかれば運用コストも上がるので。

でも作った。

それはつまり「別のターゲットに向けて展開している」ってことなんすよ。エンジニアなのに、なんでこんなこともわからないんでしょうね?

逆にPWA「だけ」なら、先読みさせまくる設計もアリとは思います。例えば、大人の事情でストアに載せれないやつとか…(察してください)。

こういう戦略の場合は、データ量気にせず最高のUXを追求してPWAを作るって手もアリです。

要は、適材適所なんすよ。

Instagramで最高のUXを体験したいなら、ネイティブを使えばいいし、データ量ちょっと気になるし、、とかならPWA版を使えばいい。Twitterだって、同じ戦略ですよ。

ハッキリ言って、PWAはこれから、来ます。今は適材適所で使うことしか出来ないけど、発展途上ですからね。まぁゴミだって言われるくらいには、業界に浸透しているということでしょう!

あースッキリ。