Submit Search
Upload
PWA aruaru
•
1 like
•
1,045 views
N
n_harada
Follow
PWAあるあるです。 たまにないないも入ってます。
Read less
Read more
Internet
Report
Share
Report
Share
1 of 34
Download now
Download to read offline
Recommended
PWAを使ってWebXRコンテンツをオフラインで動くようにする手順について
PWAを使ってWebXRコンテンツをオフラインで動くようにする手順について
WheetTweet
PWAがOculus Storeに配信できるようになる
PWAがOculus Storeに配信できるようになる
TAM
XRにおけるプロトタイピングについて
XRにおけるプロトタイピングについて
WheetTweet
A/BテストをAzure×Googleアナリティクスで試してみました。
A/BテストをAzure×Googleアナリティクスで試してみました。
典子 松本
Webアプリの向こうに見えるPWAアプリ開発
Webアプリの向こうに見えるPWAアプリ開発
Developer Solutions事業部 メシウス株式会社 (旧グレープシティ株式会社)
Laravel vue-project-upload
Laravel vue-project-upload
小川 昌吾
JAWSUG初心者支部 AWSの勉強の仕方
JAWSUG初心者支部 AWSの勉強の仕方
Takuro Sasaki
YARAIYA! Opendata with WordPress
YARAIYA! Opendata with WordPress
Hidetaka Okamoto
Recommended
PWAを使ってWebXRコンテンツをオフラインで動くようにする手順について
PWAを使ってWebXRコンテンツをオフラインで動くようにする手順について
WheetTweet
PWAがOculus Storeに配信できるようになる
PWAがOculus Storeに配信できるようになる
TAM
XRにおけるプロトタイピングについて
XRにおけるプロトタイピングについて
WheetTweet
A/BテストをAzure×Googleアナリティクスで試してみました。
A/BテストをAzure×Googleアナリティクスで試してみました。
典子 松本
Webアプリの向こうに見えるPWAアプリ開発
Webアプリの向こうに見えるPWAアプリ開発
Developer Solutions事業部 メシウス株式会社 (旧グレープシティ株式会社)
Laravel vue-project-upload
Laravel vue-project-upload
小川 昌吾
JAWSUG初心者支部 AWSの勉強の仕方
JAWSUG初心者支部 AWSの勉強の仕方
Takuro Sasaki
YARAIYA! Opendata with WordPress
YARAIYA! Opendata with WordPress
Hidetaka Okamoto
Yeomanではじめる爆速webアプリ開発
Yeomanではじめる爆速webアプリ開発
Masakazu Muraoka
スキトラ Spring + mybatis
スキトラ Spring + mybatis
小川 昌吾
Cloud garage使って ECサイトの構築
Cloud garage使って ECサイトの構築
毅 佐藤
MyBatis を利用した web application 開発についてのご紹介
MyBatis を利用した web application 開発についてのご紹介
Tokuhiro Matsuno
Webサイトに動きをつける、jQueryプラグインの設置方法 先生:田中 晶子
Webサイトに動きをつける、jQueryプラグインの設置方法 先生:田中 晶子
schoowebcampus
WordPressをこれから始める人のためのテーマ講座
WordPressをこれから始める人のためのテーマ講座
Takami Kazuya
Emscripten night "WebGL + WASM"
Emscripten night "WebGL + WASM"
翔 石井
sukiyaki project 〜高可用な自宅サーバを目指して〜
sukiyaki project 〜高可用な自宅サーバを目指して〜
sukiyaki project
2017/09/02 CloudGaragere lease tour in okayama LT
2017/09/02 CloudGaragere lease tour in okayama LT
Takeshi Furusato
PWAでタイマーを 作ってみた
PWAでタイマーを 作ってみた
Yuhei FUJITA
Mautic Meetup Tokyo #3 データベース不要CMS:Gravの紹介
Mautic Meetup Tokyo #3 データベース不要CMS:Gravの紹介
Kohei Nishikawa
GUIツールで送る快適な Gitライフ@Creators MeetUp #29
GUIツールで送る快適な Gitライフ@Creators MeetUp #29
Erina Takei
AngularJSのDirectiveで俺俺タグつくっちゃお
AngularJSのDirectiveで俺俺タグつくっちゃお
Toshio Ehara
SVGの基本&活用法。SVGのメリットと事例を基礎から学ぶ。
SVGの基本&活用法。SVGのメリットと事例を基礎から学ぶ。
Daisuke Koshimizu
これからフロントエンジニアを目指すあなたへ
これからフロントエンジニアを目指すあなたへ
Mitsuru Ogawa
Staticwp 20131013
Staticwp 20131013
Takeshi Kawai
WordPressプラグインの作り方
WordPressプラグインの作り方
Takami Kazuya
Challenge PWA!! Technical Edition @JAG201809
Challenge PWA!! Technical Edition @JAG201809
Ryu Shindo
BACKBONEJS+SCSS+JavaEE(JAX-RS) 今風のWebアプリをNetBeansで入門!
BACKBONEJS+SCSS+JavaEE(JAX-RS) 今風のWebアプリをNetBeansで入門!
Toshio Ehara
I tried to touch the KUSANAGI ( Student Edition )_KUSANAGIを触ってみた(学生版)
I tried to touch the KUSANAGI ( Student Edition )_KUSANAGIを触ってみた(学生版)
Masashi Maruya
駅すぱあとWebサービスにおけるAWSとその周辺
駅すぱあとWebサービスにおけるAWSとその周辺
Mikawa Kouta
【HTML5ゲーム開発環境勉強会 】PlayCanvasビルトインコンポーネント ディープダイブ第一弾【物理エンジン】(2018/12/11講演)
【HTML5ゲーム開発環境勉強会 】PlayCanvasビルトインコンポーネント ディープダイブ第一弾【物理エンジン】(2018/12/11講演)
PlayCanvas運営事務局
More Related Content
What's hot
Yeomanではじめる爆速webアプリ開発
Yeomanではじめる爆速webアプリ開発
Masakazu Muraoka
スキトラ Spring + mybatis
スキトラ Spring + mybatis
小川 昌吾
Cloud garage使って ECサイトの構築
Cloud garage使って ECサイトの構築
毅 佐藤
MyBatis を利用した web application 開発についてのご紹介
MyBatis を利用した web application 開発についてのご紹介
Tokuhiro Matsuno
Webサイトに動きをつける、jQueryプラグインの設置方法 先生:田中 晶子
Webサイトに動きをつける、jQueryプラグインの設置方法 先生:田中 晶子
schoowebcampus
WordPressをこれから始める人のためのテーマ講座
WordPressをこれから始める人のためのテーマ講座
Takami Kazuya
Emscripten night "WebGL + WASM"
Emscripten night "WebGL + WASM"
翔 石井
sukiyaki project 〜高可用な自宅サーバを目指して〜
sukiyaki project 〜高可用な自宅サーバを目指して〜
sukiyaki project
2017/09/02 CloudGaragere lease tour in okayama LT
2017/09/02 CloudGaragere lease tour in okayama LT
Takeshi Furusato
PWAでタイマーを 作ってみた
PWAでタイマーを 作ってみた
Yuhei FUJITA
Mautic Meetup Tokyo #3 データベース不要CMS:Gravの紹介
Mautic Meetup Tokyo #3 データベース不要CMS:Gravの紹介
Kohei Nishikawa
GUIツールで送る快適な Gitライフ@Creators MeetUp #29
GUIツールで送る快適な Gitライフ@Creators MeetUp #29
Erina Takei
AngularJSのDirectiveで俺俺タグつくっちゃお
AngularJSのDirectiveで俺俺タグつくっちゃお
Toshio Ehara
SVGの基本&活用法。SVGのメリットと事例を基礎から学ぶ。
SVGの基本&活用法。SVGのメリットと事例を基礎から学ぶ。
Daisuke Koshimizu
これからフロントエンジニアを目指すあなたへ
これからフロントエンジニアを目指すあなたへ
Mitsuru Ogawa
Staticwp 20131013
Staticwp 20131013
Takeshi Kawai
WordPressプラグインの作り方
WordPressプラグインの作り方
Takami Kazuya
Challenge PWA!! Technical Edition @JAG201809
Challenge PWA!! Technical Edition @JAG201809
Ryu Shindo
BACKBONEJS+SCSS+JavaEE(JAX-RS) 今風のWebアプリをNetBeansで入門!
BACKBONEJS+SCSS+JavaEE(JAX-RS) 今風のWebアプリをNetBeansで入門!
Toshio Ehara
I tried to touch the KUSANAGI ( Student Edition )_KUSANAGIを触ってみた(学生版)
I tried to touch the KUSANAGI ( Student Edition )_KUSANAGIを触ってみた(学生版)
Masashi Maruya
What's hot
(20)
Yeomanではじめる爆速webアプリ開発
Yeomanではじめる爆速webアプリ開発
スキトラ Spring + mybatis
スキトラ Spring + mybatis
Cloud garage使って ECサイトの構築
Cloud garage使って ECサイトの構築
MyBatis を利用した web application 開発についてのご紹介
MyBatis を利用した web application 開発についてのご紹介
Webサイトに動きをつける、jQueryプラグインの設置方法 先生:田中 晶子
Webサイトに動きをつける、jQueryプラグインの設置方法 先生:田中 晶子
WordPressをこれから始める人のためのテーマ講座
WordPressをこれから始める人のためのテーマ講座
Emscripten night "WebGL + WASM"
Emscripten night "WebGL + WASM"
sukiyaki project 〜高可用な自宅サーバを目指して〜
sukiyaki project 〜高可用な自宅サーバを目指して〜
2017/09/02 CloudGaragere lease tour in okayama LT
2017/09/02 CloudGaragere lease tour in okayama LT
PWAでタイマーを 作ってみた
PWAでタイマーを 作ってみた
Mautic Meetup Tokyo #3 データベース不要CMS:Gravの紹介
Mautic Meetup Tokyo #3 データベース不要CMS:Gravの紹介
GUIツールで送る快適な Gitライフ@Creators MeetUp #29
GUIツールで送る快適な Gitライフ@Creators MeetUp #29
AngularJSのDirectiveで俺俺タグつくっちゃお
AngularJSのDirectiveで俺俺タグつくっちゃお
SVGの基本&活用法。SVGのメリットと事例を基礎から学ぶ。
SVGの基本&活用法。SVGのメリットと事例を基礎から学ぶ。
これからフロントエンジニアを目指すあなたへ
これからフロントエンジニアを目指すあなたへ
Staticwp 20131013
Staticwp 20131013
WordPressプラグインの作り方
WordPressプラグインの作り方
Challenge PWA!! Technical Edition @JAG201809
Challenge PWA!! Technical Edition @JAG201809
BACKBONEJS+SCSS+JavaEE(JAX-RS) 今風のWebアプリをNetBeansで入門!
BACKBONEJS+SCSS+JavaEE(JAX-RS) 今風のWebアプリをNetBeansで入門!
I tried to touch the KUSANAGI ( Student Edition )_KUSANAGIを触ってみた(学生版)
I tried to touch the KUSANAGI ( Student Edition )_KUSANAGIを触ってみた(学生版)
Similar to PWA aruaru
駅すぱあとWebサービスにおけるAWSとその周辺
駅すぱあとWebサービスにおけるAWSとその周辺
Mikawa Kouta
【HTML5ゲーム開発環境勉強会 】PlayCanvasビルトインコンポーネント ディープダイブ第一弾【物理エンジン】(2018/12/11講演)
【HTML5ゲーム開発環境勉強会 】PlayCanvasビルトインコンポーネント ディープダイブ第一弾【物理エンジン】(2018/12/11講演)
PlayCanvas運営事務局
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
normalian
Spring Boot + Doma + AngularJSで作るERP #jjug_ccc #ccc_r12
Spring Boot + Doma + AngularJSで作るERP #jjug_ccc #ccc_r12
学 松崎
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
学 松崎
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
貴志 上坂
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
Rescale Japan株式会社
Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)
Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)
学 松崎
Swagger jjug ccc 2018 spring
Swagger jjug ccc 2018 spring
kounan13
Azure Functions あれこれ
Azure Functions あれこれ
Yasuaki Matsuda
アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱
Koichi ITO
第5回 cogbot勉強会!
第5回 cogbot勉強会!
貴志 上坂
大規模システムScrum実践 効果と課題 #rsgt2015
大規模システムScrum実践 効果と課題 #rsgt2015
Yahoo!デベロッパーネットワーク
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
Takashi Someda
初めてのPadrino
初めてのPadrino
Takeshi Yabe
自動化の下ごしらえ
自動化の下ごしらえ
akira6592
まだタスクランナー使っていないって本当(マジ)? 仕事に対する効率化意識向上のための gulp ハンズオン : Wordcamp tokyo 2015
まだタスクランナー使っていないって本当(マジ)? 仕事に対する効率化意識向上のための gulp ハンズオン : Wordcamp tokyo 2015
Hiromu Hasegawa
DevOps and Compliance and Security
DevOps and Compliance and Security
Kazushi Kamegawa
Cache 自由自在
Cache 自由自在
Ryu Shindo
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
Takahiro Okumura
Similar to PWA aruaru
(20)
駅すぱあとWebサービスにおけるAWSとその周辺
駅すぱあとWebサービスにおけるAWSとその周辺
【HTML5ゲーム開発環境勉強会 】PlayCanvasビルトインコンポーネント ディープダイブ第一弾【物理エンジン】(2018/12/11講演)
【HTML5ゲーム開発環境勉強会 】PlayCanvasビルトインコンポーネント ディープダイブ第一弾【物理エンジン】(2018/12/11講演)
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
Spring Boot + Doma + AngularJSで作るERP #jjug_ccc #ccc_r12
Spring Boot + Doma + AngularJSで作るERP #jjug_ccc #ccc_r12
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)
Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)
Swagger jjug ccc 2018 spring
Swagger jjug ccc 2018 spring
Azure Functions あれこれ
Azure Functions あれこれ
アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱
第5回 cogbot勉強会!
第5回 cogbot勉強会!
大規模システムScrum実践 効果と課題 #rsgt2015
大規模システムScrum実践 効果と課題 #rsgt2015
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
初めてのPadrino
初めてのPadrino
自動化の下ごしらえ
自動化の下ごしらえ
まだタスクランナー使っていないって本当(マジ)? 仕事に対する効率化意識向上のための gulp ハンズオン : Wordcamp tokyo 2015
まだタスクランナー使っていないって本当(マジ)? 仕事に対する効率化意識向上のための gulp ハンズオン : Wordcamp tokyo 2015
DevOps and Compliance and Security
DevOps and Compliance and Security
Cache 自由自在
Cache 自由自在
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
PWA aruaru
1.
PWAあるある 1
2.
⾃⼰紹介 2 はらだ 東⼤修⼠2年 AI系のスタートアップのWebのお仕事 (フロント、バック、インフラ) スポーツチーム⽤動画ストレージサービス メイン 器械体操 @program_diary
3.
ClubCloud 3 練習法やコツを共有、蓄積するサービス 動画⽐較機能 スクリーンショットへの 描きこみ 匿名コメント メイン : チームでの共有 将来
: スポーツのプラットフォーム
4.
もうちょっとだけご紹介 4タイムライン 検索
5.
5 初⼼者回ということで そこまでコードには踏み込まないです PWAがどんな感じなのか知ってもらえれば︕ PWAあるあるを紹介
6.
あるある1 6 DjangoでPWAどう実装するか悩む
7.
Dango⽤のライブラリ 7 django-progressive-web-app を使う h=ps://medium.com/beginners-guide-to-mobile- web-development/convert-django-website-to-a- progressive-web-app-3536bc4f2862 settings.pyにアイコンやserviceWorker.jsのパスを 設定するだけで良い 参考
8.
あるある2 8 ユーザーがPWAだと気づかないし そもそもPWAのインストール⽅法知らない
9.
登録画⾯ 9 iOS PWAAndroid iOSではCookieとlocalStorageがPWAとブラウザで共有されない PWAインストール後にログインが必要なので登録前インストールが望ましい
10.
PWA、OSで条件分岐 10 PWA window.matchMedia('(display-mode: standalone)').matches) iOS navigator.userAgent.match(/(iPhone|iPad|iPod)/) Android navigator.userAgent.match(/(Android)/)
11.
あるある3 11 アドレスバー消したら 画⾯遷移⽅法なくなる
12.
画⾯遷移の⽅法 12 スワイプで画⾯遷移を実装 右にスワイプ ➡ 「戻る」 左にスワイプ
➡ 「進む」 スワイプの ⾓度( ! " 以下 ) 距離(30px以上) 速度(200px/s以上) で判定
13.
スワイプ遷移のいろいろ 13 ・エッジスワイプでも良いが… ・Androidではなぜか縦スクロールでも反応… 画⾯が⼤きいスマホではエッジスワイプしづらい (拡⼤傾向) ユーザーがスワイプ遷移のon/offを選択できる かつ、ユーザー登録時にAndroidユーザーのみ デフォルトをoffに
14.
あるある4 14 ブラウザの機能 (URLコピー、リロード、シェア) を使いたい
15.
⾃分で実装 15 WebShareAPIメニューで⾃作
16.
URLコピーとWebShareAPI 16 URLコピー(OSで使い分け) WebShareAPI
17.
あるある5 17 たまにアプリが再起動し トップページに戻る
18.
iOSでの謎の挙動への対処 18 ・セッションが切れたわけではない (ログインは維持) ・バックグラウンドでキルしたわけでもない (キルしてもPWAは画⾯を維持) 画⾯遷移時には毎回現在のURLをlocalStorageに保存 トップページに遷移してしまっていたら、最後にい た画⾯にリダイレクト
19.
トップページからのリダイレクト 19 意思を持ってトップページに⾏った時と区別するため historyを確認(1以下なら謎の挙動による遷移)
20.
あるある6 20 Push通知できない
21.
Push通知の代替 21 LINENotifyで通知 iOSはLINEブラウザで開いてしまうので、 URL+?openExternalBrowser=1 でせめて外部ブラウザで開かせる
22.
PWAからのLINE認証 22 PWAから認証画⾯に⾶ぶと、エラー(iOS) ブラウザで開いてから認証させなければ いけない…
23.
あるある7 23 ServiceWorkerがCacheから動画を 200で返すせいでSafariで再⽣できない
24.
Safariは206の動画しか再⽣できない 24 Safariでは、ステータスコード206(Partial Content)の動画しか再⽣できない (Nginxだとrange requestに対応するためにproxy_force_ranges on;を 加えたりする)
25.
206に書き換えるか、そもそもキャッシュしない 25 Service Worker(PWA)でRangeリクエストに対応する h=ps://qiita.com/biga816/items/dcc69a265235f1c3f7e0 ・206に書き換える ・そもそも動画はキャッシュしない response.status ===
200 の時だけキャッシュ サーバー キャッシュ 206 200 ブラウザ 206
26.
あるある8 26 CacheAPIではリクエストとレスポンスを コピーして使わないといけない
27.
使い回す時はClone() 27 リクエストとレスポンスは1回ずつしか使えない キャッシュでアンマッチ後のFetchの際は let clone_request =
event.request.clone() を使う クライアントへの表⽰に使った後、キャッシュにも⼊れる 際は let clone_response = response.clone()を使う
28.
あるある9 28 オフライン対応したい
29.
2つのオフライン対応 29 ・⼀度遷移済みのページのオフライン対応 ➡ ページごとキャッシュ ・未遷移のページのオフライン対応 ➡ オフライン⽤ページのプリキャッシュ navigator.onLineでオフラインかを判別、 ページキャッシュがなければoffline⽤ページを表⽰
30.
オフラインページ 30 オフライン対応 オフライン未対応
31.
PWAの弱点 31 まぁいろいろありますが… 僕が思うのは、 アプリっぽく⾒えることで、 ハードルが上がってしまうこと
32.
PWAの弱点 32 しかしユーザーから⾒える機能は結局ブラウザベース ・アプリ未満の処理速度 ・他のアプリとの連携が苦⼿ ・バックグラウンド処理不可 ・動画圧縮、変換、トリミングできない ・再⽣できない動画形式 など ⽐べる対象が、Webページからアプリへ変わる Webページなのに頑張ってる ではなく アプリなのに出来てない というユーザー評価
33.
PWAの使い所(?) 33 ・機能に関してブラウザベースで事⾜りるアプリ ・もしくは、本命前のプロトタイプとして検証⽤に (変更が即時反映される、クロスプラットフォーム) ReactNative, Flutter等 でも良い…︖
34.
34 クラウドファンディング中 @program_diary からとべるので、 是⾮ご協⼒お願いします (1000円から、ログインなし)
Download now