DeveloperExperience/Mozilla-App-SDK

Elements of the Mozilla App SDK

  • Developer Tools
  • Layouts & Bootstraps
  • Web Components
  • Documentation (app-specific APIs)


Developer Tools

Developer tools should be collected and presented to developers through the SDK site in a way that highlights their usefulness to the task of app creation. Real-world use-cases should be provided to help developers understand which tools to use in which configuration to achieve the desired outcome.

Tools might include any of the following:

  • built-in Firefox dev tools
  • add-ons
  • third-party web sites/apps
  • JS frameworks for testing

Layouts & Bootstraps

We should provide developers with HTML layouts and bootstrap packs to ensure they have turn-key options for generating apps for the verticals we feel are most important to advancing our App/Firefox OS goals.

Here are a few of the requirements for layouts and bootstraps:

  • Layout markup should be constructed in a way that ensures the apps produced look and operate flawlessly from device to device at any resolution, in both touch and non-touch environments.
  • Bootstraps should not require command line knowledge to generate. A developer should be able to assemble a layout or bootstrap package via GUI

Web Components

As an emerging standard that will radically reduce developer effort, we should create a stock set of components that provide the UI and behavioral elements common to complex web applications. Each component shall be tested x-browser, look and operate well on different devices/resolutions, and have touch capabilities built-in where applicable. All components should emphasize the declarative abilities inherent to the native elements and be composeable in markup the same way native elements are.

Documentation (and Tutorials)

The SDK should collect and present documentation for all the app-specific pieces a developer needs to create, debug, publish, and support an HTML5 app. Documentation of all Mozilla-specific services, such as the Marketplace and payments APIs, should be included in the SDK as well.