Akshay Katyal

Firefox OS & Friends

Firefox OS

Firefox OS

Firefox OS

The mobile platform HTML5 deserves

Keep calm and trust HTML5

Predictable browser support

firefox

Upgrading the mobile world

Nokia couldn't take photos
  • Targeted at new, emerging markets
  • Very affordable hardware
  • No credit card needed - client billing
  • Web technologies through and through
  • 18 mobile partners, 4 hardware partners

Everything in the OS is open web technology and standard proposals

firefox os emulator and source

The Architecture

firefox os architecture

Apps

Firefox OS apps

What makes a great app?

Defined by manifest

        {
          "name": "My App",
          "description": "My elevator pitch goes here",
          "launch_path": "/",
          "icons": { "128": "/img/icon-128.png" },
          "developer": {
            "name": "Your name or organization",
            "url": "http://your-homepage-here.org"
          }
        }
      

App manifest

Three levels of access…

  • Hosted apps - stored on your server, easy to upgrade, limited access.
  • Privileged apps - reviewed by the App store, packaged and signed
  • Certified apps - part of the OS, only by Mozilla and partners

App permissions

Web APIs

WebAPI wiki

WebAPI Wiki

Battery API

          var b = navigator.battery;
          if (b) {
            var level = Math.round(b.level * 100) + "%",
                charging = (b.charging) ? "" : "not ",
                chargeTime = parseInt(b.chargingTime / 60, 10),
                dischargeTime = parseInt(b.dischargingTime/60,10);
            b.addEventListener("levelchange", show);
            b.addEventListener("chargingchange", show);
            b.addEventListener("chargingtimechange", show);
            b.addEventListener("dischargingtimechange", show);
          }
        

Contacts API

          var contact = new mozContact();
          contact.init({name: "Christian"});
          var request = navigator.mozContacts.save(contact);
          request.onsuccess = function() {
            // contact generated
          };
          request.onerror = function() {
            // contact generation failed
          };
        

Web activities

  • configure
  • costcontrol
  • dial
  • open
  • pick
  • record
  • save-bookmark
  • share
  • view
  • new, f.e type: “websms/sms” or “webcontacts/contact”

Sending a number to the phone

        var call = new MozActivity({
          name: "dial",
          data: {
            number: "+1804100100"
          }
        });
      

Firefox OS Simulator

Simulator

Firefox OS Simulator

Firefox OS UI components

Building Firefox OS

Building FirefoxOS

Web Activities Boiler Plate

Firefox OS Boiler Plate

Firefox OS Boiler Plate app

Firefox OS Marketplace

Firefox OS Marketplace

https://marketplace.firefox.com/

Lets talk about friends now..

Friends

WebRT

Friends

Install apps from the web

      var installapp = navigator.mozApps.install(manifestURL);
      installapp.onsuccess = function(data) {
        // App is installed
      };
      installapp.onerror = function() {
       // App wasn't installed, info is in 
       // installapp.error.name
      };
      

Firefox Accounts

picl

We need your help!

picl

Resources

Thanks

Red panda (Firefox) Photo by Yortw