SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
今からでもいける PWA超入門!#2
堀 正斉
自己紹介
名前:堀 正斉	
所属:某医療系サービス	フロントエンドエンジニア	
言語:CSS(sass),	Javascript,	Ruby	on	Rails	
趣味:サッカー、最近は株も
5,000,000,000
答え:webと繋がっているデバイスの数
多分こんなエコシステムはありません。
But
今までのwebのUXって?
混んでる電車の中、	
急に切れる電波。
低速になって	
ロードを待つ。
レスポンシブ化	
されていない。
Monthly	Unique	Visitor
webアプリ > ネイティブアプリ	
約4倍
Spend	Time	Per	User
webアプリ < ネイティブアプリ	
約20倍
webの課題はスピードとエンゲージメント
ここでPWAの登場
主にエンゲージメント面で。
What’s	PWA?
個人的には

Webでできることを増やしていこうよ!	
みたいな考え方だと捉えています。
PWA化の影響(例)
appのみの戦略を変更し、webappを開発。	
2G回線への対応を行う。	
滞在時間 3倍	
データ量 1/3	
ホーム画面に追加ボタンを購入画面に	
進んだユーザーにのみ出すようにしている。
プッシュ通知を導入。	
滞在時間   +72%	
平均訪問時間 +26%	
再訪問率   +50%
ところで
オフラインになると、悲しい気持ちになりますよね?
可愛くデザインされたはずの恐竜も可愛くない。
ゲームしても最終的に虚しい。
ということでオフラインになった時のページを	
もうちょっと色々あってもいいんじゃないか?
運悪くオフラインになってしまった人のために	
表示するコンテンツを作ってみました
シーン
株を始めようと思って証券会社のサイトに行って	
どんな株を買おうか迷っている30歳男性。	
が、悲しいことに、銘柄を検索していたら	
電波が切れ、オフラインになった。
最近株のことばかり考えてるので…すみません。笑
デモ
なぜオフラインでもページが表示された?
Service	Workerを通じてcache	APIを利用	
リソースを端末にダウンロードしておく	
キャッシュをアプリ側にレスポンスとして返す
オフラインでも、キャッシュしたデータを用いて画面表示ができた!
What’s	service	worker?
バックグラウンドで起動するJavascript環境
【主に出来ること】
・オフラインでのアプリケーションへのアクセス	
・ネイティブアプリUIをwebアプリに	
・プッシュ通知	
※例:日経電子版TOPページ	
https://r.nikkei.com/
service	workerの特徴
①webのライフサイクルとは全く別。	
→ブラウザを閉じていても動いている	
②DOMに直接アクセスできない	
③ネットワークプロキシのようなもので、	
 ネットワークリクエストをコントロール出来る
service	workerのライフサイクル(1)
SW
Client Server
←別のところで動く
service	workerのライフサイクル(2)
register	SW
install activate idle push
fetch
terminateError
service	workerの注意点
①対応ブラウザはChromeとFirefox	
SafariとEdgeは開発中。	
※Safariについてはv11.3で対応、	
Edgeも次のversionで対応するぽい	
参考	
https://caniuse.com/#search=service	
https://jakearchibald.github.io/isserviceworkerready/	
②dev環境とhttps通信の環境下でないと動作しない。	
→接続へのハイジャック、改ざんなどが行われてしまう	
 可能性があるので、これを防ぐため。
アプリの構成
app
js
css
index.html	
offline.html	
sw.js
style.css
offline.js
ソースコードはこんな感じ。
①register
Service	Workerのコントロール下に	
置くページを定義する。
②install
主に静的ファイルをcacheに追加。	
フレームワークとか使うならここで読み込んでも良さそう。
③activate
↑今回は記述してませんが。こんな感じで書きます。	
Service	Workerを更新するタイミングで発火。	
古いキャッシュは削除して、差分を更新する。
④fetch
Service	Worker	がブラウザをコントロールしている時に	
リクエストが発生すると	fetch	イベントが発火。fetch	イベントで何もしなければ、	
ネットワーク経由でリクエストが処理される。
まとめ
・キャッシュに色々とためておくと、オフラインのページでも結構自由自在。	
 フレームワークとか読み込んでおくと良さそう。	
・コードを書くにあたりES6のPromiseあるいはES7のAsyc	Awaitについてはちゃ
んと理解しないとダメ。。(頑張ります・・・)
参考サイト
①https://goo.gl/gQJ79g	
②https://goo.gl/G6upQ9	
③https://goo.gl/9NFxsS	
④https://goo.gl/mjhGpx	
⑤https://goo.gl/vRV1VH	
③が特にオススメです!
PWA一緒に勉強していきましょう!
おしまい

Contenu connexe

Tendances

WP Performance Optimization
WP Performance OptimizationWP Performance Optimization
WP Performance Optimizationmasaaki komori
 
パスワードを管理する時に気にした方がいいあれこれ
パスワードを管理する時に気にした方がいいあれこれパスワードを管理する時に気にした方がいいあれこれ
パスワードを管理する時に気にした方がいいあれこれtoku toku
 
Webっちゃ vol.01 [Wordpressでできること]
Webっちゃ vol.01 [Wordpressでできること]Webっちゃ vol.01 [Wordpressでできること]
Webっちゃ vol.01 [Wordpressでできること]Yoshifumi Nishimoto
 
WordPressってブログじゃないの?
WordPressってブログじゃないの?WordPressってブログじゃないの?
WordPressってブログじゃないの?tokumotonahoko
 
WP-APIを使ってみよう&No PHPテーマという考え方
WP-APIを使ってみよう&No PHPテーマという考え方WP-APIを使ってみよう&No PHPテーマという考え方
WP-APIを使ってみよう&No PHPテーマという考え方Hidetaka Okamoto
 
Web体験を向上させるcdnと表示速度の重要性
Web体験を向上させるcdnと表示速度の重要性Web体験を向上させるcdnと表示速度の重要性
Web体験を向上させるcdnと表示速度の重要性Katsuhisa Ogawa
 

Tendances (6)

WP Performance Optimization
WP Performance OptimizationWP Performance Optimization
WP Performance Optimization
 
パスワードを管理する時に気にした方がいいあれこれ
パスワードを管理する時に気にした方がいいあれこれパスワードを管理する時に気にした方がいいあれこれ
パスワードを管理する時に気にした方がいいあれこれ
 
Webっちゃ vol.01 [Wordpressでできること]
Webっちゃ vol.01 [Wordpressでできること]Webっちゃ vol.01 [Wordpressでできること]
Webっちゃ vol.01 [Wordpressでできること]
 
WordPressってブログじゃないの?
WordPressってブログじゃないの?WordPressってブログじゃないの?
WordPressってブログじゃないの?
 
WP-APIを使ってみよう&No PHPテーマという考え方
WP-APIを使ってみよう&No PHPテーマという考え方WP-APIを使ってみよう&No PHPテーマという考え方
WP-APIを使ってみよう&No PHPテーマという考え方
 
Web体験を向上させるcdnと表示速度の重要性
Web体験を向上させるcdnと表示速度の重要性Web体験を向上させるcdnと表示速度の重要性
Web体験を向上させるcdnと表示速度の重要性
 

Similaire à PWA for beginner#2

アプリエンジニアからクラウド専用のインフラエンジニアになってみて
アプリエンジニアからクラウド専用のインフラエンジニアになってみてアプリエンジニアからクラウド専用のインフラエンジニアになってみて
アプリエンジニアからクラウド専用のインフラエンジニアになってみてSato Shun
 
PWA has come!! / 2019/2/9 ABCD 浜松
PWA has come!! / 2019/2/9 ABCD 浜松PWA has come!! / 2019/2/9 ABCD 浜松
PWA has come!! / 2019/2/9 ABCD 浜松Ryu Shindo
 
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発Ryohei Sogo
 
JavaScript(AngularJS)で作る iOS・Androidアプリ開発ハンズオン
JavaScript(AngularJS)で作る iOS・Androidアプリ開発ハンズオンJavaScript(AngularJS)で作る iOS・Androidアプリ開発ハンズオン
JavaScript(AngularJS)で作る iOS・Androidアプリ開発ハンズオンKazuhiro Yoshimoto
 
Going Serverless, Building Applications with No Servers
Going Serverless, Building Applications with No ServersGoing Serverless, Building Applications with No Servers
Going Serverless, Building Applications with No ServersKeisuke Nishitani
 
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話しDevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話しAkira Nagata
 
Challenge PWA!! Technical Edition @JAG201809
Challenge PWA!! Technical Edition @JAG201809Challenge PWA!! Technical Edition @JAG201809
Challenge PWA!! Technical Edition @JAG201809Ryu Shindo
 
FastViewによるwebの自動最適化とビジネスメリット
FastViewによるwebの自動最適化とビジネスメリットFastViewによるwebの自動最適化とビジネスメリット
FastViewによるwebの自動最適化とビジネスメリットNihonRadware
 
Challenge PWA!! TRY PWA4WP!
Challenge PWA!! TRY PWA4WP!Challenge PWA!! TRY PWA4WP!
Challenge PWA!! TRY PWA4WP!Ryu Shindo
 
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」naoki ando
 
大ヒットソーシャルアプリの裏側
大ヒットソーシャルアプリの裏側大ヒットソーシャルアプリの裏側
大ヒットソーシャルアプリの裏側KLab株式会社
 
サーバーのおしごと
サーバーのおしごとサーバーのおしごと
サーバーのおしごとYugo Shimizu
 
Web開発初心者がReactをチームに導入して半年経った
Web開発初心者がReactをチームに導入して半年経ったWeb開発初心者がReactをチームに導入して半年経った
Web開発初心者がReactをチームに導入して半年経ったkazuki matsumura
 
Android webブラウザのhtml5対応状況
Android webブラウザのhtml5対応状況 Android webブラウザのhtml5対応状況
Android webブラウザのhtml5対応状況 Masakazu Muraoka
 
なるほどわかった!App Service on Linux
なるほどわかった!App Service on Linuxなるほどわかった!App Service on Linux
なるほどわかった!App Service on LinuxYasuaki Matsuda
 
我が家のフロントエンド開発事情
我が家のフロントエンド開発事情我が家のフロントエンド開発事情
我が家のフロントエンド開発事情Naoki Yamada
 

Similaire à PWA for beginner#2 (20)

Webアプリの向こうに見えるPWAアプリ開発
Webアプリの向こうに見えるPWAアプリ開発Webアプリの向こうに見えるPWAアプリ開発
Webアプリの向こうに見えるPWAアプリ開発
 
アプリエンジニアからクラウド専用のインフラエンジニアになってみて
アプリエンジニアからクラウド専用のインフラエンジニアになってみてアプリエンジニアからクラウド専用のインフラエンジニアになってみて
アプリエンジニアからクラウド専用のインフラエンジニアになってみて
 
PWA has come!! / 2019/2/9 ABCD 浜松
PWA has come!! / 2019/2/9 ABCD 浜松PWA has come!! / 2019/2/9 ABCD 浜松
PWA has come!! / 2019/2/9 ABCD 浜松
 
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発
 
JavaScript(AngularJS)で作る iOS・Androidアプリ開発ハンズオン
JavaScript(AngularJS)で作る iOS・Androidアプリ開発ハンズオンJavaScript(AngularJS)で作る iOS・Androidアプリ開発ハンズオン
JavaScript(AngularJS)で作る iOS・Androidアプリ開発ハンズオン
 
Nodejs beginner
Nodejs beginnerNodejs beginner
Nodejs beginner
 
Going Serverless, Building Applications with No Servers
Going Serverless, Building Applications with No ServersGoing Serverless, Building Applications with No Servers
Going Serverless, Building Applications with No Servers
 
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話しDevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
 
20061007.saas
20061007.saas20061007.saas
20061007.saas
 
Challenge PWA!! Technical Edition @JAG201809
Challenge PWA!! Technical Edition @JAG201809Challenge PWA!! Technical Edition @JAG201809
Challenge PWA!! Technical Edition @JAG201809
 
FastViewによるwebの自動最適化とビジネスメリット
FastViewによるwebの自動最適化とビジネスメリットFastViewによるwebの自動最適化とビジネスメリット
FastViewによるwebの自動最適化とビジネスメリット
 
Challenge PWA!! TRY PWA4WP!
Challenge PWA!! TRY PWA4WP!Challenge PWA!! TRY PWA4WP!
Challenge PWA!! TRY PWA4WP!
 
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
 
大ヒットソーシャルアプリの裏側
大ヒットソーシャルアプリの裏側大ヒットソーシャルアプリの裏側
大ヒットソーシャルアプリの裏側
 
サーバーのおしごと
サーバーのおしごとサーバーのおしごと
サーバーのおしごと
 
20120914 aws summit_lt
20120914 aws summit_lt20120914 aws summit_lt
20120914 aws summit_lt
 
Web開発初心者がReactをチームに導入して半年経った
Web開発初心者がReactをチームに導入して半年経ったWeb開発初心者がReactをチームに導入して半年経った
Web開発初心者がReactをチームに導入して半年経った
 
Android webブラウザのhtml5対応状況
Android webブラウザのhtml5対応状況 Android webブラウザのhtml5対応状況
Android webブラウザのhtml5対応状況
 
なるほどわかった!App Service on Linux
なるほどわかった!App Service on Linuxなるほどわかった!App Service on Linux
なるほどわかった!App Service on Linux
 
我が家のフロントエンド開発事情
我が家のフロントエンド開発事情我が家のフロントエンド開発事情
我が家のフロントエンド開発事情
 

PWA for beginner#2