Skip to Content

A Programmer Explains Why Android Apps Are Ugly

A seasoned programmer declares that Androids User Interface library is “amateurish” – and then there’s the issue of all those screen resolutions

The debate over why the same apps available on iOS are less pretty – and, arguably, less usable – on Android has finally gotten its whistleblower.

Meebo IM client on Android (left) versus iOS (right)

Nikolai Sander, CEO of EODSoft, writing on the blog Android Gripes, gave this insider’s perspective on the workings of Androids User Interface API:

I just recently ported one of my apps to the android platform and was shocked when I learned the User Interface API. It is the worst UI library I have ever worked with (and I have worked with quite a few)! I would even go so far as calling it amateurish. It looks like it was designed by at least 3 to 4 different people without common design guidelines. The naming conventions are inconsistent and the static nature of declaring the UI in xml files might work for the web but for a dedicated device interface it’s a nightmare. This along with the fragmentation of devices (mainly different resolutions) it is close to impossible to create a nice UI on Android devices.

Aside from its cute holiday-themed logos, Google has never been known for its design savvy. Indeed, the entirely data-driven company seems to have side-stepped the issue on its flagship site by avoiding it at all costs. That’s kept the company’s search engine free of clutter, but search remains a fairly straightforward design problem at the display level. In Android, however, the lack of polish is finally hurting the company: Good design isn’t just about making things aesthetically pleasing, after all, it’s also about making them functional.

Aside: Android’s failure in this department doesn’t explain Apple’s success

To understand why Apple is so good at user interface APIs, one need only look at Apple’s long, long history with creating an API for a very different sort of operating system – OS X. Even before there was an OS X, back in the days of System 6, 7, 8 and 9, Apple worked very hard to give its application developers a standard set of tools for doing everything from displaying windows to rendering buttons.

Indeed, Apple’s current Cocoa application programming interface makes building apps for OS X easier by automating portions of the development – precisely so that every app on a Mac follow’s Apple’s human interface guidelines.

This is where Steve Jobs’ fanatical devotion to usability really shines. On the one hand, the results are uniform. It’s like the old Model T – you can get an iPhone or OS X app in whatever color you like, as long as it’s black – i.e., Jobs-approved.

Dealing with screens of every possible size

Of course, a second issue with development for Android is the maddening array of potential device resolutions. Whereas iOS apps only have to work in basically two resolutions – original iPhone and iPad / iPhone 4, Android apps must accommodate many.

Says Sander:

I wouldn’t blame the developers or designers of the apps for the bad UI. After all most of them wrote the iPhone version first and they sure have all the assets (bitmaps etc.) available but in most cases I assume that they got so frustrated with the UI SDK on the Android that they decided to create a simpler one in order to not waste too much time. I know I have. Trying to get the UI look right on the Android platform is a trial and error process and with trial I mean “you try it on all possible device resolutions and encounter mostly errors”. On the iPhone, you just build it in Interface Builder for 2 resolutions (320x480 and retina, which is almost identical to the iPad) and you’re done.

And here’s what all those device resolutions look like, courtesy of Nick at AnIdea:

Screen resolutions of popular Android phones

Developing for such a wide array of device screen sizes and aspect rations means that not only is it impossible to create pixel-perfect designs for Android interfaces, there isn’t even any guarantee that a given interface can be scaled to fit a particular screen. That makes developing for Android devices more like designing web pages than designing an application interface. A challenge of this scale demands the best user interface library Google could possibly provide – yet the opposite appears to be true.

Follow Mims on Twitter or contact him via email.

Keep Reading

Most Popular

open sourcing language models concept
open sourcing language models concept

Meta has built a massive new language AI—and it’s giving it away for free

Facebook’s parent company is inviting researchers to pore over and pick apart the flaws in its version of GPT-3

transplant surgery
transplant surgery

The gene-edited pig heart given to a dying patient was infected with a pig virus

The first transplant of a genetically-modified pig heart into a human may have ended prematurely because of a well-known—and avoidable—risk.

Muhammad bin Salman funds anti-aging research
Muhammad bin Salman funds anti-aging research

Saudi Arabia plans to spend $1 billion a year discovering treatments to slow aging

The oil kingdom fears that its population is aging at an accelerated rate and hopes to test drugs to reverse the problem. First up might be the diabetes drug metformin.

Yann LeCun
Yann LeCun

Yann LeCun has a bold new vision for the future of AI

One of the godfathers of deep learning pulls together old ideas to sketch out a fresh path for AI, but raises as many questions as he answers.

Stay connected

Illustration by Rose WongIllustration by Rose Wong

Get the latest updates from
MIT Technology Review

Discover special offers, top stories, upcoming events, and more.

Thank you for submitting your email!

Explore more newsletters

It looks like something went wrong.

We’re having trouble saving your preferences. Try refreshing this page and updating them one more time. If you continue to get this message, reach out to us at with a list of newsletters you’d like to receive.