30 Apr 2010 mbrubeck   » (Journeyer)

Fennec on Android: user feedback and next steps

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 Google's Android OS. This Tuesday they made an early preview build available for public feedback.

Until now, the only people working on Firefox for Android were platform developers getting the back-end code to build and run. 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. (The preview build used the look and feel of Firefox for Maemo, designed for rather different hardware and software.)

Because we are an open source project, we like to share our work and hear your feedback 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. (Current Maemo devices have no multi-touch, so we use the 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 still need to do some UI work to make good use of these.

  • Size: I didn't anticipate this problem, but in retrospect it should not have been a surprise. 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. Even worse, users reported that our Fennec build did not work with the feature in some custom Android ROMs to move apps to the SD card.

    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 Java­Script source, like many websites do.

    Mozilla's Android developers also hope to fix the problem with SD installation. 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 incom­patible 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.

  • Keyboard problems: There were many problems with the software keyboard working intermittently or not at all, especially in landscape orienta­tion. There were also prob­lems 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.

  • Speed: Strangely, we had some users calling Fennec slooooooow and others calling it fast as hell (and those tweets were sent just one minute apart)!

    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 Elec­trolysis. 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 mean­time, 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, the timing means that many add-ons were not available to our first Android previewers. This should be fixed over the next few weeks.

    I believe add-ons are the biggest advantage Firefox has over other mobile browsers. For the first time on a mobile phone I can easily customize the browser to scratch my own itch. (See my first Fennec add-ons, Read Later and Show Image Title.) And there are many great add-ons from other devel­opers to choose from.

  • User interface: Most of the feedback on our UI was positive. Users told us that 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: Firefox for Maemo supports plugins like Flash, although enabling Flash does cause performance problems on some sites. (We are working on fixing that with major changes to our graphics code.) Flash is not yet included in our Android builds, but it will be supported eventually.

  • 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 Firefox compatible with more mobile sites, and to give web developers the tools and information they need to make their sites work great in mobile Firefox. 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 hopefully a stable release. Until then, you can follow @MozMobile or Vlad (@vvuk) to hear about any new previews.

  1. Please remember I am still new to the project, and cannot speak for the whole team. This is a personal blog, not a Firefox roadmap!

Syndicated 2010-04-30 07:00:00 from Matt Brubeck

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!