11. Firefox OS Architecture
Existing
Platforms
Firefox
OS
Web Browser/ Platform
!
!
@
Native API-based UX
!
APIs
•
•
Significantly
small stack
Web-based User
Experience/Web Content
Web Engine / Standard
Device APIs
Kernel
Kernel
Device
Device
HW and kernel/
drivers from
Android or other
embedded stacks
Architecture differs
from others:
• Scales from
feature phones to
high-end
smartphones
• Enables Lower
RAM footprint
distributions
13. WHAT IS Firefox OS?
B2G = GAIA + GECKO + GONK
Web Application
Browser Engine
Linux/HAL/RIL
14. WHAT IS Firefox OS?
B2G = GAIA + GECKO + GONK
Web Application
Gaia
Browser Engine
Gecko
Linux/HAL/RIL
Gonk
15. Unleash Web APIs for Mobile devices
Firefox OS plans to define & standardize
(W3C) all Web APIs required for advanced
functionalities in Mobile devices
Cameras
Speaker
NFC
Microphone
Vibration
Multitouch
USB Access
SMS
Accelerometer
Telephon
y
Gyro
Bluetooth
Hardware
Keys
Light
Proximity
Sensor
http://arewemobileyet.com
42. Train Model: Release every 3 month
•
•
•
Time bound: Development + Release
Agile for change
Plan -> Feature complete -> Bug Fixing -> Release Engineering
1.2 Plan
PM/ePM/
eM
1.2 Dev
ePM/eM/
Engineer
1.2 Fix
QA/
Engineer
1.2 Release
QA/
L10n/Cariier
Test
http://mozilla.github.io/process-releases/draft/development_specifics/
43. Train Model: Release every 3 month
•
•
•
Time bound: Development + Release
Agile for change
Plan -> Feature complete -> Bug Fixing -> Release Engineering
1.2 Plan
1.3 Plan
PM/ePM/
eM
1.2 Dev
1.3 Dev
ePM/eM/
Engineer
1.2 Fix
QA/
Engineer
1.3 Fix
1.2 Release
1.3 Release
QA/
L10n/Cariier
Test
http://mozilla.github.io/process-releases/draft/development_specifics/
44. Train Model: Release every 3 month
•
•
•
Time bound: Development + Release
Agile for change
Plan -> Feature complete -> Bug Fixing -> Release Engineering
1.2 Plan
1.3 Plan
1.1 Release
PM/ePM/
eM
1.2 Dev
1.3 Dev
ePM/eM/
Engineer
1.2 Fix
QA/
Engineer
1.3 Fix
1.2 Release
1.3 Release
QA/
L10n/Cariier
Test
http://mozilla.github.io/process-releases/draft/development_specifics/
45. Reference
Fundamentals to make it happen...
•
•
•
Issue Tracking
o
Bugzilla
o
Code Review per commit
Version Control
o
Mercurial
o
Git - github
Continue Integration
o
Per commit test - Travis
lint, unittest, integration test
o
Daily Build - TPBL, Jenkins
46. Let’s play with Gaia
• Up-and-running
• Discover
• My first patch
credit by http://bit.ly/1cnczgr
49. Get Aurora or Nightly
Get Firefox Alpha version to emulate gaia in browser
http://aurora.mozilla.org/ or http://nightly.mozilla.org/
50. Build Gaia
# make steps
$ DEBUG=1 make
more options and detail
•
•
Make Options https://developer.mozilla.org/en-US/
docs/Mozilla/Firefox_OS/Platform/Gaia/
Hacking#Make_options
Hacking Gaia https://hacks.mozilla.org/2013/01/
hacking-gaia-for-firefox-os-part-1/
51. Run gaia
# open browser
$ /[AppPath]/firefox -profile /
User/me/gaia/profile-debug