サービスのサーバ設定・管理
HTML+CSS+JavaScriptのコーディング
・・・などをやっています。
ソフトウェアコンポーネントが互いにやりとりするのに使用するインタフェースの仕様
https://ja.wikipedia.org/wiki/アプリケーションプログラミングインタフェース
「HTML5」は2014年10月に勧告されたHTMLの仕様
「広義のHTML5」として周辺仕様も含めたものを指すことも多い
←今回取り上げるのはココ
つまりHTMLとCSS以外の、ここ3年くらいで使えるようになってきた機能
主にJavaScriptで操作する
大昔からあるもの、深い考察などは取り上げません。
その前にちょっと寄り道・・・
$('.element').bind('mozTransitionEnd webkitTransitionEnd transitionend', function(){
console.log('Transition end!');
});
$('.element').on('webkitAnimationEnd animationEnd', function(){
console.log('Keyframe animation end!');
});
var ctx = new AudioContext();
var osc = ctx.createOscillator();
osc.frequency.value = 440;
osc.type = 'sine';
var gain = ctx.createGain();
gain.gain.value = 0.5;
osc.connect(gain);
gain.connect(ctx.destination);
osc.start(ctx.currentTime);
osc.stop(ctx.currentTime + 5);
再生可能なビデオ形式はブラウザによって異なるので、扱いにくい面がある。
参考:HTML5 の audio 要素と video 要素でサポートされているメディアフォーマット
SVG1.1 / SVG2
HTML DOMと同様にSVG DOMをJavaScriptから操作できるようになった。IE9以降。
Canvas API
JavaScriptで絵が描けるようになった
WebGL / WebGL 2
ブラウザでOpenGLライクな3Dグラフィックの描画。グラフィックボードで演算する。
非常に煩雑なJavaScriptコードを記述する必要があるため、ラッパーライブラリのthree.jsが使われることが多い。
WebVR
VRデバイスとの接続についての仕様。デバイスからセンサーの値を取得するなど。
※ネイティブアプリでやる場合はOS提供のAPIを使うので、あくまでもWebブラウザからデバイスへのアクセスです。
fetch(url).then(function(response) {
return response.text();
}).then(function(text) {
console.log(text);
});
Promiseが返ってきます。
Androidの場合はChromeブラウザを起動していなくてもプロセスは生きている
Cookieより容量の大きなキーバリューストア。保存できるのは文字列。
sessionStorageとlocalStorageがある。
すべてのブラウザで実装済み。
プライベートブラウジングでは保存できなかったり、ユーザーがクリアしようと思えばできる点に注意。
Indexed Database API
Indexed Database API 2.0
Web Storageより「データベース」っぽいストレージ。基本的な機能は全ブラウザで使用できる。
キーバリューストアだが、テーブル(的なもの)やトランザクション、インデックスの概念がある。
WebWorkersから利用できるストレージはIndexedDBのみ。
P2Pでブラウザ間の通信を行うための仕様。例えばビデオチャット。
Chrome、Firefoxで実装済み。
UDPを使う。
接続の確立にはサーバが必要だったり、The WebSocket APIの併用がデファクトだったり、実装はけっこう大変そう。
※WebRTCを利用した有名なビデオチャットサービスにappear.inがありますが、対応ブラウザは「Chrome, Firefox, Opera and Vivaldi.」となっています。
モバイルの場合は、アプリか、AndroidではChrome, Firefox, Operaとあります。