Firefox osでlineは作れるか

38
Firefox OSLINEは作れるか? 関東Firefox OS勉強会 1st 2013619() 13619日水曜日

Transcript of Firefox osでlineは作れるか

Page 1: Firefox osでlineは作れるか

Firefox OSでLINEは作れるか?関東Firefox OS勉強会 1st

2013年6月19日(水)

13年6月19日水曜日

Page 2: Firefox osでlineは作れるか

自己紹介Twitter:@sys1yagiblog:http://visible-true.blogspot.jp/

今年はjavascriptの年つーことでNode.jsお触り中。Android本をまた書いてるよ(^q^)

著書Androidアプリ

13年6月19日水曜日

Page 3: Firefox osでlineは作れるか

Firefox OSでLINEは作れるか?

13年6月19日水曜日

Page 4: Firefox osでlineは作れるか

なぜLINEを作るのか?

VS

13年6月19日水曜日

Page 5: Firefox osでlineは作れるか

なぜLINEを作るのか?

パズドラも非常に面白い題

材だったが、殆どの処理が

Canvasとjavascriptに終始

する事が予想される事から

見送り。

13年6月19日水曜日

Page 6: Firefox osでlineは作れるか

なぜLINEを作るのか?スマホのUI、画面遷移

チャット機能(通信、データ管理)

VoIPでの通話

電話帳へのアクセス

GPS(ふるふる機能)

センサ(ふるふる機能)

QRコードリーダー

課金(スタンプショップ)

push通知

13年6月19日水曜日

Page 7: Firefox osでlineは作れるか

なぜLINEを作るのか?そのプラットフォームでLINEを実装する事が出来るのであれば、既存の大抵のアプリは実現可能という事になる。多分。

13年6月19日水曜日

Page 8: Firefox osでlineは作れるか

今回はここまでスマホのUI、画面遷移

チャット機能(通信、データ管理)

VoIPでの通話

電話帳へのアクセス

GPS(ふるふる機能)

センサ(ふるふる機能)

QRコードリーダー

課金(スタンプショップ)

push通知

13年6月19日水曜日

Page 9: Firefox osでlineは作れるか

チャット機能

13年6月19日水曜日

Page 10: Firefox osでlineは作れるか

チャット機能で必要なもの

チャット相手(識別可能なアカウント)

チャットサーバ

HTTP通信処理

13年6月19日水曜日

Page 11: Firefox osでlineは作れるか

チャット相手(アカウント)

自分のIDやプロフィールの管理

チャット時のチャット相手のIDやキャッシュなど

アプリ内でデータを保存する仕組みが必要となる

13年6月19日水曜日

Page 12: Firefox osでlineは作れるか

localStorage

key-value store

これの他にsessionStorageがある。

sessionStorageはアプリを終了するとデータが

消える

localStorageはデータを永続化する事が出来る

13年6月19日水曜日

Page 13: Firefox osでlineは作れるか

チャット相手(アカウント)

localStorageを使えばOK。

model用にjsを分けた。

localStorageへアクセスす

るモジュールdatabase.jsを

作成した。backbone-

localstorage.jsを使っても

いいかも

13年6月19日水曜日

Page 14: Firefox osでlineは作れるか

チャットサーバNode.jsでサクッと。アカウントのマッチングだけ。

13年6月19日水曜日

Page 15: Firefox osでlineは作れるか

HTTP通信処理

ふつーにjQuery.ajaxとかでやったらいいんじゃないかなー

13年6月19日水曜日

Page 16: Firefox osでlineは作れるか

HTTP通信処理

が、ダメ

$.ajax({ url: "oraora.html",}).success(function(data){ alert('success!!');}).error(function(data){ alert('error!!!');});

13年6月19日水曜日

Page 17: Firefox osでlineは作れるか

HTTP通信処理

Firefox OSにはホスト型とパッケージ型アプリがある

ホスト型の場合は問題ないがパッケージアプリではクロスドメインの制約があり、外部URLへのアクセスが出来ない

13年6月19日水曜日

Page 18: Firefox osでlineは作れるか

HTTP通信処理

パッケージ型アプリは標準と特権と公認でアプリのタイプが分かれる。

それぞれのタイプで出来る事が変わってくる。

13年6月19日水曜日

Page 19: Firefox osでlineは作れるか

HTTP通信処理

特権タイプのアプリであれば、クロスド

メインの制約を無視する事が出来る。

manifest.webappに設定する

13年6月19日水曜日

Page 20: Firefox osでlineは作れるか

manifest.webappの設定

typeにprivilegedで特権アプ

リとして動かす事が出来る。

公開する前にコードレビュー

に相当する審査が必要とな

る。

XHRを使う為に、

”systemXHR”パーミッショ

ンを設定する。

"type": "privileged", "permissions": { "systemXHR": { "description": "xhr" } }

manifest.webappの一部

https://developer.mozilla.org/ja/docs/Web/Apps/Packaged_apps特権、公認アプリのdoc

13年6月19日水曜日

Page 21: Firefox osでlineは作れるか

XHRを使う概ねこんな感じで使う。jQuery.ajaxは動かなかったが、中をいじればいけるかも

参考:XMLHttpRequest の HTML パース処理https://developer.mozilla.org/ja/docs/HTML_in_XMLHttpRequest

13年6月19日水曜日

Page 22: Firefox osでlineは作れるか

大体こんな感じに

デモ

13年6月19日水曜日

Page 23: Firefox osでlineは作れるか

チャットまとめ

データ保存はlocalStorageでサクッと

manifest.webappのtypeにprivileged、permission設定が必要

通信処理は基本的にXHR直で

13年6月19日水曜日

Page 24: Firefox osでlineは作れるか

VoIPでの通話

13年6月19日水曜日

Page 25: Firefox osでlineは作れるか

VoIPでの通話

VoIPって何?

通話するには何が必要?

Firefox OSで実現できる?13年6月19日水曜日

Page 26: Firefox osでlineは作れるか

VoIPって何?Voice Over Internet Protocolの事。インターネット越しに音声通話等をする事

SIPをつかってP2Pで接続する、RTPなどで音声のやり取りをする

SIPアカウントとかSIPプロバイダがある(VoIPにおける電話番号的なモノ)

13年6月19日水曜日

Page 27: Firefox osでlineは作れるか

通話するには何が必要?

SIPスタック

Peer 2 Peerでの接続

RTP等による音声ストリーム

13年6月19日水曜日

Page 28: Firefox osでlineは作れるか

Firefox OSで実現できる?

というか、そもそも、

普通のブラウザで出来るのか?

13年6月19日水曜日

Page 29: Firefox osでlineは作れるか

WebRTC

W3Cが提唱する

APIの定義。プラ

グインなしでブラ

ウザ間で音声、ビ

デオ通話などをす

るプロジェクト

13年6月19日水曜日

Page 30: Firefox osでlineは作れるか

sipML5

WebRTCを用いた音声、ビデオ通話を実現する為の

javascriptライブラリ。

http://sipml5.org/

13年6月19日水曜日

Page 31: Firefox osでlineは作れるか

sipMLによる通話

13年6月19日水曜日

Page 32: Firefox osでlineは作れるか

sipMLが使えるか確認する

<script type="text/javascript" src="SIPml-api.js"></script><script> window.onload = function(){ var $ = function(id){return document.getElementById(id);} var readyCallback = function(e){ $("result").innerHTML="WebRTC Ready!"; }; var errorCallback = function(e){ console.error('Failed to initialize the engine: ' + e.message); $("result").innerHTML=

'Failed to initialize the engine: ' + e.message; } SIPml.init(readyCallback, errorCallback);}</script>

ライブラリを読み込んで以下のコードで確認出来る。

13年6月19日水曜日

Page 33: Firefox osでlineは作れるか

sipML on Firefoxブラウザ

いけた

13年6月19日水曜日

Page 34: Firefox osでlineは作れるか

sipML on Firefox OS

だめだった

(´・!・`)

13年6月19日水曜日

Page 35: Firefox osでlineは作れるか

でも頑張れば出来るのかも

permissionにVoIPの文言が

https://hacks.mozilla.org/2013/04/webrtc-update-our-first-implementation-will-be-in-release-soon-welcome-to-the-party-but-please-watch-your-head/

https://developer.mozilla.org/ja/docs/Web/Apps/App_permissions

次期verでサポートするぜ!

13年6月19日水曜日

Page 36: Firefox osでlineは作れるか

VoIPまとめ

sipML5というライブラリがある

VoIP用パーミッションが用意されている

Firefox OSではまだWeb RTCはサポートされていないが、次

期verで対応との事なのでいずれ出来る様になるはず

13年6月19日水曜日

Page 37: Firefox osでlineは作れるか

LINEは作れる!(はず)

13年6月19日水曜日

Page 38: Firefox osでlineは作れるか

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

to be continued...

13年6月19日水曜日