A long time ago, the screens on our phones were square – and they didn’t rotate when you turned them. These days our screens are notably more rectangular – most mimicking the ratio of our televisions and computers. Videos and pictures are best viewed in landscape, but text is easier to read in portrait.

Thankfully, today’s phones can detect the orientation in which they’re being held and automatically rotate the screen accordingly. Most apps roll with it, either stretching or condensing to fill the available width and height, but the good ones reflow their content to look beautiful in either orientation, taking full advantage of the available space.

HTC-Dream-G1

Then again, there are some apps that simply don’t rotate – at all. And we just don’t think that’s right.

My first Android-powered smartphone was the T-Mobile G1, which had a flip-around screen covering its keyboard. The T-Mobile G2 had a keyboard/screen layout that was similar to the G1. Every time I wanted to reply to an email, send a text, or post an update, I’d pop out the keyboard, wait while the screen rotated, and then start clacking away on the itty-bitty keys.

I was replying so frequently (and incurring the second or so of lag while the stuff on the screen rotated) that I even went as far as setting my default screen orientation to landscape, turning off auto-rotation completely.

Take that, screen rotation lag!

For months I used my phone entirely in landscape mode. It took a little getting used to, but for the most part, it worked, and worked well – until Google stopped letting its launcher rotate. After that I went back to portrait-first. Phones with hardware keyboards were becoming much harder to find at that point, and on-screen keyboards were getting bigger and easier to use anyway.

That’s when something interesting began to happen: some apps started refusing to rotate – forcing users to use them in whatever orientation the developer hard-coded the app to use (which was usually portrait). On smartphones this behavior is just frustrating, but on tablets, it’s insane. Everything (even launchers) work correctly in landscape mode on tablets, so why are there some apps apps that refuse to rotate – or force you to rotate to your non-preferred layout?

Laziness, Ignorance, and Denial

I’m a web developer by trade. I understand the time and effort that goes into web designs and the underlying code required to realize those designs in a handful of browsers on several operating systems and in who knows how many screen sizes and resolutions. This sort of endeavor requires a lot of planning, time, and testing – but it’s not impossible: just look at how many responsive websites exist today.

The problem with apps comes when designers think there are “too many” resolutions to design for – and that adding both landscape and portrait orientations doubles that number. To be frank, they’re right – but it underscores the fact that they’re doing it wrong. Instead of designing each page-type in an application for “every” resolution, app designers need to think like web designers – letting their designs stretch and compress, resize, and even reflow when the screen size changes.

oracle_java

It’s not all their fault. Design tools don’t lend themselves to “dynamic” designs – they’re very much pixel-restrained. (I still have to try and convince designers I work with that there is no such thing as “DPI” on the web – at least not in the traditional sense. But that’s a rant for another day.) Development tools also don’t embrace flexible layouts as well as they could.

The final nail in the coffin comes from tools that help developers deploy their apps across platforms. No one wants to “reinvent the wheel” (or rewrite their code) three times (once for each major platform), but that’s the world in which we live. To minimize this pain (and help deploy apps and updates faster) developers generally like whatever tools let them reuse their code across platforms, with the minimum amount of retooling necessary. This adds another set of limitations – and reduces features to the lowest common denominator.

Java attempted to address this issue years and years ago. The “write once, run anywhere” approach led to a generation of apps that looked terrible, and didn’t run in nearly as many places as the catchy tagline implied. Thankfully, the ways contemporary programmers use Java has broken us out of the “everything looks the same, and everything looks stupid” rut that hampered app development back in the day. (Now, of course, we have a whole new set of problems with Java. Thanks, Oracle.)

What’s the solution? Alas, it’s not an easy one. Only end-users can put pressure on developers and software shops that don’t let their apps rotate. How? By sending emails, submitting bug tickets, leaving 1-star reviews, and generally harassing and shaming those who are too lazy, too ignorant, or for whatever reason deny that screen rotation is a thing, and they need to get with the times and update their apps to support it.

And while they’re at it, why not support tablet-sized displays, too? Apps designed for a phone, when seen on a 9-inch screen just make them look unprofessional – and embarrassing.