The Android Back Button

Disclaimer: I like Android and iOS equally – and I love developing apps for both!!!

Recently I’ve read some blog posts on the general Android hardware/software design. Especially this post and the mention on DF triggered some emotion!

My point is that I really don’t think that Android missed the target with the hardware back button. Not at all. I actually think it is the most useful button.

The thing is – I use both Android and iOS on a daily basis – and I’m not sure that is the case for many people. When I am using my Android devices I really use the back button a lot and when I use my iOS devices I keep complaining that it is not there.

The example given in the article mentions the Twitter app. Let’s all agree to leave the Twitter app out of this discussion – it is clearly broken. When I get a notification about a new mention on Android and press it the app fails to load the tweet. The fact that I can’t get to the Twitter app main screen is not really a problem with my hardware – it is the result of bad app design!

When I use my Android phone I usually read news (actually I just process news feeds and send relevant articles to Instapaper using the Read Later for Instapaper app). When I get an e-mail, text message or someone mention/writes me on Facebook I get a notification. Pressing the notification takes me to the app handling the notification and when I am done – I press the back button – and by magic I am back in my news processing cycle – amazing!

When I actually read news – which I usually do on my iPad – I use the Instapaper app. It is very nice – but when someone e-mails me e.g. I get a notification (luckily I’m describing the iOS 5.0+ flow!!!) and press it – which takes me to the app (so far not very different from the Android story). The trouble starts when I want to get back to the article I was reading. If I press the software back button in Twitter/Facebook/Mail/etc. I go to someplace inside the app! If I want to get back to news reading (and trust me – I really need to get back there!) I have to press the button (no need to call it names – there is only one) which takes me to the home screen where all my apps are (wtf!!). Here I need to locate the Instapaper app – it might be on another page (it is where I left it though – but WTF?!) – and press it to re-open the program. Alternately I can choose to double-press the button (see this flowchart for more information – seriously WTF!!!?!!) and get the list of recent apps and choose Instapaper.

As you can see – I clearly need to adjust my use. Trying to apply “the Android way” on iOS gets me frustrated. Using “the iOS way” on Android is just a silly waste of time.

To me this isn’t really about what mobile OS is right or wrong! iOS delivers a very strong single-running-application frame that can be used to very tightly control the user experience without thinking about any other app than your own. And iOS does this very effectively and very good. Android on the other hand is made to display activities. An activity is a single screen in an application. Activities stack and the hardware back button takes the user backwards through the stack. This is very powerful – especially considering the ability to mix activities from different apps on the activity stack!

Android and iOS handle stuff very differently. This is because they are two very different operating systems – made for not-so-different devices. They each handle their specific task very nicely – in my humble opinion. The real problem is lazy conversions – the Twitter team should clearly have done a better job understanding the two platforms instead of trying to make a one-to-one conversion.

As I said in the beginning – I like Android and I like iOS – and I love developing apps for both!