Progressive Web Appsに期待する気持ち

Yukako IIDA
3 min readSep 7, 2017

--

前回の記事(『Progressive Web Appsことはじめ』)の続きをば。

PWAするにあたって、期待することは色々とあると思います。私が期待したことは、「Push通知が送れる」はもちろんですが、「同じ端末内にある、ブラウザとアプリ内Web Viewでのデータ共有」です。アプリだとログインしてたけど、Webではしてなかったとかありますよね。ちゃんとデータを共有できていることで、例えば、SNSで流れてきたリンクからきたユーザーの体験とPWAのアプリを直接開いたユーザーの体験がほぼ等しくなることで、よりアプリの存在が手軽に、身近になるのではと思っています。非連続な行為なんだけど連続っぽい体験ができたほうが習慣として定着しやすいんじゃないかなとかそういう気持ちです。

それが実現できるかどうか調査するため、前回の記事のタイミングで、PWAのデータ管理周りについて調査したのでその内容について共有します。

結果から言うと、同じ端末内だと、ブラウザとアプリ内Web View(ただし、Chrome Custom Tabsの場合)でのlocalStorage、indexedDBの値を共有できていることが確認できました。一方の画面でのデータの作成、取得、更新、削除がもう一方でうまく反映されていることを確認したという感じです。

以下は、検証サイトをChromeブラウザとアプリのWebViewから確認した図です。具体的に、黄色で囲ったところをindexedDB、緑で囲ったところをlocalStorageで保存しました。同じ値が反映されていることが確認できます。

これにより、ブラウザとアプリ内Web Viewでデータがちゃんと共有されていることがわかりました。ついでに言うと、PWAから通知を受け取る状態にしているかどうかも、ちゃんと共有できているようでした。どちらかでALLOWすると一方でそれ以降バナーが表示されない、という挙動です。

「*Chrome Custom Tabsに限る」ですが、限った場合、思ったような体験を実現できそうで、うれしい ☺️大きいところでいうとTwitterさんからだとうまくいけます。Facebookさん、LINEさんからだと上記のような挙動にはなりませんでした。うーん。

思馳

余談ですが、私はPCでも基本的にChromeを中心に使用しているので、ブラウザでログインしている場合、PCでのChromeブラウザとmobileでのChromeブラウザのlocalStorageやIndexedDBの値も共有してもらいたいと思ったのですが、そこまで確認できませんでした(mobileの同期が全く終わらなくってw)。同期にかなり時間がかかってしまうことがわかったので、この仕組みがあったとしても(たぶん無いのかな?)、そこ依存でサービスを展開するというのはちょっと難しそうだなというのが正直な感想です。あったらいいなー。色々大変そうだけど。

--

--