Introducing Tab Queue in Firefox for Android

We’ve known for a long time that the average user attention span on mobile is incredibly short; the longer content takes to load, the higher the chance the user will give up. No wonder so much emphasis is placed on load times and the pursuit to get something in front of the user as fast of possible. It ridiculous to think that such great leaps have been made in the world of mobile computing but loading web content on mobile can still be a slow and frustrating experience.

Chris Lacy wrote about a few of the issues surrounding mobile web browsing when he announced Link Bubble in March 2014. Link Bubble loads web pages in the background, providing a minimal user interface to give progress feedback to the user and a way of viewing the content once it’s loaded. It’s a great concept: rather than attempting to fix slow load times; accept that mobile browsing can be slow and work around it. Chris didn’t improve browser performance or provide any page load optimisation but he managed to push mobile web browsing to a new level by removing the point of friction between the user and the inherent issues of the platform.

Inspired by Chris’ work, Anthony Lam and I started thinking about how we could apply a similar thought process to Firefox. In line with our other ongoing work around continuity, we wanted to give users a way of using Firefox which feels more natural and stops them having to work around limitations of the browser. We came up with the idea of a tab queue which will allow users to effortlessly queue up multiple sites of interest and open them at a later time.  

Tab queue notificationThe feature is currently available in our nightly builds for Android. It’s early days and there’s still work to be done before we remove the nightly flags, but we’d love to hear your thoughts, comments and suggestions. For more info check out Anthony’s post about Tab Queue which has more details of the implementation and UX considerations.  You can keep track of the work we’re doing of this front by visiting the Bugzilla page.

Read More

A parcel from StackExchange

I had a slightly unexpected parcel arrive today, I say slightly because I knew about it a while ago but had since forgotten. I thought I’d do a small unboxing set of pictures.

2013-07-23 12.05.30
The parcel itself

2013-07-23 12.05.53
On opening

2013-07-23 12.12.37
Goodies! A couple of stickers, a couple of pens and a tshirt.

2013-07-23 12.13.33
I’m honoured to get a letter from Joel

So – just want to say thank you to the StackExchange people, very nice to have received this gift from your guys. And thank you Joel Spolsky – you made my day (and my girlfriends – she squeed when she saw who the letter was from. really!)

Read More

Time to update your support library

Fragmentation is an often cited issue of the Android ecosystem, but the people who really bear the brunt of it are not so much the end users, but the developers who have to create applications to support multiple versions of the platform. It’s for this reason Google created the Android Support Library – used to provide backwards compatibility for newer features of Android.

Originally released in March 2011, just after the introduction of fragments in Honeycomb (Android 3.0), the support library (originally called the “Android Compatibility package”) provided developers the means to use Fragments, LoaderManagers and a few other classes across mostly all versions of the platform, going back to Donut, version 1.6. This library, combined with the excellent ActionBarSherlock , gives developers the means to write a single codebase which can support multiple versions of the platform without having to write platform specific code – the only exception that comes to mind being the ActionBar action view widgets which need specific pre-ICS implementations.

Fast forward a couple of years to Google I/O 2012 and the, now named, Support Library is on revision 9 and has brought with it a lot of updates. Google is slowly implementing functionality which has, up until now, been developed by other people. For example, revision 9 includes a lot of bug fixes and new functionality to the ViewPager class, however note currently the ViewPageIndicator library still offers better functionality. The Notification Builder has also been updated, but again note that a third party library, in the form of the NotificationCompat2 library, is still the recommended way to provide complete support for notifications across all platform versions without sacrificing the newer functionality where available.

Of particular interest, and the reason for the title of this blog post, are the ‘many bug fixes’ for the Fragment class, which by now should be core building blocks used by all Android developers (if you aren’t using them yet – what are you doing?!) – this in itself should be reason enough to update.

Google seems to update Android everytime it release a new Nexus device, and if the rumour-mill is correct then we should be seeing a new Nexus handset at some point towards the end of the year. If past updates are anything to go by, Google should be releasing another updated version of the Support Library sometime in August 2012 or shortly after. It’s strongly adviced to keep an eye on the Support Library updates and implement new versions as soon as they’re released in order to take advantage of the new features and bug fixes.

Read More

How to get ADB to work with the Lenovo Thinkpad Tablet in Windows 7

Lenovo has a dedicated driver for the Lenovo Thinkpad Tablet, so it won’t work out of the box.

Here’s the steps to get it working:

  1. Download the ADB Interface Driver – ThinkPad Tablet from
  2. Turn on the ThinkPad Tablet.
  3. Press the slider bar icon to display the Settings property page.
  4. Press Applications on the left side of the page.
  5. Press Development and check USB debugging.
  6. Press the OK button on the dialog.
  7. Connect the Tablet to the computer.
  8. Open Device Manager.
  9. Expand the Other devices node.
  10. Right click the ThinkPad Tablet node and select Update Driver Software.
  11. Select Browse my computer for software.
  12. Browse to the folder that contains the driver files.
  13. Select the driver folder and continue the driver installation

Read More