FIREFOX OS: THE WHAT, WHY, AND HOW


Rob Lauer
Mobile Developer - University of Wisconsin
@rdlauer

the what


July 2011 - "Boot to Gecko"

"...find the gaps that keep web developers from being able to build apps that are – in every way – the equals of native apps built for iOS, Android, and Windows Phone."           - Dr. Andreas Gal

where have we heard that before?


what is phonegap?


  • Open Source
  • Native Wrapper for HTML5 App
  • Allows You to Install HTML5 App as "Native"
  • Exposes JavaScript APIs to Access Device Features
  • Support for iOS, Android, WP7/8, BB
  • Future Support for OS X, Win8, FFOS(?)

current mobile device ecosystem


the scary future of mobile!


Not to mention...





native development today


who is working on this problem?







who is not working on this problem?


what is the connection?




the open web

...but what is it?

  • Open Source
  • Open Standards

first class citizen!




GONK? GECKO? GAIA?

Gonk is...the hardware abstraction layer.
Gecko is...the application runtime.
Gaia is...the user interface (written in HTML5!)

that was the what



demo time!

webapis and web activities


WebAPI is a JavaScript interface that allows you to access native device features (i.e. vibration, geolocation, alarms, etc).

Web Activity is a WebAPI with elevated permissions (i.e. SMS, mail, camera, etc). Delegates activity to another function.


list of Regular apis

  • Vibration API
  • Screen Orientation
  • Geolocation API
  • Mouse Lock API
  • Open WebApps
  • Network Information API
  • Battery Status API
  • Alarm API

  • Push Notifications API
  • WebFM API
  • WebPayment
  • IndexedDB
  • Ambient light sensor
  • Proximity sensor
  • Notification
  • FMRadio
  • list of privileged apis


    • Device Storage API
    • Browser API
    • TCP Socket API
    • Contacts API
    • systemXHR

    list of certified apis

    • WebTelephony
    • WebSMS
    • Idle API
    • Settings API
    • Power Management API
    • Mobile Connection API
    • WiFi Information API

  • WebBluetooth
  • Permissions API
  • Network Stats API
  • Camera API
  • Time/Clock API
  • Attention screen
  • Voicemail
  • how do we get our app here?


    publishing options: Choices!


    • Hosted App
    • Packaged App
      • Plain
      • Privileged
      • Certified

    { 
        "name": "Some Amazing App", 
        "package_path" : "http://somewhere.com/awesome.zip", 
        "version": "1", 
        "developer": {
           "name": "Rob Lauer", 
           "url": "http://roblauer.me" 
        } 
    } 

    hosted app benefits


    • Ease of Distribution
    • Easier to Self-Market (SEO)
    • More Control over Updates
    • More Familiar Process

    hosted app drawbacks


    • Must be Connected*
    • Limited Access to Device APIs
    • Potential Performance over Network

    Packaged app benefits


    • Available Offline by Default
    • Access to Additional WebAPIs
    • Potential Performance Improvements

    packaged app drawbacks


    • More Difficult to Maintain
    • Update Process for New Versions
    • Potentially Long Review Cycle(?)


    plain vs privileged vs certified



    distribution options: More choices!


    • Firefox Marketplace
    • Do It Yourself


    firefox marketplace


    do it yourself


    prompting packaged app install



    and that was the how



    But WHY?

    here's why

    • Rolling Out Service in Developing Nations
    • 2 BILLION People Coming Online via Mobile
    • Eventually Take the Place of Low-End Android Market
    • Global Market Reach of 1% by end of 2013



    also why (IMHO)


    • It's Easy
    • It's Fun
    • Supporting Open Web


    what's next?


    Robert Nyman @robertnyman

    Christian Heilmann @codepo8

    hacks.mozilla.org

    developer.mozilla.org

    buildingfirefoxos.com


    firefox os: the what, why, and how



    Rob Lauer
    Mobile Developer - University of Wisconsin
    @rdlauer


    Made with Slides.com