Service Workerとは?
出典:W3C
W3Cで規格が進むServiceWorker。最近では利用も進んでいます。
W3でCの状況:https://www.w3.org/TR/service-workers-1/
利用が進む要因としてはChromeが対応したことが大きいですね。
特にAndorid端末だとLolipopOS(5.0)以降は標準ブラウザがChromeとなったこともあり、
現在ではAndorid端末の大半がServiceWorkerに対応している事になります。
また、ブラウザシェアでもCheromeがシェアを伸ばしていることも普及の要因になっていますね。
ブラウザシェア:https://webrage.jp/techblog/pc_browser_share/
出典:WRブログ
とはいえ、safariがまだ未対応ということでiPhoneでは使えない機能※になっているため、今後のSafariの対応が待たれますね。
ちなみに、MacOSではChromeで動くが、iOSではChromeで動かない・・・です。Appleは2015年に5カ年計画の中で対応すると意思表示はあるのでそろそろ対応して欲しいところです。
ServiceWorkerの対応状況はここで確認出来ます。https://jakearchibald.github.io/isserviceworkerready/
個人的な考えですが、
Webベースの事業モデルであるGoogleは、Webの利便性を上げてユーザーをWebに流したい。
アプリベースの事業モデルであるAppleはWebの利便性よりもOS内(アプリ内)にユーザーを留めたいという意思の現れにも思います。
おっと、忘れてはいけないマイクロソフトもAppleよりの考えなのかedgeも未対応ですね。
Webページのオフライン閲覧やプッシュ通知が可能!
ServiceWokerではブラウザに常駐するようなjsを仕込めます。
Chromeブラウザで下記のリンクを開くとブラウザ内部に登録済みのServiceWorkeが確認出来ます。
chrome://serviceworker-internals/
どうですか結構登録しているもんですよね。
登録されたWebページに関しては、オフライン時にキャッシュしたデータでオフライン表示したり、Webページからのプッシュ通知を受けることも可能です。
例えば、通信できない場所で、過去に見ていたWebページを見ることってありますが、キャッシュ機能を使えば閲覧可能になりますね。
また、更新されたコンテンツだけを取って来たりすれば、アプリライクな閲覧体験をユーザーに提供できるので、情報系のアプリだとアプリいらなくね?となりますよね。
COINsではプッシュ通知の仕組みでServiceWorkerを使っています。
Webページへアクセスして通知許可を取り、ServiceWorkerを登録することで、Webページからのプッシュ通知をアプリと同じように通知バーへ表示できます。
Webページから通知できるCOINs https://webpush.jp/
今の感じだと、オフライン閲覧よりもプッシュ通知の方が利用シーンが増えていますが、
COINsではプッシュのみではなくよりリッチなWebページ体験を提供するためServiceWorkerの使い方を創意工夫中です。
皆さんをアッと驚かすようなサービスも準備中なので、楽しみにお待ち下さい!