Weitere ähnliche Inhalte Ähnlich wie wordcamp haneda 20190420 Apps Based on WordPress (20) wordcamp haneda 20190420 Apps Based on WordPress5. サービスの中の Web サイト : EC を例に
Web site
Apps
PWA
Payment
Logistics
Inquiry
Office
Data
8. そこで WordPress です
• 連携に必要な機能が実装しやすい
• 豊富なプラグイン
• REST API などでデータ連携
•PWA for WordPress がある!!
11. PWA って?
Progressive Web Apps
Web アプリがローカルアプリになる
• ホーム画面にアイコン
• インストール時にWeb コンテンツやリソースのキャッシュ
• キャッシュされた javascript がオフラインでアプリを制御
• 以下今のところAndroidだけ
• バックグラウンドでの動作(Background Sync)
• Push通知
12. 細かくすると
Progressive すべてのブラウザで動作するように、Progressive Enhancement の理念で構築する。
Responsive デスクトップ、モバイル、タブレットなどあらゆる環境に対応する。
Connectivity independent ServiceWorker の機能により、オフラインや低速回線でも動作する。
App-like 機能とコンテンツを切り分けるアップシェルモデルによりアプリのような操作感を実現する。
Fresh ServiceWorker のアップデートプロセスにより、常に最新の状態を保つ。
Safe HTTPSによる通信で情報漏洩やコンテンツ改ざんからの安全性を確保する。
Discoverable W3C準拠の Manifest と ServiceWorker の「スコープ」により検索エンジンはアプリを検知することができる。
Re-engageable プッシュ通知などの機能により再エンゲージメントを容易にする。
Installable アプリストアを経由しなくてもホーム画面にアプリとしてインストールすることができる。
Linkable URLとしてシェアすることができ、複雑なインストール要件を必要としない。
(Google Developer Blogより)
23. PWA for WordPress のココがいけてる
• 柔軟なキャッシュ制御
キャッシュ する/しない コンテンツを除外設定でコントロール
オンライン優先モード、キャッシュ優先モードの基本設定
初期キャッシュを自由に設定
• インストールポップアップの制御
• その他細かいところ
日本語
アイコンの自動リサイズ
33. PWA for WordPress
ServiceWorker キャッシュ制御 ( 正規表現 )
例1:画像( jpg / png / gif ) だけキャッシュするには
以下の2行を指定
^.*.(?!jpg|png|gif)(.{3,4})$
^.*/$
特定の拡張子以外(除外リストの指定なので、「以外」を除外する設定になる)
末尾が / で終わる
57. http の埋め込みを探して修正
• http → https 化したときに、http 埋め込みが残留しているケース
が多い
• 外部サイトのアイコン
• JavaScript からの呼び出し
• WordPress のプラグインからの呼び出し(見つけにくい)
• DevTools の Console で確認する
61. 番外編:WordPress プラグインの動作障害
• PWA にしたら特定のプラグインが動かなくなった
• プラグインが JavaScript で自身のフォルダを参照してリアルタイム性の
必要な情報を取得していた場合など
• キャッシュの除外設定でプラグインの導入先を除外することで多くは
回避可能(PWA for WordPress)
^.*/wp-content/plugins/plugin-name/.*$
65. アプリ開発に新しい手法が登場?
• Chrome 72 for Android 公開!
• Chrome 72 から Trusted Web Activity が実装されたよ!
• PWA が Google Play Store に載せられるようになったよ!
• Trusted Web Activity は Chrome のActivity(画面インスタンス)として
動作
• サクッと URL 登録して完了!とはいかない、手順多い。
• Chrome と通信する Java の API
• Cordova みたいな Web リソースをパッケージングするようなもので
はない。
• セッション、ストレージ、キャッシュなどは Chrome と共有
69. TWA ( Trusted Web Activity )
• Digital Asset Links によるコンテンツの信頼性確保
• ブラウザによるレンダリング
• 最新の環境
• Jelly Bean まで対応
• Web View が OS から切り離されたのは Lollipop 以降
• Web View より Chrome のほうが新しい
• アプリからコンテンツへの直接のアクセスはできない
• クエリパラメーターやカスタムHTTPヘッダ、intent URI などでやりと
り?
• Web とネイティブの遷移はアクティビティの切替で行う
70. Digital Asset Links
アプリとWebコンテンツ間の信頼(Trust)の確保
intent の紐付け(URLのタップでアプリが起動される)
https://www.example.com/.well-known/assetlinks.json
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target" : { "namespace": "android_app", "package_name": "jp.compin.android.pwa.crowdfarmdiary",
"sha256_cert_fingerprints": [“XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"] }
}]
https://developers.google.com/digital-asset-links/v1/getting-started
75. 考慮点
• Webとネイティブのデータ連携
• まだ模索中
• PWA でせっかくオフライン稼働できるのに、サーバー経由でデータの
やりとりなんて寂しすぎる
• いい方法思いついたら教えてください。
• Web側の実装
• アプリに戻るボタン類はブラウザ閲覧で表示されないように工夫しな
いと
→通常のアクセスとアプリからのアクセスを分類できるように実装す
る工夫
78. 最後に告知!
日本 Android の会
ABC 2019 Spring
2019/5/26
@東海大学高輪キャンパス
今年もモバイルWebトラックをやります!
PWA についてもっと掘り下げたい方、どっぷり半日PWAの話が聞けま
す!
ぜひお越しください。
https://japan-android-group.connpass.com/event/125928/