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
Zoom and multi-touch: Pinch zoom gestures are coming! We are reviewing a patch for animated multi-touch (pinch) zooming on Qt-based devices, and testing similar code on Android. (Maemo devices have no multi-touch, so we use their volume buttons to zoom. That code hasn’t been ported to Android, so only double-tap zoom was working in the preview build.)
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 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.
Size: A ten megabyte download (over 30 MB installed) is not huge for a desktop browser, but it’s hefty for a mobile app – especially on Android, where apps are saved to limited onboard memory.
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.
Hardware compatibility: There are a lot of different Android phones out there. Some of them won’t run Fennec because they still have Android 1.5 or 1.6. We hope this will be fixed by the hardware vendors soon, since we currently rely on some Android 2.0 APIs. Other devices failed for different reasons, possibly related to insufficient RAM or incompatible OpenGL APIs. We will need to optimize Firefox’s memory footprint on Android, and test on a wider selection of devices, perhaps with help from Firefox users.
Here’s a list of supported hardware.
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. 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.
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: We’re just starting Fennec 1.1 beta testing, and most of our add-ons are not yet updated for version 1.1. Unfortunately, this meant that many add-ons were not available to our first Android previewers. This should be fixed over the next few weeks.
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 and Show Image Title. And there are many great add-ons 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.)
Web site compatibility: Fennec renders almost all pages the same as desktop Firefox. Users did report problems entering data on some pages, and found that most sites do not have mobile versions targeted at Firefox. One of my personal goals is to make Fennec compatible with more mobile sites, and to give web developers the support they need to make sites work great in Fennec. I’ll write much more about this in future articles.
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.