136
Chrome Takuya Oikawa Google

Chrome For HTML5NIGHT

Embed Size (px)

DESCRIPTION

Chrome Web Platform Technology Now and Future HTML5NIGHT(2014/06/14)向けのLightning Talkスライド。

Citation preview

Page 1: Chrome For HTML5NIGHT

ChromeTakuya Oikawa

Google

Page 2: Chrome For HTML5NIGHT

私の前に19人も喋っているんだか

ら、多くの技術はすでにここまでで紹介されているという前提でス

ライドは作られているので、そうでなかった

場合には破綻します。

最初にこんなことを言うのはなんですが…

Page 3: Chrome For HTML5NIGHT

突然ですが

Page 4: Chrome For HTML5NIGHT

Chromeが誕生したのは

いつかご存知ですか?

Page 5: Chrome For HTML5NIGHT

2008年です

Page 6: Chrome For HTML5NIGHT

そんな昔なのか?

Page 7: Chrome For HTML5NIGHT

まだそんなもんなの?

Page 8: Chrome For HTML5NIGHT

Beta for Windows

Stable for Windows

リリースから今まで

Page 9: Chrome For HTML5NIGHT

Beta for Windows

Stable for Windows

Chrome OS

リリースから今まで

Page 10: Chrome For HTML5NIGHT

Beta for Windows

Stable for Windows

Chrome OS

MacOS & Linux

リリースから今まで

Page 11: Chrome For HTML5NIGHT

Beta for Windows

Stable for Windows

Chrome OS

MacOS & Linux

リリースから今まで

Page 12: Chrome For HTML5NIGHT

Beta for Windows

Stable for Windows

Chrome OS

MacOS & Linux

New Icon

リリースから今まで

Page 13: Chrome For HTML5NIGHT

Beta for Windows

Stable for Windows

Chrome OS

MacOS & Linux

New IconAndroid

iOS

リリースから今まで

Page 14: Chrome For HTML5NIGHT

書ききれなかったのですが

Page 15: Chrome For HTML5NIGHT

拡張のリリースとか(Chrome Webアプリとかも)

Page 16: Chrome For HTML5NIGHT

テーマの導入とか

Page 17: Chrome For HTML5NIGHT

などなど

Page 18: Chrome For HTML5NIGHT

大事なものもかなりすっ飛ばしたんですが

Page 19: Chrome For HTML5NIGHT

ちゃんと知りたい人は

Page 20: Chrome For HTML5NIGHT

Chrome Time Machineを見てください。

Page 21: Chrome For HTML5NIGHT

2012年に4周年を記念して公開したChromeの歴史が対話的に辿れるページ

Page 22: Chrome For HTML5NIGHT

URLはhttp://www.google.com/intl/ja/chrome/timemachine/

です。

Page 23: Chrome For HTML5NIGHT

覚える必要ありません。

Page 24: Chrome For HTML5NIGHT

“Chrome Time Machine”で検索してください。

Public Domain : http://bit.ly/1ivUOel

Page 25: Chrome For HTML5NIGHT

検索は

Page 26: Chrome For HTML5NIGHT

なので

Page 27: Chrome For HTML5NIGHT

Page 28: Chrome For HTML5NIGHT

5歳9ヶ月

歴史を感じさせるMSNロゴのついたポロシャツ

Page 29: Chrome For HTML5NIGHT

まだ子どもですが、

写真が何故か乳児に退化していますが、気にしないでください。自分の小さい時の写真を使いたかっただけなので。

Page 30: Chrome For HTML5NIGHT

これからもよろしくお願いします。

Page 31: Chrome For HTML5NIGHT

ところで

Page 32: Chrome For HTML5NIGHT

さきほどの

Page 33: Chrome For HTML5NIGHT

Beta for Windows

Stable for Windows

Chrome OS

MacOS & Linux

New IconAndroid

iOS

リリースから今まで

Page 34: Chrome For HTML5NIGHT

に書かなかったのですが

Page 35: Chrome For HTML5NIGHT

昨年の4月に大事な

出来事がありました。

Page 36: Chrome For HTML5NIGHT

分かる人?

Page 37: Chrome For HTML5NIGHT

いませんね (ノД`)シクシク

Page 38: Chrome For HTML5NIGHT
Page 39: Chrome For HTML5NIGHT

分かる人?

Page 40: Chrome For HTML5NIGHT

いませんね (ノД`)シクシク

Page 41: Chrome For HTML5NIGHT

WebKitからフォーク

Public Domain: http://bit.ly/1ncCbPg

Wikimedia: http://commons.wikimedia.org/wiki/File:WebKit_logo.png

Page 42: Chrome For HTML5NIGHT

Chromium (Chromeのオープンソースプロジェクト)

と同じく

オープンソースの

レンダリングエンジン

Page 43: Chrome For HTML5NIGHT

このBlinkが

Page 44: Chrome For HTML5NIGHT

HTML5などのWebプラットフォーム機能を実現しているわけです。

Page 45: Chrome For HTML5NIGHT

Blinkプロジェクトでは

Page 46: Chrome For HTML5NIGHT

2014年冒頭に今年の目標を

 話し合いました。

Page 47: Chrome For HTML5NIGHT

オープンソースプロジェクトなので

Page 48: Chrome For HTML5NIGHT

話し合いもすべてオープンです。

Page 51: Chrome For HTML5NIGHT

● 継続した基本評価値への改善○ 滑らかさ○ 入力の反応○ 初回ロード時間

● モバイルWebでのベンチマーク● メモリ消費削減● パワー消費減少

Page 52: Chrome For HTML5NIGHT

要は

モバイル大事

Page 53: Chrome For HTML5NIGHT

Source: “mobile is eating the world”, Benedict Evans Nov ‘13

デスクトップよりモバイルのほうが売れているし、使われている

Page 54: Chrome For HTML5NIGHT

Source: “the decline of the mobile web”, Chris Dixon April ‘14

開発する立場では

Page 55: Chrome For HTML5NIGHT

Source: “the decline of the mobile web”, Chris Dixon April ‘14

モバイルではWeb

じゃなくて Appでしょ!

Page 56: Chrome For HTML5NIGHT

▄█▀█●ガーン

Page 57: Chrome For HTML5NIGHT

聞いてみました。

Page 58: Chrome For HTML5NIGHT

HTML5の何がご不満?(* Googleが聞いたわけではありません。第三者機関です)

Page 59: Chrome For HTML5NIGHT

Source: Vision Mobile Blog

Page 60: Chrome For HTML5NIGHT

Source: Vision Mobile Blog

不満は主にこの3つ!● パフォーマンス● API● ツール

Page 61: Chrome For HTML5NIGHT

ご不満 その1)パフォーマンス

Page 62: Chrome For HTML5NIGHT

速いことは正義!

Page 63: Chrome For HTML5NIGHT

でも、HTML5に直接関係ないので

Page 64: Chrome For HTML5NIGHT

興味ある人はBlink Contributorsが集まったときの資料

“BlinkOn 2: Mobile @ 60 FPS”(スライドとビデオ)探してみてね♡

Public Domain : http://bit.ly/1ivUOel

Page 65: Chrome For HTML5NIGHT

検索は

Page 66: Chrome For HTML5NIGHT

ご不満 その2)API

Page 67: Chrome For HTML5NIGHT

ハードウェアへのアクセスとか (;´д`)

Page 68: Chrome For HTML5NIGHT

痒いところに手がとどくオフライン制御とか (;´д`)

Page 69: Chrome For HTML5NIGHT

Blinkで

やってます!

ServiceWorkerWebMIDI / WebAudio(音作れます! MIDI制御できます!)などなど

Page 70: Chrome For HTML5NIGHT
Page 71: Chrome For HTML5NIGHT

CodeIQさんの質問に入っていたからご存知ですよね?

Page 72: Chrome For HTML5NIGHT

以上

Page 73: Chrome For HTML5NIGHT

それだけじゃなんなんで

Page 74: Chrome For HTML5NIGHT

何が出来るの?

Page 75: Chrome For HTML5NIGHT

より高度なオフライン機能

Page 76: Chrome For HTML5NIGHT

ネイティブアプリに置いつく

Page 77: Chrome For HTML5NIGHT

AppCacheからの学びを活かす

吾郷さんのお話もありましたね!

Page 78: Chrome For HTML5NIGHT

オフラインって言っても

Page 79: Chrome For HTML5NIGHT

完全にオフラインという場合だけではなくて

Page 80: Chrome For HTML5NIGHT

不安定(辺境の地とか)

Page 81: Chrome For HTML5NIGHT

しょっちゅう切れる(お金のない地下鉄とか)

Page 82: Chrome For HTML5NIGHT

なぜかわからないけど自分だけつながらない(呪われているとか)

Page 83: Chrome For HTML5NIGHT

あるわけですが

Page 84: Chrome For HTML5NIGHT

今はそのような異なる状況に対応したWebアプリを書くのが

とても難しい

Page 85: Chrome For HTML5NIGHT

WebサイトからインストールされたJavaScriptが独立したWorkerスレッドで動作し、Webサイトからのイベントハンドリングを実現

Page 86: Chrome For HTML5NIGHT

頭の良い(+JSから制御可能な)

“In-browser HTTP proxy”

Browser

ServiceWorker Caches

Page PagePage

Internet

Page 87: Chrome For HTML5NIGHT

これだけじゃなんのことやらわからない

Page 88: Chrome For HTML5NIGHT

というあなた!

Page 90: Chrome For HTML5NIGHT

検索は

Page 91: Chrome For HTML5NIGHT

ご不満 その3)ツール

Page 92: Chrome For HTML5NIGHT

さまざまな要素の統合が難しい!

Page 93: Chrome For HTML5NIGHT

最新のUI/UXが作りにくい!

Page 94: Chrome For HTML5NIGHT

成熟したフレームワーク不足

Page 95: Chrome For HTML5NIGHT

Blinkで

やってます!

WebComponents / PolymerWebAnimiation(簡単にアニメーションできます!)などなど

Page 96: Chrome For HTML5NIGHT
Page 97: Chrome For HTML5NIGHT

WebComponentsについてはご存知ですね?

Page 98: Chrome For HTML5NIGHT

今日、最初から2番目に金井 健一(can_i_do_web)@Web先端技術味見部 部長がお話したやつです。

Page 99: Chrome For HTML5NIGHT

以上

Page 100: Chrome For HTML5NIGHT

それだけじゃなんなんで

Page 101: Chrome For HTML5NIGHT

ひとことだけ言うと

Page 102: Chrome For HTML5NIGHT

コンポーネント技術をWebに導入

Page 103: Chrome For HTML5NIGHT

わかんなかったら、“WebComponents”

や“Polymer”

でで検索してください。

Public Domain : http://bit.ly/1ivUOel

Page 104: Chrome For HTML5NIGHT

検索は

Page 105: Chrome For HTML5NIGHT

どんなに便利かだけ紹介

Page 106: Chrome For HTML5NIGHT

グラフを書きたいとします。

Page 107: Chrome For HTML5NIGHT

こんなの

Page 108: Chrome For HTML5NIGHT

Google Charts API

Page 109: Chrome For HTML5NIGHT

<head>

<script type="text/javascript"

src="https://www.google.com/jsapi"></script></head>

<body>

<div id="chart_div" style="width:400; height:300"></div>

</body>

HTMLはこんな感じで…

Page 110: Chrome For HTML5NIGHT

google.load('visualization', '1.0', {'packages':['corechart']});

google.setOnLoadCallback(function() {

var data = new google.visualization.arrayToDataTable(

[["Day", "A", "B", "C"],["Mon", 20, 45, 28], ["Tue", 31, 66, 38],

["Wed", 50, 80, 55], ["Thu", 77, 50, 77], ["Fri", 68, 15, 66]]);

var options = {

"seriesType": "bars", "series": {"2": {"type": "line"}},

"width": 400, "height": 300

};

var div = document.getElementById(‘chart_div');

var chart = new google.visualization.ComboChart(div);

chart.draw(data, options);

});

JavaScriptはこんな感じ…

Page 111: Chrome For HTML5NIGHT

WebComponents

Page 112: Chrome For HTML5NIGHT

<head>

<script src="js/platform.js"></script>

<link rel="import" href="components/google-chart.html">

</head>

<body>

<google-chart

type="combo"

height="300px"

width="400px"

options="{'seriesType': ‘bars',

'series': {'2': {'type': 'line'}}}"

data="[['Day', 'A', 'B', ‘C'], ['Mon', 20, 45, 28],

['Tue', 31, 66, 38], ['Wed', 50, 80, 55],

['Thu', 77, 50, 77], ['Fri', 68, 15, 66]]">

</google-chart>

</body>

HTMLはこんな感じ…

Page 113: Chrome For HTML5NIGHT

これだけ

Page 114: Chrome For HTML5NIGHT

<google-chart>という要素に属性を付加するだけ

Page 115: Chrome For HTML5NIGHT

すでに、WebComponents (Polymer)

を使ったコンポーネントがたくさんあります!

Page 116: Chrome For HTML5NIGHT

GoogleサービスのWebComonentsがたくさん用

意されています。

Page 117: Chrome For HTML5NIGHT
Page 118: Chrome For HTML5NIGHT

“Polymer Components” “Google Web Components”

などで検索

Public Domain : http://bit.ly/1ivUOel

Page 119: Chrome For HTML5NIGHT

検索は

Page 120: Chrome For HTML5NIGHT

モバイル大事● パフォーマンス● API● ツール

まとめ

がんばってます!応援お願いします!

Page 121: Chrome For HTML5NIGHT

おまけ

Page 122: Chrome For HTML5NIGHT
Page 123: Chrome For HTML5NIGHT

ですが、

Page 124: Chrome For HTML5NIGHT

オープンソースなので、Google以外エンジニアも多く参加しています!

Page 125: Chrome For HTML5NIGHT

では見てみましょう。

Page 126: Chrome For HTML5NIGHT

Blinkでは新しい機能を

実装する(Implement)とき出荷(Ship)するとき

削除(Deprecate)するとき

ある取り決めがあります。

Page 127: Chrome For HTML5NIGHT

blink-devというメーリングリストに

“Intent to”Implement OR

Ship ORDeprecate

を送って賛同を得る

Page 128: Chrome For HTML5NIGHT

Intent toメールの統計をとってみました。

Page 129: Chrome For HTML5NIGHT

● chromium.org - 35.5%● google.com - 20.3%● opera.com - 10.9%● samsung.com - 9.4%● intel.com, yoav.ws, adobe.com blacberry.com...

Page 130: Chrome For HTML5NIGHT

● chromium.org - 48.6%● google.com - 19.0%● opera.com - 13.3%● 個人(gmail.com), intel.

com, samsung.com, yoav.ws ...

● opera.com - 38.2%● chromium.org - 29.8%● samsung.com - 14.9%● google.com, 個人(gmail.

com) ...

Page 131: Chrome For HTML5NIGHT

この削除(Deprecate)というのが

健全にプロジェクトを運営していくのに大事

Page 132: Chrome For HTML5NIGHT

Ohlohでデータを見てみると

Page 134: Chrome For HTML5NIGHT

http://www.ohloh.net/p/chromium-blink

このガーンと減っているのが、WebKitからフォークしたとき

Page 135: Chrome For HTML5NIGHT

http://www.ohloh.net/p/chromium-blink

その後もコードクリーンアップを実施したり不要な機能を常に検討している

ほぼフラット

Page 136: Chrome For HTML5NIGHT

みなさまのご参加お待ちしています!