Chrome Tech Talk Night #8 - connpass
Chrome Tech Talk Night #8 を開催します - Google Developer Japan Blog
こちらのイベントに来ているので、メモ取っていく。英語の講演だから間違ってるかもしれないっす。
Future of Web Apps by gauntface
- ChromedeWeb新しい機能が色々使えるようになってるよ
- Chromeでホームスクリーン見せることできるようになってる
- オフラインとか
- フルスクリーンとか
ブラウザがWebページとやりとりするように、ブラウザ内のService Workerとやりとりできるようになっている
Service Workerだとオフラインでもキャッシュ持ってるんで、ちゃんと動作する
サイトの方からブラウザにnoti出せる
バックグランドでリソースのやりとりできる
Service WorkerとManifestつかうとユーザーにとって便利
{
"short_name": "Amaze App",
"name": "Kinlan's Amazing Application",
"icons": [
{
"src": "launcher-icon-3x.png",
"sizes": "144x144",
"type": "image/png"
}
],
"start_url": "index.html",
"display": "standalone"
}
<link rel="manifest" href="/manifest.json">
- Service Worker使うのには、全てのリソースがHTTPSじゃないと使えない
- Service Worker強力なんで
- LETS ENCRYPT
- SSL Checker
Building production Polymer apps on google.com
A: 全部Element使えばいいよ
- Google I/O
- バカンス
- GmailモバイルをPolymer使ってリニューアル
- 1.0になりました
- サンタトラッカーがPolymer使ってる
<santa-app></santa-app>
- github.com/google/santa-tracker-web
- Polymerのデータバインディング便利
- Google I/O Web App
- events.google.com/io2015/
- フォトギャラリーとか動画再生とかWebGL使ったコンテンツとか
- Canvas使ってカウントダウンコンテンツ→会期中はライブ流す
- これもElementで
- 色々な技術をPolymer以外にもフル活用
- 外部サービスとかあるけど、Service Worker使ってキャッシュしてる
- GAEとかYouTubeとか
- Google内のいろんな分野のスタッフで作った
- 新しいIEでは
<template>
タグに対応してて、いいね! - Polymerの古いバージョンではできなかった
ref
要素入れると中の要素を無視したりできるようになった - テンプレート呼び込むと、そのページ固有のjsなどを読み込むようになって回線に優しいね
- Polymer1.0では動的にjsからHTMLをインポートできる
- レイテンシー0は正義
- アニメーション制御
- Promise使ってるよ
- あんまり他の処理に気を使わないで済む
- オフライン
- オフラインでもコンテンツ読める
- Webでコンテンツ更新あれば、"更新された"メッセージ出す
- Notification
- 対応ブラウザ以外で通知出すとか
- 使うの簡単だよ
- 例えばログインの状況とかをブックマークするときに通知すると、UXとしても良いんじゃない?
- Polymerの将来どうなんの?
- 便利コンポーネントとか、APIをもっと増やしてく
- WebComponentへの追従をもっと
- 古いブラウザへの対応は?
- 残念ながら新しい機能たくさん使うから、対応しないよ
- パフォーマンスはどうよ?
- 古いバージョンはマジクソでした
- 新しいのはAPIの整理とかPolyfillとか整理してる
- 開発者側でもうちょっとパフォーマンスをコントロールできるように
- 6~7倍速いよ!
Web版はPolymer使ってるよ
- 最初のステップで○作ったら大いなる力で、すっげえ絵になるよ!
- Polymer Starter Kitとかで手助けになる
- マテリアルデザイン使った色々なパーツの詰め合わせ
- テーマはCSSのカスタムプロパティ使ってる
- アプリ全体で統一感あるテーマとして使える
- モバイル対応がデフォルト
- アイコン色々
- Adaptive UI
- レスポンシブに
- マテリアルデザインも何回かブレークポイントあった
- App Template 1.0
- いろんなレイアウトに対応するのにラク
- オフラインファースト
- すごく重要
- 東京以外はネットの調子悪くなると多いので
- Polymer Elements Catalog
- ServiceWorker使ったキャッシュとか簡単に
- 良いビルドシステム
- Gulp使ってる
- テスト、圧縮、クロスデバイスでのリロードなど
- RSSフィードリーダー作った
- やっぱりElement重要
- Element作ったらすぐにできる。簡単
- Firebase使ってauthに対応
- Notification送ってる
- ネイティブアプリみたいに、スマホに通知できる
- やっぱりElement
- つい先日出た
- Webサイト向けのマテリアルデザインのセット
- ComponentsはIE9以上
- TemplateはIE10以上
- たった27kb!
- いろいろなパーツがあります
- タイポグラフィも豊富
- レスポンシブデザインにも完全対応
- Webサービス使えばテーマカスタマイズも簡単
- もちろんアイコンもあります
- andoroid.comで使ってる
- html/pure css/jsというプレーンな構成
- cdn/npm/bowerで使える
- フラットデザインとマテリアルデザインの違いってなに?
- フラットデザインはモーションとかない
- マテリアルデザインは動きとかも含めてのデザイン
- Googleのプロダクトで全部マテリアルデザインにしないのはなんで?
- 新しいプロダクトでは使ってるよ
- 古いのも順次変えていきたいと思う
Offline apps with Polymer and Service Worker - Google スライド
- どちらの方もディベロッパープログラムエンジニアの方だそうです
- オフライン対応とかパフォーマンス関連とかの仕事
- 東京だとそうでもないけど、ロンドンとか他の地域だとネットが切れるなんて日常
- アプリは早くロードされて、どこでも動くべきだし、これはWebアプリでも同じ
- Gmailとかもオフラインで閲覧できないと
- 自分のアプリがオフラインだからロゴとか見れないってありえんでしょ?
- jsをバックグラウンドで動作させるとかできる
- どんなリソースでもオフラインで見れるようにできる
index.js
ではこんな感じに
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('service-worker.js')
.then(function(registration) {
// Listen for service worker lifecycle events and
// display a message when caching is complete.
})
.catch(function(error) { // Display error. });
} else {
// Offline support isn't available.
}
service_worker.js
でこういう感じのコードに
// 最初にサイトにアクセスしたときにリソースをキャッシュにつっこむ
self.addEventListener('install', function(event) {
var urlsToPrefetch = ['image.jpg', 'results.json', 'page.html'];
event.waitUntil(caches.open('mycache').then(function(cache) {
return cache.addAll(urlsToPrefetch);
}));
});
// キャッシュしたリソースのアップデート
self.addEventListener('fetch', function(event) {
event.respondWith(fetch(event.request).catch(function() {
return caches.match(event.request);
}));
});
// ここからはsw-toolbox
importScript('path/to/sw-toolbox.js');
toolbox.prechche(['image.jpg', 'result.json']);
toolbox.router.default = toolbox.networkFirst;
GoogleChrome/sw-toolboxを使うととてもラク
index.html
はこれ
<script src="webcomponents-lite.min.js"></script>
<link rel="import" href="platinum-sw-elements.html">
<platinum-sw-register auto-register>
<platinum-sw-cache default-cache-strategy="networkFirst"
precache='["image.jpg", "results.json", "page.html"]'>
</platinum-sw-cache>
</platinum-sw-register>
Platinum Service Worker Elements Demo
オフラインでのブックリーダー
すいません、質問が頭に入ってこなかった…