MozCampEU2012/Pocket Sized Add-ons: Extension development for Firefox Mobile

From MozillaWiki
Jump to: navigation, search

If you're planning on attending this talk, you can prepare by installing the Android SDK and cloning our skeleton add-on from github. We'll have USB keys with these files on hand in case the wifi connection is bad, but planning ahead never hurts!

Slides for this talk.

Talk Proposal

Title of Session (should also be the title of your Wiki page): Pocket Sized Add-ons: Extension development for Firefox Mobile

Facilitator(s): Kris Maglione, Margaret Leibovic

Are you paid or volunteer staff?: Paid

Area of Contribution (Team Name):

  • Kris: Add-ons
  • Margaret: Firefox Mobile Front-End Development

How are you currently involved with the community?:

  • Kris: I review add-ons submitted to AMO, provide extension development support on IRC (26 hours a day or so, I'm given to understand), and develop several add-ons, including several related to add-on development.
  • Margaret: I'm active on IRC and in Bugzilla, helping contributors report bugs and write patches.

Location of Work (where do you reside?):

  • Kris: Central Florida (soon Portland, OR)
  • Margaret: San Francisco

Talk Length (please choose between 30, 60, 90, 120 minutes): Flexible: 60-90 minutes. Longer would give us more time to interact with developers during the hacking session after the presentation.


There will be a presentation divided into three components, followed by a hack session. The relative length and weight of each section will vary based on the composition and interests of the audience. We'll have material arranged so that each section may range anywhere from 5 to 15 minutes, with a maximum of 30 minutes in the case of the final section.

  1. We will explore the possibilities for add-ons on Mobile, how they differ from desktop add-ons, and how the limitations of the form factor make it all the more ripe for add-on development.

    This section of the presentation is meant to inspire developers and users alike, and to generate ideas and interest in future mobile add-on development. We'll provide key examples of popular desktop add-ons that will translate well to mobile, those that won't, what kind of UX changes the translation would require for success, and ideas for add-ons specific to mobile form factors with no precedent on desktop.

  2. We'll explore the similarities and differences in user interface and architecture between mobile and desktop add-ons. Particular attention will be paid to the differences in user interface metaphors, and how to develop to the strengths of the mobile platform rather than attempting to carry over metaphors common to desktop. We'll also cover how the architecture and initialization differ between current desktop add-on modalities and native mobile add-ons.

    This section of the talk will not be highly technical, but will be primarily aimed at explaining the broad differences in architecture and user interaction models. It may be suitable for some non-technical users who are interested in UI and UX design.

  3. This section of the presentation will go into technical details of mobile add-on development, and will include a walkthrough development of a simple, restartless add-on.

    The walkthrough will be available as a Github repo developed by Kris as part of a project by the add-ons team to provide a basic, well designed starting point for mobile add-on development, and will include a small library of utilities to simplify startup, cleanup, and interaction with windows.

    The following will be covered:

    • We'll start by discussing and demonstrating the process of remotely installing and debugging add-ons onto a phone from the desktop. Kris's experience in providing support to extension developers suggests that this is one of the major hurdles to development, so particular attention will be paid to this point.
    • We'll put together a trivial bootstrapped extension with a Hello World inline option panel, and a bootstrap.js file which simply prints a message to the remote debugger on the desktop.
    • Using the library mentioned above, we'll load ourselves into the browser window, provide some basic interaction via NativeWindow, and load a simple content script to modify a web page.

    Some mention at this point will be given to Jetpack. However, since Jetpack functionality on mobile is currently minimal, we'd rather focus on how easy things can be as they are rather than how much easier they'll be in the future.

Finally, we'll open up to audience questions before we start the hack session, during which we'll visit with the participants and offer any support they need. We're hoping to encourage participants to come up with an idea for a simple add-on and to work in groups to realize it. We'll provide coaching and a list of suggestions for anyone who has trouble here.

How your session furthers the MozCamp Goals (

Firefox's success was built, in large part, on the success of its add-ons. The browser on its own is great, but the ability of people to extend it to make it into exactly what they need has been unmatched in the browser world. To date, Firefox Mobile has failed to generate the same kind of interest by add-on developers, and the Mobile add-on ecosystem is sparse, to say the least, compared to what we have on Desktop.

We hope to help jump start interest in add-on development for Mobile, and give people the kind of information and skills necessary to produce effective and appealing add-ons without hassle.

Expected Outcome or Deliverable:

We expect participants to leave inspired by the near limitless potential of mobile add-ons to enhance their daily lives. We expect most to leave having created a functional mobile add-on, and with the resources and drive to continue developing and promoting add-ons for Mobile.

Desired Audience Type or Skill-set:

Audience members should be interested in developing add-ons, and familiarity with JavaScript would be useful. Experience building add-ons for desktop would be a bonus!

Equipment Needs (Video projector already included):

Most audience members will be expected to bring their own Android phones or tablets, laptops, and USB cables, but ideally we should have some spares of the above for participants who want to attend but don't have such equipment on hand. However, attendees will not require any equipment during the presentation before the hack session, and should be able to share thereafter.

One or both facilitators will bring spare phones or tablets in case they are needed.

To Be Completed by the Audience

(If you would like) Submit a Question for the Speaker(s) or indicate what information you hope to gain by attending this talk here:

List your ideas mobile add-ons here (can be anything you'd like to see someone make):

Place your name here if you would like to attend this talk:

  • Giorgio Maone
  • Burak Yiğit Kaya
  • Jeff Griffiths
  • Toni Hermoso
  • stripTM
  • Kai Engert
  • Nils Maier
  • Paolo Amadini
  • Blake Winton
  • Brian King
  • Anas Husseini
  • Szabolcs Hubai
  • Amy Tsay
  • <insert name here>