Recommended Firefox OSアーキテクチャクイックツアー - FxOSコードリーディングミートアップ#21向け追記版
FxOSコードリーディングミートアップ#16 Vibration APIも読んでみた
RUNNING Smalltalk - 実践Smalltalk
Consul は 全自動オーケストレーションの 夢を見るか?
Ruby way-openstack.keynote
Werkzeugを使ってみた #osakapy 2016/04
Core Image Tips & Tricks in iOS 9
東京Node学園 今できる通信高速化にトライしてみた
Serfが面白いと俺の中で話題にwwwwww 【改訂版】
"Continuous Publication" with Python: Another Approach
2014年を振り返る 今年の技術トレンドとDockerについて
WebAssemblyのWeb以外のことぜんぶ話す
Bundler kanazawa.rb meetup #2 2012/09/19
Dive into the Cloud with our buddy, lovely PHP!
俺のZabbixがこんなに可愛いわけがない(おかわり)
Pylons ユーザのための Pyramid 移行ガイド
Android 開発, 運用時に使いたいライブラリやサービスの紹介
Programming AWS with Python
More Related Content Firefox OSアーキテクチャクイックツアー - FxOSコードリーディングミートアップ#21向け追記版
FxOSコードリーディングミートアップ#16 Vibration APIも読んでみた
RUNNING Smalltalk - 実践Smalltalk
Consul は 全自動オーケストレーションの 夢を見るか?
Ruby way-openstack.keynote
Werkzeugを使ってみた #osakapy 2016/04
What's hot (20) Core Image Tips & Tricks in iOS 9
東京Node学園 今できる通信高速化にトライしてみた
Serfが面白いと俺の中で話題にwwwwww 【改訂版】
"Continuous Publication" with Python: Another Approach
2014年を振り返る 今年の技術トレンドとDockerについて
WebAssemblyのWeb以外のことぜんぶ話す
Bundler kanazawa.rb meetup #2 2012/09/19
Dive into the Cloud with our buddy, lovely PHP!
俺のZabbixがこんなに可愛いわけがない(おかわり)
Pylons ユーザのための Pyramid 移行ガイド
Android 開発, 運用時に使いたいライブラリやサービスの紹介
Similar to 中国Firefox OS勉強会 3rd 組み込み屋さんから見たFirefox OS (20) Programming AWS with Python
Fx OS n2_aoitan_firefox osことはじめ
GDG DevFest Kobe Firebaseハンズオン勉強会
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
Composer による依存管理 と Packagist によるライブラリの公開
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
NPAPIを使ったandroid標準ブラウザの拡張方法
Firebase & BigQuery で Android アプリの成⻑を支える
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
関西FirefoxOS勉強会6thGiG「アプリ間通信」
More from Masami Yabushita (17)
FxOSコードリーディングミートアップ#16 Contacts API読んでみた
Meetup11 contacts api読んでみた
20141018 osc tokyo_fall_firefox osってなぁに?
できる!スマホアプリ:Webからはじまるアプリ for CMU16
T82 aoitan あおいたんのパズルを数学しましょうか_修正版
わんくま勉強会東京#82 あおいたんのパズルを数学しましょうか
バッテリー監視の為にバックグラウンドタスクについて調べたらなくなってたから作ってみた話のはずだった
バッテリー監視のためにバックグラウンドタスクについて調べたらなくなってたから泣く泣くタイマーApiを使ってみた話
N29 aoitan firefox osことはじめ
中国Firefox OS勉強会 3rd 組み込み屋さんから見たFirefox OS2. はじめに
• 今回は20分でざっとFirefox OSでのセンサ類の使い方を見ていきます
• 時間がないので詳しい話はしません
• 全部MDNとgaiaのソースコードから収集できる情報なので詳しいことは調べま
しょう
– https://developer.mozilla.org/
– https://github.com/mozilla-b2g/gaia/
• 今回の話のほとんどはCodezineの記事のおさらいなのであとで見てね!
– http://codezine.jp/article/detail/8540
• 組み込み屋さんなのでもっと中身に興味があります! という方は大雑把な
構造のお話やってるので以前のプレゼン見てください
– http://www.gcg.bz/labo_blog/?p=904
– http://www.slideshare.net/aoitan/firefox-os-50967714
7. NoirさんやUemmra3さんも
• FxOSコードリーディング
– 月に一回ぐらいMozilla Japanオフィスの片隅でわいわいソースコードを読んでいる人
たちの集まり
– FxOSのソースコードに興味がある人をつなぎたい。交流したい
– 本拠地 → https://www.facebook.com/groups/fxos.code.reading/
– 看板 → http://reading.fxos.org/
– 活動が垣間見れるところ → https://github.com/FxOS-Code-Reading-Group
10. Firefox OSで触れるセンサ触れないセンサ
• 触れるセンサ
– 近接センサ
– 環境光センサ
– デバイス方向
– バッテリー
– 地理位置
– スクリーン方向
– getUserMedia
– カメラ
• (Mozillaかキャリアかメーカしか)触れないセンサ
– NFC v2.2からPrivileged
– Bluetooth v2.5かv3.0からPrivilegedの予定
– Fx0から触れないので今回は解説しません
23. バッテリー
• battery APIは電池の残量や充電状態を監視できます
• すべての端末に存在するしほぼすべてのスマホでは電池残量をどこかしらに
ピクト表示していますね
• Firefox OS (というよりブラウザ) ではnavigatorオブジェクトのbatteryプロパティ
にイベントリスナを登録して値を参照します
• battery APIには参照できる値が四つあります
– 電池残量
– 充電状態
– 満充電までの時間
– 枯渇までの時間
24. battery
var battery = navigator.battery || navigator.mozBattery;
battery.addEventListener("levelchange", updateBatteryStatus);
battery.addEventListener("chargingchange", updateBatteryStatus);
battery.addEventListener("chargingtimechange", updateBatteryStatus);
battery.addEventListener("dischargingtimechange", updateBatteryStatus);
29. geolocation
var watchId;
var geo = navigator.geolocation;
// まず現在地を取る
geo.getCurrentPosition((pos) => {
// 精度を上げるために監視を始める
watchId = geo.watchPosition((position) => {
(snip)
}, (error) => {
(snip)
}, {enableHighAccuracy: true});
}, (error) => {
errorPrint(error);
});
32. lockOrientation
if (/* some condition */) {
window.screen.lockOrientation('landscape');
} else {
window.screen.unlockOrientation();
}
38. メディアストリームの取得
var constraint = {
video: true,
audio: false
};
navigator.getUserMedia(constraint, (mediaStream) => {
var video = document.getElementById('video'); // 任意のビデオ要素
video.src = window.URL.createObjectURL(mediaStream);
}, (error) => {
if (error === NOT_SUPPORTED_ERROR) {
// 指定のリソースをサポートしていないエラー
(snip)
}
});
43. カメラAPI
var manager = navigator.mozCameras;
var opstion = {
mode: 'picture', // モード
recorderProfile: 'jpg', // 保存形式
previewSize: {
width: previewWidth,
height: previewHeight
},
pictureSize: {
width: 1080, // フルHD
height: 1920 // フルHD
}
};
44. カメラAPI
// カメラ使用のリクエスト
var promise = manager.getCamera('front', option);
promise.then((cameraData) => {
// カメラのリクエストが成功した
(snip)
}, (error) => {
// カメラのリクエストが失敗した
(snip)
});
45. オートフォーカスと撮影
var focus = cameraData.camera.autoFocus();
focus.then((success) => {
return cameraData.camera.takePicture({pictureSize: { width: 1080, height:
1920 }});
}).then((picture) => {
(snip)
});