As a fan of Ubuntu, I really love using Mozilla Firefox. In my opinion, it is the best desktop browser out there (sorry, Chrome). It was because of my love for Firefox that I became elated when I first heard that Mozilla would be developing a browser for the Android platform.
Having followed the development of Firefox for Android from an alpha and now to a beta, I jumped at the chance to interview software engineer Matt Brubeck, one of the lead developers of Firefox for Android. In our time together, I got a chance to ask him about Mozilla's plans for Android, why Firefox for Android seems so slow, and much, much more.
It was great, but don't just take my word for it; read the full interview below.
Android Police: What was Mozilla's inspiration for Firefox for Android? Why did you decide to develop for the platform?
Matt Brubeck: Mozilla is a non-profit, with a mission to promote opportunity on the web by building great software. With so many people using the web on mobile phones, building a mobile browser is an important part of our mission. We chose to develop for Android because it has strong user and developer communities, an actively developed platform, plus the tools and access we need to deliver a complete rendering engine and browser.
Android Police: What is the process you and your team go through when developing?
Matt Brubeck: We like to do a lot of prototyping and exploring while designing any new feature. For Firefox, sometimes we release prototype code in the form of an add-on for wider testing. For example, the text-reflow code in the next Firefox 4 beta was first released as the "Easy Reading" add-on. We like to experiment.
Android Police: What is the future of Firefox on Android? Any big plans to support Flash 10.1 in the near future?
Matt Brubeck: Right now we're focused on shipping a stable release of Firefox 4, which means fixing bugs, polishing the UI, and optimizing performance. We've just finished up a few UI changes for the next beta, including scroll indicators and an option to reformat text when zooming. Some things we're likely to work on after 4.0 include Open Web Applications, new web APIs like touch events, and, as always, performance and efficiency.
As for Flash 10.1, we are currently investigating how to integrate Flash with mobile Firefox, but we don't have any firm plans yet. Firefox 4 for Android includes support for web standards like SVG, WebGL, and HTML5 video/audio/canvas. We hope more web developers will begin using these browser capabilities to deliver rich content on the web.
Android Police: How do you code for different phones? What is your process?
Matt Brubeck: Personally, I mostly work on our cross-platform UI code, so I often compile and run mobile Firefox directly on my desktop computer without running Android at all. When I'm dealing with Android-specific code, or doing performance work, then I test each change on an actual device. I have several devices on my desk, so I can test on different screens and processors. Mozilla also has auto-builders that compile and test changes on many platforms at once, so we can detect errors right away.
We use Firefox development builds for our everyday browsing too, which helps us notice anything that's broken or needs improvement. Often I'll be sitting on the couch at night browsing with my phone, and then run over to my desk to file a bug or write a patch.
Android Police: Have you faced any issues while developing Android? What do you think of the tools Google provides to develop? What do they need to improve on?
Matt Brubeck: Porting a big app like Firefox to a new platform always involves lots of issues. On Android in particular, we had some problems integrating with the keyboard APIs, and handling packaging of native libraries. But we've managed to work through all the issues so far, and I think the platform has matured well. Gingerbread has some really sweet improvements for native applications like Firefox, including an upgraded C compiler and new native libraries. The only disappointment is that some of them can't be used while we're still supporting Eclair and Froyo.
Android Police: How do you deal with "fragmentation" on Android? Is it an issue?
Matt Brubeck: Hardware fragmentation has been a bit of a problem because of our performance needs, but it should get better in the future. We decided to use certain compile-time optimizations that are only available on ARMv7 processors. This means official Firefox builds run faster on high-end phones, but won't run at all on many older or low-end devices. We expect the number of unsupported devices will decrease over time as we improve our performance on Android, and as hardware gets faster and cheaper.
Android Police: How does your team plan to deal with the ubiquity of sites designed solely for WebKit on the internet?
Matt Brubeck: That's a good question. Right now, we work with standards bodies like the W3C, to make sure capabilities that start in one browser are standardized to work across all browsers. Because the desktop browser market is very competitive and browsers vendors are focused on standards, web developers have become very good at building portable, standards-based web sites. We just need those good practices to continue on the mobile web. Users of all browsers benefit from standards compliance, since even different WebKit implementations have different capabilities. Overall, it will help if people are not all using the same few mobile browsers, so improving Firefox for mobile is an ongoing part of our plan.
Android Police: Currently, Firefox for Android is almost an order of magnitude slower to start up initially than its competitors. Is Mozilla planning to do something about this and how soon?
Matt Brubeck: Yes, we have several startup speed improvements that are already in our latest nightly builds, and more that will show up in the next beta or release candidate builds. This will happen soon.
Android Police: Do you have an expected release date for the 1st final version?
Matt Brubeck: Not yet. We hope to release a stable version early in this year. Exactly when depends on the feedback we get from our upcoming beta releases.
Android Police: Although it's only in beta, the fonts oftentimes look too jagged and almost unreadable, especially when zooming in and out - are you working on getting that fixed? None of the other browsers have this problem, from what I've seen.
Matt Brubeck: Yes, we have some patches in progress to improve font scaling while zooming. Some of them are in our new hardware-accelerated graphics code, which we'll enable by default as soon as it's stable.
Android Police: What is Mozilla's goal (and yours) with Firefox for Android?
Matt Brubeck: We want our users to have a browser with great features like Firefox Sync, which syncs bookmarks and history between all your computers and mobile devices, with client-side encryption to respect your privacy and security. We also want to give mobile users a real choice of browser technology, just like they have on the desktop, to keep the web open and standards-based.
Android Police: Is Mozilla planning to develop Thunderbird, Songbird, etc. for Android? Thunderbird would be great!
Matt Brubeck: There isn't any active work on those projects right now, but the work we've already done to port the Gecko platform to Android will help anyone who wants to build other Gecko apps for mobile devices.
Android Police: Finally, what phone do you use right now?
Matt Brubeck: I'm using a T-Mobile G2 as my main phone right now. I switch around a bit depending on the code I'm working on. I have a Galaxy Tab and a Nexus One, plus a Nokia N900 and an iPod Touch that I sometimes use.
Conclusion and Download
We here at Android Police would like to thank Matt Brubeck for taking the time out of his busy schedule to chat with us. If you haven’t checked out Firefox for Android yet, you definitely should. Although it is only in beta, it is something I am very excited about, and it's improving constantly. Try it out for yourself using the QR code below.