[okaweb × HTML5 fun] HTML5で人気のAPIを使って 未来価値を創造しよう

Preview:

Citation preview

HTML5 で人気の API を使って未来価値を創造しよう

第 26 回 岡山 WEB クリエイターズ × HTML5 fun

KDDI ウェブコミュニケーションズ阿部 正幸

● ACE01 / SmartRelease プロダクトマネージャー● CPI エバンジェリスト 統括● KDDI ウェブ 公認 CPI スタッフブログ 編集長● Drupal(g.d.o Japan) 日本コミュニティー● 日本ディレクション協会 講演部● HTML5 Fun 理事

OSS を広げる活動、 Web 制作に関する情報発信を行う

神戸生まれ、横浜育ち阿部 正幸(あべ まさゆき)

ディレクタープログラマー プロマネ エバンジェリスト

取り扱っていません

VentureSince 1998

Web Service

Hosting

取り扱っていません

Web 制作を 『超ラク』 にする

http://www.cpi.ad.jp/shared/smartrelease/

マークアップ言語「 HTML 」の 5 回目にあたる改訂版

厳密には

一般的には

HTML5 とは

CSS3 、 JavaScript 、 HTML5などを利用したリッチなサイト構築のための技術の総称

HTML5 が注目される理由

制作単価の下落

10 年、 20 年、 100 年、生き残るために

新しい価値を創造する

3 分で「今」をつかむ

モチベーションをキープ。ゴールにチャレンジ。

友達と競争。

新しいラン体験がはじまる

注目を集めるサービスには必ず

新しい価値がある

HTML5 が注目される理由

● ビデオ / オーディオ

● リッチなコンテンツ

● Web アプリケーション

新しい価値に必要

そこで今日は

新しい価値になるような

JavaScript ライブラリをご紹介

1 つめ

HTML5 でも人気の API

● Geolocation

● Web Storage

● ファイル API

● Indexed Database

● Web Sockets

● Web Workers

● Canvas

一つめ: HTML5 でも人気の API

● Geolocation

● Web Storage

● ファイル API

● Indexed Database

● Web Sockets

● Web Workers

● Canvas

一つめ: HTML5 でも人気の API

Geolocation API

Geolocation API

WiFi 携帯電話基地局、 GPS 、 IP アドレスなどから位置情報を取得する。

// ユーザーの現在の位置情報を取得navigator.geolocation.getCurrentPosition( successCallback, errorCallback);

// ユーザーの現在の位置情報を取得function successCallback(position) { // 緯度 position.coords.latitude // 経度 position.coords.longitude // 高度 position.coords.altitude // 緯度・経度の誤差 position.coords.accuracy // 高度の誤差 position.coords.altitudeAccuracy // 方角 position.coords.heading // 速度 position.coords.speed}

Geolocation API

Google Map API V3 +

Geolocation API

http://shared-blog.kddi-web.com/test/gmapv3/gmap-sample.html

つぎも、 HTML5 で人気の API

● Geolocation

● Web Storage

● ファイル API

● Indexed Database

● Web Sockets

● Web Workers

● Canvas

二つめ: HTML5 でも人気の API

Web Storage

IE8 以上で利用可能。

アプリケーションで利用するデータをユーザーのローカル環境に保存できる

Cookie との違い

データ量の上限: 4KB 5MB

Web Storage

● 電波が無くてもアプリケーションが利用できる

● 通信の回数が減らせる

● 高速に動作

メリット

オフライン Web アプリケーションの構築が可能に

Web Storage

// 変数 storage に sessionStorage を格納var storage = sessionStorage;

//userid キーに 1111 を割り当てて保存storage.setItem('userid', '1111');

//userid キーの値を取得するstorage.getItem('userid');

//userid キーの値を削除するstorage.removeItem('userid');

// ストレージに保存されているデータをクリアするstorage.clear();

Web Storage

// 変数 storage に sessionStorage を格納var storage = sessionStorage;

//userid キーに 1111 を割り当てて保存storage.setItem('userid', '1111');

//userid キーの値を取得するstorage.getItem('userid');

//userid キーの値を削除するstorage.removeItem('userid');

// ストレージに保存されているデータをクリアするstorage.clear();

Web Storage

手軽に実装可能

File API :ローカルのファイルを操作

Indexed Database :ブラウザ側上で利用できるデータベース

その他にも

次は

少し地味だけど、可能性が広がる API

Web Speech APIvar recognizing;var recognition = new webkitSpeechRecognition();

recognition.lang = “ja-JP"; // 言語の選択

recognition.start(); //音声認識開始recognizing = true; //speech の開始 (abort method)

recognition.onresult = function (event) { console.log(event.results); // コンソールログに出力}

//音声認識終了recognition.stop();//speech の終了 (abort method)recognizing = false;

http://shared-blog.kddi-web.com/test/webspeech/webspeechapi.html

次は、少し未来の API

WebRTC (Web Real-Time Communication) とはW3C が提唱するリアルタイムコミュニケーション用の API の定義で、プラグイン無しでウェブブラウザ間のボイスチャット、ビデオチャット、ファイル共有ができる。

- Wikipedia より引用 -

従来の通信方式

● レスポンス問題 (HTTP/1.1)● サーバーコスト問題

● P2P でユーザー同士がダイレクトに通信● サーバー費を安く抑えられる

を実装

Ntt Communications が peer.js を元に開発した

WebRTC アプリ開発用 JavaScript ライブラリ

<script src="https://skyway.io/dist/0.3/peer.js"></script>● JS読み込む

var peer = new Peer('pick-an-id', {key: 'myapikey'}); ● Peer の生成(自動で id が発番される)

var conn = peer.connect('another-peers-id');conn.on('open', function(){ conn.send('hi!');});

● 他ユーザーに接続し、メッセージ送信

peer.on('connection', function(conn) { conn.on('data', function(data){ // Will print 'hi!' console.log(data); });});

● メッセージ受信

<script src="https://skyway.io/dist/0.3/peer.js"></script>● JS読み込む

var peer = new Peer('pick-an-id', {key: 'myapikey'}); ● Peer の生成(自動で id が発番される)

var conn = peer.connect('another-peers-id');conn.on('open', function(){ conn.send('hi!');});

● 他ユーザーに接続し、メッセージ送信

peer.on('connection', function(conn) { conn.on('data', function(data){ // Will print 'hi!' console.log(data); });});

● メッセージ受信

手軽に実装可能

Demo

http://bit.ly/peertest

を使ったサービス

この技術が何に使えるのか?

老若男女問わず、全てのユーザーに売りたい

少し敷居が高い

×−

なにかお困りでしょうか

http://www.sonymusic.co.jp/Music/Info/miwa/haru/

UI / UX のための HTML5

RWD といって何を想像しますか

Ambient Light Events

window.addEventListener('devicelight',

function(event) { console.log('lux='+event.value);},false);

環境光を取得する環境に合わせた UI の設計が可能

http://shared-blog.kddi-web.com/test/light/light.html

http://shared-blog.kddi-web.com/test/js-event/js.event.html

HTML5 で追加になったWindow Event ハンドラまとめ

さいごに

今まであった技術でも実現可能では、なぜ注目されるのか

新しい価値

● 今後制作単価は下落する

● 制作単価を上げるために新しい価値が必要

開発の敷居を下げた

アイデアがあれば、誰でも参入可能

今後の制作者は

SVG

Canvas

Web Storage

Geolocation Web Workers

WebSocket

今後の制作者は

SVG

Canvas

Web Storage

Geolocation Web Workers

WebSocket

全てを使える必要は無いがどんなことができるかは知っておく必要がある

さまざまなプロダクトを知り

新しい価値を創造

このようなサイトをチェックしていると良いかも

ご清聴ありがとうございました

ID : chiyo.abe阿部 正幸

Recommended