html5最前線

67
@albatrosary http://albatrosary.hateblo.jp/ http://html5experts.jp/albatrosary/ HTML5最前線

Upload: fumio-sagawa

Post on 18-Aug-2015

518 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: HTML5最前線

@albatrosaryhttp://albatrosary.hateblo.jp/ http://html5experts.jp/albatrosary/

HTML5最前線

Page 2: HTML5最前線

佐川 夫美雄 HTML5 Experts.jp エキスパート html5j(スタッフ) AngularJS Japan User Group(スタッフ)(Fumio SAGAWA)

Page 3: HTML5最前線

Web Components

Custam Elements

HTML Template

HTML Imports

Shadow DOM

Multimedia

video/audio

Web Audio APIWebVTT

HTML Media Capture

Graphics

SVG

WebGL

Canvas

Device Access

Calendar API

Geolocation API

Network Information API

USB, Bluetooth, etc

Web Speech API

Device Orientation API

Battery Status API

HTML5

Indexed Database

Offline Web Application

File System API

Web Storage

online/offline events

Application Cache

Service Workers

Realtime Connectivity

WebRTC

Notifications

WebSocket

Server-Sent Events

XMLHttpRequest(Level2)

Web Messageing

Page 4: HTML5最前線

Offline Web ApplicationWeb Storage

Application Cache File System API

Indexed Database online/offline events

Service Workers

Page 5: HTML5最前線

Web Storage

Local Storage/Session Storage JavaScriptで制御可能 サイズが5MBとクッキーに比べ大容量 Session Storageでは別ウィンドウ/タブを閉じるまで有効 Local Storageでは永続的に有効であり別ウィンドウでもデータが共有される

Page 6: HTML5最前線

Application Cache

オフライン ブラウジング: ユーザーがオフラインのときでも、すべてのサイトにアクセスできる。 高速: キャッシュされたリソースはローカルなので、高速に読み込まれる。 サーバー負荷の軽減: ブラウザは、変更があったリソースのみをサーバーからダウンロードする。

Page 7: HTML5最前線

File System API

ファイルの読み取りと操作: File/Blob、FileList、FileReader 作成と書き込み: BlobBuilder、FileWriter ディレクトリとファイル システムのアクセス: DirectoryReader、FileEntry/DirectoryEntry、LocalFileSystem

Page 8: HTML5最前線

Indexed DatabaseKVSでローカルに保持する標準インターフェース

Page 9: HTML5最前線

Online and Offline eventsオンライン/オフラインの把握

Page 10: HTML5最前線

Service Workers

Offline Web ApplicationのためのApplication Cacheに変わる仕様 Web Applicationのローカルプロキシとしてバックエンドプロセスで動作 個別ファイル単位でキャッシュするかどうかJavaScriptで制御

Page 11: HTML5最前線

Offline Web Application

http://www.ashiras.xyz/

Page 12: HTML5最前線

Realtime ConnectivityWebSocket

Server-Sent Events Web Messaging

XMLHttpRequest(Level2) Notifications

WebRTC

Page 13: HTML5最前線

WebSocket

リアルタイムな双方向通信を実現 Ajaxのように単方向単一データのやり取りではなく、一度コネクションを確立すれば自由にデータのやり取りが可能

Page 14: HTML5最前線

WebRTC

Web Real----Time Communications ブラウザ上でリアルタイムコミュニケーションを実現するための仕様 双方方向性のあるコミュニケーションを必要とする様々なアプリケー ションを開発できる ビデオ/音音声チャット テキストの共同編集 ゲーム etc...

Page 15: HTML5最前線

WebRTCの2つの仕様

Media Capture and Streams(getUserMedia) ローカルのカメラやマイクからストリームデータを取得 する仕様 WebRTC 1.0: Real----time Communication Between Browsers 主にP2P通信のための仕様が定義されている

Page 16: HTML5最前線

WebSocketとの違い

WebRTCは、P2P通信を利用して端末間の相互接続が可能 サーバーを経由しないため、高高速な通信ができる WebRTCでは、データ通信方方式がUDPのため品質よりもリアルタイム性を重視したデータに適している

Page 17: HTML5最前線

SkyWay

Page 18: HTML5最前線

WebRTC(SkyWay)サンプル

http://albatrosary.github.io/skyway/

Page 19: HTML5最前線

Web ComponentsHTMLを部品化する仕組み

Custom Elements HTML Templates HTML Imports Shadow DOM

Page 20: HTML5最前線

Custom Elements

独自タグを定義

Page 21: HTML5最前線

HTML Templates

HTMLを部品化

Page 22: HTML5最前線

HTML Imports

HTMLを取り込む

Page 23: HTML5最前線

Shadow DOM

DOMのカプセル化

Page 24: HTML5最前線
Page 25: HTML5最前線

Graphics

Canvas: 2D Graphics WebGL: 3D Graphics SVG: Vector Graphics

Page 26: HTML5最前線

Multimedia

video/audio WebVTT

Web Audio API HTML Media Capture

Page 27: HTML5最前線

video/audio動画/音楽再生

Page 28: HTML5最前線

WebVTT字幕・トラック情報を追加

Page 29: HTML5最前線

Web Audio API音声処理・合成

Page 30: HTML5最前線

HTML Media Captureメディアの取り込み WebRTCのgetUserMediaへ移行しつつある

Page 31: HTML5最前線

Device Access Geolocation API Web Speech API

Device Orientation API Calendar API

Battery Status API Network Information API

USB, Bluetooth, etc.

Page 32: HTML5最前線
Page 33: HTML5最前線

The Physical WebHTML5はWebだけでなく、様々なデバイスの アプリケーションプラットフォームとなりつつある。 また、そういったデバイスが身身近にあることでWebの利用方法も変化している。

Internet of Things Ethereum

Smart Contract

Page 34: HTML5最前線

Internet of Thingsデバイスに広がるHTML5

- モノ(機器)をネットに繋いでやりとりさせる

Page 35: HTML5最前線

ECMAScript

Page 36: HTML5最前線
Page 37: HTML5最前線

Object.observe()

JavaScriptオブジェクトの変更を監視 ECMAScript 標準(ECMA7)

Object.observe()はOo()と書くときがあります。Oo()を使うとAngularJSやEmber.jsなどで実装されている双方向データバインディングが可能となる。 フレームワークなしで2Wayデータバインディングが可能となります。

Page 38: HTML5最前線

Styling(CSS3)CSS3 Selectors border-radius

text-shadow/box-shadow gradient Webfonts

Transforms Transitions/Animations

Page 39: HTML5最前線

Web Applicationどうやってアプリケーションを開発していくか

Page 40: HTML5最前線

HTML5 Architectures

Page Display

Page Generation

Logic & State

Data

Integration

User Interface

Interface Management

Logic & State

Data

Integration

APIs

HTML5 (Single-page Application)

Browser

App Server

OLD Web

HTML & CSS

JavaScript

JSON

Page 41: HTML5最前線

https://angularjs.org/

Page 42: HTML5最前線

特徴双方向バインディング テンプレートとしてのHTML 簡単なものならJavaScriptを書かない Web Componentsを意識した作り Object.observe()に似た機能

Page 43: HTML5最前線

主な機能ビルトインディレクティブ フィルター・サービス・フォームバリデーション グローバルAPI モジュールとDI スコープとコントロール ルーティングと通信 カスタムフィルター・カスタムサービス・カスタムディレクティブ

Page 44: HTML5最前線

導入目的

コーティングルールを強制 書き方の統一 つまらないミスを軽減 開発効率を上げる 学習コストが低い

altJS

Page 45: HTML5最前線
Page 46: HTML5最前線
Page 47: HTML5最前線
Page 48: HTML5最前線
Page 49: HTML5最前線

導入目的

設定ファイルからプログラミング オブジェクト指向CSSの導入(OOCSS) 開発効率を上げる idやclassへの命名規則は決める必要がある

49CSS Preprocessor

Page 50: HTML5最前線
Page 51: HTML5最前線
Page 52: HTML5最前線
Page 53: HTML5最前線
Page 54: HTML5最前線
Page 55: HTML5最前線
Page 56: HTML5最前線
Page 57: HTML5最前線

http://yeoman.io/

Page 58: HTML5最前線

http://yeoman.io/

Page 59: HTML5最前線

Scaffolding

Page 60: HTML5最前線
Page 61: HTML5最前線

YEOMAN - featureテンプレートがそろってる Web開発に必要なツールがたくさんある lint,hint,ビルド,テストが行える html,css,js,画像をminifyしてくれる まだまだ色々あります

Page 62: HTML5最前線
Page 63: HTML5最前線
Page 64: HTML5最前線

Development Life Cycle

Page 65: HTML5最前線

generator-angular-eggs

https://www.npmjs.com/package/generator-angular-eggs

Page 66: HTML5最前線

まとめ

やることの多いWeb開発 YEOMANを使って道具を活用する 進化し続けるHTML5

Page 67: HTML5最前線

END