for developer、microsoft edge とinternet explorer で新しくサポートされるapi

42
for DeveloperMicrosoft Edge Internet Explorer 新しくサポートされるAPI 日本マイクロソフト株式会社 デベロッパーエバンジェリズム統括本部 物江 修

Upload: osamu-monoe

Post on 28-Jul-2015

1.872 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

for Developer、Microsoft Edge とInternet Explorer で

新しくサポートされるAPI

日本マイクロソフト株式会社

デベロッパーエバンジェリズム統括本部

物江 修

Page 2: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

アジェンダ

•Windows 10 の Web ブラウザー

•新しくサポートされる HTML5 関連 API

•開発基盤としての Microsoft Edge

Page 3: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

Windows 10 の Web ブラウザー

Page 4: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

Windows 10 の Web ブラウザー~ 2 つの Web ブラウザーが搭載 ~

Windows 10

Internet Explorer 11

Edge

Page 5: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

2 つのブラウザーの方向性~新機能のサポートと後方互換性の確保~

• 既定の Web ブラウザー• Universal Windows Platform の基盤• 絶え間ないアップデート

• 後方互換目的• ゆるやかなアップデート

Page 6: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

新しくサポートされるAPI

Page 7: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

機能実装状況 1/2~実装状況を示すそれぞれのページが用意~

dev.modern.ie/platform/status/

status.modern.ie

Page 8: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

機能実装状況 2/2~ステータスがフィルタ可能~

• Not Currently Planned‐ 現状予定なし

• Deprecated‐ サポートしない

• Under Consideration‐ 検討中

• Preview Release‐ プレビュー版に実装済

• In Development‐ 開発中

Page 9: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

Experimental features の有効化~ Preview 版 Edge に用意されている機能を使用可能に~

アドレスバーに以下を入力

about:flags

Page 10: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

Edge からの localhost への接続許可~ループバックの有効化が必要~

• Edge は既定で localhost アドレスに接続できない• コマンドプロンプトにてコマンドを実行

CheckNetIsolation LoopbackExempt -a -n=Microsoft.Windows.Spartan_cw5n1h2txyewy

Page 11: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

開発者から見たMicrosoft Edge の新機能

Page 12: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

Microsoft Edge の新機能

JS

DOM グラフィックス JavaScript

セキュリティネットワークメディア

Page 13: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

DOM (Document Object Model) 関連

DOM

• ARIA ランドマーク• Game パッド API• 合成イベント• XPath API (DOM Level 3)

Page 14: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

ARIA ランドマーク~アクセシビリティにおけるナビゲーションの目印~

//ランドマークを打ち込んでセマンティクスを高める<body><header role="banner">...

</header><nav role="navigation">...<form role="search">...

</form></nav>

WAI-ARIAWAI (Web Accessibility Initiative)

ARIA(Accessible Rich Internet Applications)

Page 15: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

Game Pad API~ゲームパッドでの操作を可能にする機能 ~

//ゲームパッドの ID を取り出すfunction controlLoop() {

var gamepads = navigator.getGamepads();var length = gamepads.length;

for (var i = 0; i < length; i++) {var pad = gamepads[i];if (pad) {console.log(pad.id);}

}window.requestAnimationFrame(controlLoop);

}window.requestAnimationFrame(controlLoop); //ループ処理

XInput 対応のゲームパッドが必要

Page 16: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

合成イベント(DOM Event Constructors )~ DOM イベントを作成して発行する ~

//イベントを合成してディスパッチvar clicker = new MouseEvent('click', {

'bubbles': true, 'cancelable': true, 'view': window, 'detail': 0,'screenX': 0, 'screenY': 0, 'clientX': 0, 'clientY': 0,'ctrlKey': false, 'altKey': false, 'shiftKey': false, 'metaKey': false,'button': 0, 'relatedTarget': null

});//click イベントが発生するdocument.getElementById('chkbox').dispatchEvent(clicker);

Page 17: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

XPath API のサポート~XPath による XML 文書へのアクセス ~

//class が "even" の要素だけ取り出すgetSpans(‘even‘);

function getSpans(ctype){var result = document.evaluate('//span[@class="‘ + ctype + '"]', document, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);

while(nextObj = result.iterateNext()){console.log(nextObj.textContent);

}}<!- HTML --><p><span class="odd">1</span>, <span class="even">2</span>, <span class="odd">3</span>, <span class="even">4</span>, <span class="odd">5</span>, <span class="even">6</span>< p>

Page 18: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

グラフィックスとレイアウト• CSS 条件付き規則

• CSS グラデーション ミッドポイント

• フィルター効果

• Flexbox の更新

• Media Queries Level4

• Preserve-3D

• SVG の更新

Page 19: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

CSS Filter~フィルター効果を DOM に適用~

#glassPic {filter:blur(5px);

}

#glassPic {filter:sepia(100%);

}

効果 関数 値

モノクロ grayscale 0~100%

セピア sepia 0~100%

彩度 saturate 0~100+%

色相回転 hue-rotate 0~360deg

反転 invert 0~100%

透明度 opacity 0~100%

明るさ brightness 0~100+%

コントラスト contrast 0~100+%

ぼかし blur 0~10px

影 drop-shadow box-shadowに準ず

カスタム url filter エレメント設定

Page 20: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

CSS Preserve-3D~ 要素が 3D 空間に配置 ~

.blue {transform: rotateY(45deg);background-color: #0087FF;transform-style: preserve-3d;

}

.blue {transform: rotateY(45deg);background-color: #0087FF;transform-style: flat;

}

Page 21: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

<img srcset>~解像度の異なる複数の画像をソースとして指定~

//ピクセル密度により画像のソースを変更<img src="image/msEdge.jpg"

srcset=“image/msEdge.jpg, image/msEdge_x2.jpg 2x, image/msEdge_x4.jpg 4x" />

Page 22: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

JavaScript• ES6 : Class, Promise, Object Literal 拡張, WeakSet,

組み込み関数: (Math, Number, Object, String),

Template String, Spread 演算子

• アロー関数

• シンボル

• プロキシ

• Iterators

• ASM.js

JS

Page 23: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

クラス~継承やメソッドのオーバーライドなども可能~

//基底クラスclass Human {

constructor(name) {this.name = name;

}danger() {

console.log('逃げる');}

}

//継承クラスclass SuperHero extends Human {

constructor(name, ability) {super(name); this.ability = ability;

}danger() {

console.log('闘う');}

};

Page 24: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

テンプレート文字列~ 文字列に式を含めることが可能 ~

//渡された引数の合計を求める関数var firstName =‘太郎’;var lastName = ‘木村’;

//文字列はバッククォート(`)で括ることconsole.log(`こんばんは${lastName + firstName} です`);

Page 25: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

Spread 演算子~ 任意の数の引数を配列として取得 ~

//渡された引数の合計を求める関数function sum (...nums) {

return nums.reduce((a, b) => a + b);}

//sum 関数の呼び出しconsole.log(sum(1,2,3,4,5));

Page 26: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

アロー関数~function キーワードの短縮表記~

//関数の定義var calc = function(x){return x * 2};

↓var calc = x=>{return x * 2};

もしくはvar calc = x=>x * 2;

//即時実行関数(()=>alert( "Hello World;"))();

Page 27: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

シンボル~ プロパティ名に指定可能な一意な値を生成 ~

//シンボルを使用してプロパティの設定と読み出しvar obj = {};var sym1 = Symbol('foo'), sym2 = Symbol('foo');Console.log(sym1 === sym2); //falseobj[sym1] = ‘Served Data’;var objectSymbols = Object.getOwnPropertySymbols(obj); //シンボルを列挙var length = objectSymbols.length;for (var i = 0; i < length; i++) {

if (objectSymbols[i] === sym1) {console.log(obj[objectSymbols[i]]); //’Served Data’

};}

Page 28: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

ASM.js~ JavaScript を事前コンパイルして高速に動作させる~

//文字列の長さを返すfunction strlen(ptr) {'use asm';

ptr = ptr|0; var curr = 0; curr = ptr; while (MEM8[curr]|0 != 0) {

curr = (curr + 1)|0; } return (curr − ptr)|0;

}

Page 29: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

メディア

• Media Capture and Stream

• Web Audio API

• WAV,Dolby オーディオ

• HTTP Live Streaming (HLS) ,

Media Source Extensions (MSE)

Page 30: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

Media Capture and Stream~ カメラやマイクにアクセスする機能~

//Web Cam を起動して映像を表示navigator.getUserMedia({video: true}, function (stream){

if (typeof (video.srcObject) !== 'undefined'){video.srcObject = stream;

} else {video.src = URL.createObjectURL(stream);

}}, onFailSoHard);

Page 31: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

Web Audio API~ 音声を処理・合成するための機能 ~

//オーディオファイルの再生var audioCtx = new AudioContext();audioCtx.decodeAudioData(xhr.response,

function (buffer) {var source = audioCtx.createBufferSource(); source.buffer = buffer; source.connect(audioCtx.destination); source.start(0);

});

Page 32: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

ネットワーク

• HTTP/2

• meta リファラ

• TLD サポート

• XHR キャッシュ

Page 33: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

セキュリティ

• Web 暗号化 API の更新

• HTTP Strict Transport Security(HSTS)

• Content Security Policy (CSP) 1.0

Page 34: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

開発基盤としてのMicrosoft Edge

Page 35: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

ミドルウェアとしての Microsoft Edge~ HTML+JavaScript 以外の開発 ~

• ActiveX

• VBScript

• Browser Helper Objects (BHO)

• Vector Markup Language (VML)

• DirectX Filters and Transitions

• Flash

• Acrobat(pdf)• JavaScript ベースの新しい拡張モデル(予定)

• Chrome、Firefox のプラグイン (予定)

廃止 有効

Page 36: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

開発基盤としての Edge エンジン~ EdgeHTML.dll はさまざまなところで使用される ~

New default Windows 10 browser

Page 37: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

ご提案、フィードバッグを募集しています。

Internet Explorer Platform Suggestion Box!

IE development discussions from MSDN forums

Internet Explorer Beta Feedback

Page 38: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

まとめ

Windows 10

ES6

相互運用性

Page 39: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

参考 1/3

https://status.modern.ie/

http://dev.modern.ie/platform/status/

Internet Explorer のロードマップ

Edge のロードマップ

Page 40: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

参考 2/3

https://msdn.microsoft.com/ja-jp/library/dn904191(v=vs.85).aspx

Windows 10 版 Project Spartan 開発者向けガイド(Technical Preview)

http://dev.modern.ie/platform/faq/

FAQ (Edge)

Page 41: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI

参考 3/3

monoe’s blogbit.ly/monoe_blog

Page 42: for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI