30 Apr 2010
Last month I joined Mozilla as a UI engineer on the Fennec (Mobile Firefox) project. Firefox is already available for Nokia’s Maemo platform, and now a group of Mozilla programmers are porting it to Android. This Tuesday they asked for feedback on an early preview build.
Until now, the only people working on Firefox for Android were back-end (platform) developers. This week was the first time most other people – including me – got to try it out. We front-end developers and designers are now starting to adapt the user interface to Android. For now it uses the look and feel of Firefox for Maemo.
Because we are an open source project, we like to share our work even at this early stage of development. While I wasn’t directly involved in the Android development effort, I spent some of my spare time this week talking to users via Twitter and our Android feedback group. Here’s what I heard, in rough order of importance to users, plus some information on our future plans.1
We also had some requests to fit text to the screen when zoomed in, like the Android browser. Today Brad Lassey and Ben Stover released the [Easy Reading][11] add-on that does exactly that. We might make this a built-in option in Fennec once it is fast and reliable enough.
Menu and Back buttons: The preview build did not handle Android’s standard hardware buttons, but code is now checked in to support the back button and the menu and search buttons. We’ll continue to refine the way Fennec uses these buttons.
Shrinking Fennec is possible, but not trivial. Some of the library and toolkit code in our build is probably unused and could be removed. And we could try minifying our JavaScript source, like many websites do. Michael Wu hopes current efforts like [Omnijar][17] and [Thumb-2][18] ([bug 563751][20]) will cut the installed size approximately in half.
Users also reported that our Fennec build did not work with the feature in some custom Android ROMs to move apps to the SD card. Mozilla's Android devs are working on a fix for this. It will be nice someday when app storage on Android is as plentiful as it is on other mobile platforms.
Here's a list of [supported hardware][21].
Keyboard problems: There were many problems with the software keyboard working intermittently or not at all, especially in landscape orientation. There were also problems with Shift and Alt keys on some hardware keyboards. I haven’t heard any news about of these bugs, but we know we need to fix them quickly.
Once a page is loaded, Fennec is pretty speedy. It's faster than the Android browser in some areas, and slower in others. But it's definitely choppy while a page is still loading or complex scripts are running. To fix this, our next major release of Fennec will include [Electrolysis][9]. This gives Firefox a multi-process architecture much like Google Chrome, and ensures that the browser always stays responsive.
Electrolysis requires many changes to our code, so it may be a couple of months before it appears in usable Fennec builds. In the meantime, Mozilla is working on many other performance improvements. This work will also speed up Firefox for desktop computers – I've been using the FF4 nightly builds, and they are already much snappier than the Firefox 3.5 I was using before.
We've also checked in some simple changes to improve perceived speed, like [better feedback when pages start loading][16].
Crashing bugs: Users were generally forgiving of crashes and other obvious bugs, to be expected at this stage of development. We will of course fix any such bugs as fast as possible.
Add-ons are easily Firefox's biggest advantage over other mobile browsers. For the first time I can easily customize my phone's browser exactly how I want. I've already written two Fennec add-ons, [Read Later][12] and [Show Image Title][13]. And there are [many great add-ons][14] from other developers to choose from.
User interface: Feedback on our UI was generally positive. Most users said panning to reveal the toolbars felt natural and easy. I think Madhava and Sean have done a great job with the design. This will get even better as we take advantage of Android features like the hardware buttons, integration with other activities, voice input, and the notification bar.
Flash: The Flash plugin is not yet included in our Android builds, but it will be supported eventually. Firefox for Maemo already works with Flash, although enabling it does cause performance problems on some sites. (We are working on fixing that with major changes to our graphics code.)
We don’t have a regular schedule yet for releasing new builds on Android. Once we get the code merged and automated build servers configured, we’ll publish nightly builds of Firefox for Android alongside our Maemo and desktop nightlies. Later this year we will have alpha and beta versions, and with luck a stable release. Until then, you can follow @MozMobile or Vlad (@vvuk) to hear about any new previews.