Firefox OS/v3/LondonIdeators
Contents
What?
This is a group brainstorming/spearheading ideas for Firefox OS v3, mostly composed of people based in the London space.
Main goal
We want to make Firefox OS really web like. Think of it as New Wave Firefox OS development. Web development has grown up, and so should Firefox OS too. Let's adopt commonly accepted best practices in the community!
Ideas
There is a number of ideas we would love to see happen. Not all of them will be feasible from the start, but let's just put them here for the sake of posterity---and to inspire more ideas!
Ideas for Gaia
One app = one repo
Organisations developing multiple websites do not host all the websites in just one repo. Since apps are websites (or should!) why are we hosting all of them in just one repo? This is a huge barrier of entry for new developers interested in Firefox OS.
Refactor the build system
The current build system is as unlike the modern web as it could be, requiring make and using things such as XULRunner to shuffle files around. Web developers are familiar with JS, not make, sed, etc. As such we're probably missing on contributions and improvements on this space.
Client side JavaScript has a commonly accepted tool: npm. This not only helps install packages but also can run scripts, tests, etc. How would a new build system based on npm look like? Perhaps something like:
git clone http://somewhere/gaia myfirefoxos
cd myfirefoxos
npm init
npm install gaia-calculator gaia-settings gaia-browser
npm run build
npm run deploy
Web Components
Work has already started on using Web Components in Firefox OS, but they are currently limited to certified apps; support is disabled for other apps and they need a polyfill to run (i.e. webcomponents.js).
- How can we use MORE Web Components everywhere in Gaia?
- How can we reuse more?
- How can we do "fragments" ("Android style") in a better way?
- How does it work with CSP?
- How can we use this to inform the Platform team on what is more prioritary?
Functional programming
How can we use these "novel" techniques to simplify Firefox OS and avoid race conditions but without getting "too clever"? Would libraries such as react.js be better than trying to write super optimised code?
Easier testing
How do we ensure that anyone can test their own app robustly so as to make it work on a variety of devices and configurations, just as Mozilla does... but without having to check the app into mozilla-central?
Kevin Grandon suggested there is ongoing work happening on this space already.
P2P Web
Guillaume and Wilson have been working on this concept. We have little portable computers--how do we take advantage of that instead of treating them as dumb cloud accessories? (TODO: fill in with data or delegate to the other group)
Sharing Firefox OS phone screen with WebIDE in the desktop
- "I'd even like to interact with the phone from my desktop"
- "so I no longer have to move my hands off of keyboard and mouse while developing"
Ideas for Gonk
Fully open source drivers
Wouldn't it be great!?
Meeting notes
20141212
Full etherpad: https://etherpad.mozilla.org/london-ideators-20141212