In his recent post, Christoffer Du Rietz makes a great point on why hardware-buttons (as a part of the user-interface) in Android smartphones are fundamentally “broken”. The conclusion is mostly right:
The sad thing is about all this is that having made the decision to use these buttons from the start, Google has locked itself in a mess of a UI-model. All Android apps would have to be redesigned should they want to change it around and fix this. In short, they’re stuck with a UI that sucks and they can’t fix it because they didn’t think it through thoroughly before the first launch.
Now, why did Google chose the said UI-model? Easy — because Android was originally developed to be more of a BlackBerry-style competitor for Windows Mobile (hence the early developer prototype hardware), which couldn’t rely on every handset having a touch-screen as the sole input device. While this was probably a good design decision for devices of that time, the developers clearly didn’t see even the near-term future, which would come in 2007 with the iPhone.
So, hardware-buttons on Android smartphone are essentially just a type of legacy burden, which any software project has at some point. It’s good to see that developers at Google see this problem themselves, hence the whole move to virtual onscreen-buttons made with Honeycomb in the form of tablets and Ice Cream Sandwich in form of the Galaxy Nexus. The real problem is that these onscreen-buttons aren’t really a good solutions, more like a hack to accommodate third-party software compatibility for all the other Android devices, that were already shipped or will be shipped in the near-term future.