Firefox OS
Mobile platforms, wearable devices, IoT
Valentin Goșu
Open Source enthusiast
C++ developer by day
Firefox OS hacker by night
http://google.com/+ValentinGosu
valentin@mozilla.ro
The App Store
Gaia (collection of web apps that make up the UI)
Gecko (JS Runtime, APIs for hardware access)
Gonk (Linux Kernel, Drivers, HAL)
Battery
Orientation
Vibration
Alarm
Notification
Camera
SMS
Telephony
Bluetooth
Wifi
TcpSocket
Contacts
Storage
Apps
WebPayment
Normal/Web
Privileged
Certified
Firefox as a runtime for your apps
1 - low cost
2 - easy development
Raspberry Pi - 35$
Wifi - 10$
Flash - 5$
Battery - 20$
Wires & Cables - 5$
Screen - 30$
3G?
Camera?
Bluetooth?
Speaker?
Sensors?
25$
dual sim (GSM) ✓
bluetooth 4.0 ✓
Wi-Fi ✓
camera ✓
battery ✓
touchscreen ✓
1 - Flash JanOS (Stripped down FirefoxOS)
2 - Buy a screwdriver
3 -
http://janos.io/ by Jan Jongboom
- doorbell
- motion
- security camera
- GPS tracker
var tel = navigator.mozTelephony;
// Place a call
tel.dial("123456789").then(function(call) {
call.number;
call.onconnected = function(e) {
console.log('Your call to '
+ e.call.id + ' is connected.');
// Play recorded message to customer
}
});
window.camera.takePicture('back').then(function(ev) {
var blob = ev.blob;
// Store blob in storage
}
// WebRTC
navigator.geolocation.getCurrentPosition(
function(position) {
// position.coords.latitude
// position.coords.longitude
});
var request = navigator.mozAlarms.add(
new Date("June 21, 2015 16:20:00"));
navigator.mozSetMessageHandler("alarm",
function (mozAlarm) { alert("alarm fired"); });
navigator.mozOs.exec('ls', [ '-al', '/data/local' ])
.then(res => console.log('exec', res.exitCode, res.stdout, res.stderr))
.catch(err => console.error('exec failed', err));
http://janos.io/api-reference/exec.html
navigator.mozOs.readFile('/data/local/user.js', 'utf-8')
.then(content => console.log('readFile', content))
.catch(err => console.error('readFile', err));
http://janos.io/api-reference/fs.html
Monohm Runcible
matchstick.tv
Panasonic 4K TV
Completely open source (in real time)
Not a walled garden (self hosting of apps)
Everything is the web
VERY easy to get started
Very small memory footprint (128 Mb of RAM?)
Cost $$$
Not enough users
Performance*
Lack of dedicated apps*
You can ONLY use JavaScript**
* Can be mitigated
** For wearables we can make an exception