web技術の これまでとこれから - log25.jp · 自己紹介...
TRANSCRIPT
![Page 1: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/1.jpg)
Web技術の これまでとこれから
-HTML5の技術10連発-
2013.01.17 nobi Webpage : http://log25.jp/
Mail : [email protected] Twitter : @nobi000 @log_25
![Page 2: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/2.jpg)
自己紹介
• @nobi000(twitter)、@log_25(ニコニコ関係)
• ホームページ: http://log25.jp/
• ニコニコ動画の投稿:3本
–ニコニコ動画の5年間の歩みを分析してみた(sm17165490)
• 第2回ニコニコ学会βポスター発表
–ニコニコ動画のタグを分析してみた
![Page 3: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/3.jpg)
自己紹介
• この勉強会の発表:3回目
–第6回:WebSocketを使ってみた
–第7回:ライブラリ制作を通じてのHTML5 Canvasの確認
![Page 4: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/4.jpg)
またお前か!
![Page 5: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/5.jpg)
そうです。 また nobi000 です。
![Page 6: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/6.jpg)
せっかくなので、新年の抱負
• Webアプリケーションのリリース
• ライブラリの公開
–第6回、第7回の内容
• 「Web」「プログラミング」「数学」をキーワードとした分野で、新たなフィールドに挑戦したい
–ブログを書く
–薄い本を作る … 厚い本は作る環境があれば…
–勉強会を立ち上げる
![Page 7: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/7.jpg)
今日の話は新年一発目なので、 HTML5の全体像ってどうなってる
んだろう?という話です。
![Page 8: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/8.jpg)
![Page 9: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/9.jpg)
ところで、みなさん「Webの進化」に興味ありますよね?
![Page 10: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/10.jpg)
http://evolutionofweb.appspot.com/
![Page 11: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/11.jpg)
でも、全部とりあげていたら、 時間がない!
過去の話をサラッと スライド3枚で
![Page 12: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/12.jpg)
HTML HyperText Markup Language
• ハイパーテキスト=複数の文書を相互に関連付け、結び付ける仕組み
– 1945年 Memex(概念の提案)
– 1965年 ハイパーテキストの
– 1980年 ENQUIRE
– 1987年 HyperCard
• 1990年11月12日 WorldWideWeb: Proposal for a HyperText Project http://www.w3.org/Proposal
![Page 13: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/13.jpg)
Web は22歳!
![Page 14: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/14.jpg)
これまで登場した技術
• Cookie
• Javaアプレット
• JavaScript
• Flash
• CSS
• ダイナミックHTML ⇒ DOM
• XMLHttpRequest(1999年) ⇒ Ajax (2005年)
• XHTML – 文法規則が厳密に
![Page 15: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/15.jpg)
で、ここからHTML5の話題
![Page 16: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/16.jpg)
HTML5って どこからどこまでがHTML5なの?
![Page 17: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/17.jpg)
HTML5
• XHTML の失敗
• 一方でWebアプリケーションのリッチ化 – プラグイン(Flash等)なしには何もできない
• 2004年:WHATWGにより「WebApplication1.0」と「WebForms2.0」が提案
• 2008年1月22日:W3C 草案(WorkingDraft)
• 2012年12月17日:勧告候補(Candidate Recommendation)
![Page 18: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/18.jpg)
HTML5
広義の HTML 5
WebSocket
WebStorage
WebWorker
Indexed Database
WHATWG のHTML5
Canvas 2D
Macrodata
W3C の HTML5
Elements Froms
Offline Events Drag & Drop API
etc.
WebGL
![Page 19: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/19.jpg)
ここから、 HTML5の技術を10個紹介
![Page 20: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/20.jpg)
1: Video & Audio
• Webページで動画や音声をプラグインなしで再生する HTML5 の要素
• JavaScript の MediaElement によって操作
• コーデックの対応がブラウザで異なる。
– MP4対応
– WebM対応
![Page 21: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/21.jpg)
2: Canvas
• Webページに JavaScript で絵を描くことができる HTML5 の要素
–第7回で取り上げました!
• 設置
• 配置の調整
<canvas width="300" height="300"></canvas>
canvas { position: fixed; top: 0px; left: 0px; }
![Page 22: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/22.jpg)
3: オフラインWebアプリケーション
• オンライン状態をイベントとして取得
– online イベント、offlineイベント
– navigator.onLine … IE8以前とIE9で挙動が異なる
• キャッシュマニフェスト
– applicationCache
– .htaccess にマニフェストファイルの設定が必要
![Page 23: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/23.jpg)
4: ドラッグ & ドロップ
• 以前: mousedown,mousemove, mouseup
• ドラッグ側:draggable属性を設定
• ドロップ側:dropzone属性を設定
• JavaScriptではDataTransferオブジェクト
– dataTransfer.setData("text", target.id);
• イベントとして取得
– dragstart
![Page 24: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/24.jpg)
5: WebWorker
• JavaScript のマルチスレッド化・並列処理
– var worker = new Worker(“ファイル名”);
– worker.postMessage(変数名);
• 計算開始時:ファイル側のmessageイベントが発生
• 終了時:workerのmessageイベントが発生
• 問題点:DOMやUIへの操作ができない。
![Page 25: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/25.jpg)
6: WebStorage
• ブラウザへのデータの保存
– sessionStorage
– localStorage
• 保存:setItem(key,value)
• 取得:getItem(key)
• 利用方法
–画像データを事前にダウンロードしてStorageにキャッシュ
• 問題点:データを他PCに移せない
![Page 26: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/26.jpg)
7: WebSocket
• ブラウザ上で双方向のソケット通信を行うための技術。
–第6回の私の発表を参照
• 最新仕様ではバイナリ通信も可能に
• var ws = new WebSocket("ws://localhost:8000/");
![Page 27: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/27.jpg)
8:File API
• ローカルのファイルのデータを使用する機能
–おもにオフラインWebアプリケーションでの利用
• FileReaderオブジェクト
• readAsText: テキスト形式で読み込み
• readAsBinaryString:バイナリ形式で読み込み
![Page 28: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/28.jpg)
9: WebRTC
• JavaScript でカメラやマイクなどからリアルタイムでデータ(画像、音声)を取得
– GetUserMediaオブジェクト
• Chromeの場合flagsの設定でMediaStreamを有効にする必要あり
• 問題点:2つ以上のWebカメラが接続されていた場合の挙動
![Page 29: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/29.jpg)
10: FullScreenAPI
• HTMLの要素をなんでもフルスクリーンで表示する機能 – document.getElementById("contents").requestFullScr
een();
– document.cancelFullScreen();
– 現状はベンダープレフィックスが必要
• Fullscreen疑似クラスでフルスクリーン時にのみ別のCSSを適用可能
• 問題点:中の要素を自動的には拡大しない。width:640; などは調整要
![Page 30: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/30.jpg)
その他のHTML5 関連技術
• CSSアニメーション
• GPSの位置情報
• ジャイロセンサーの情報
• IndexedDB
• WebGL … 川田様の発表を期待
![Page 31: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/31.jpg)
まとめると…
グラフィックス マルチメディア
• Video & Audio • Canvas • WebRTC
• CSSアニメーション • WebGL
オフライン ローカルアクセス
• オフライン • File API
• センサー関係
データストレージ • WebStroage • IndexedDB
• Web SQL Database
その他 • ドラッグ&ドロップ • WebWorker • WebSocket
![Page 32: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/32.jpg)
HTML5の全貌はわかりません
![Page 33: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/33.jpg)
デモの時間
![Page 34: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/34.jpg)
まとめ 技術のはやりすたりはある
• JavaScript
• Ajax(XMLHttpRequest)
–登場当初は「遊び」でしかなかった
• Flash
– iPhoneの登場により、モバイル環境では使えなくなった
![Page 35: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/35.jpg)
ひとつの技術にとらわれることなく、幅広く技術を身につけること
が大事
![Page 36: Web技術の これまでとこれから - log25.jp · 自己紹介 •この勉強会の発表:3回目 –第6回:WebSocketを使ってみた –第7回:ライブラリ制作を通じてのHTML5](https://reader033.vdocuments.site/reader033/viewer/2022041816/5e5b08915ca96b775a70a36e/html5/thumbnails/36.jpg)
ありがとうございました。 今日のスライドは以下のHPから
http://log25.jp/