Tuesday, January 15, 2013

Per App DPI: what it is and why it's so beautiful

Unless you're a serious tech geek and a veteran member of xda-developers.com, you probably have never heard of per app DPI (dots per inch). I'm gonna explain what it is, and why it makes the whole Android experience so beautiful. But before I start, I would like to say that I didn't code any of these, and full credit should be given to the people who did (see the end of thread for links).

So what's per app DPI?

It all started with Android's now famed screen-size / resolution fragmentation. What this means is, there exist a bazillion different Android devices out there and each has a different screen size and resolution, ranging from a small 3.5" phone to a 10.1" full-sized tablet. This seemed like a serious problem at first (which is why all the ifanboys were talking about Android apps being behind as the developers have to take care of all the screen sizes etc etc bs), but eventually all the good apps supported all the different screen sizes. How? By something called MultiDPI. Basically an Android app is coded in a way that within the one app, different user interfaces are displayed depending on the device's screen size and resolution. Per app DPI takes advantage of this.

Basically, per app DPI cheats each app into believing the device it's on has a different resolution. As a result, on a single phone, one can have a phone app that looks exactly like a phone app, and another app that makes the phone look like a shrunk tablet.

Why is this useful?

Per app DPI is useful in many ways. What a user can do by reducing the DPI ranges from simply displaying more onto one screen to enabling a completely different UI. I'll let the pictures do the talking:

The straight forward stuff:

Gmail: here I simply reduced the DPI slightly, thereby displaying more emails on one screen

Google+: Here once again I reduced the DPI to create a larger view area for contents

Slightly more exciting stuff:

Google Calendar: Here, by reducing the DPI and forcing tablet mode, a different interface is obtained. All within the same app, no extra download required.

Youtube: Here, the DPI is once again reduced to force tablet mode. It's a bit hard to see just by the two pictures below, but what so nice is that in the first picture (where Youtube runs under the original phone mode), the full screen version of the video is shown as soon as the phone is rotated to landscape and there's no landscape UI to speak of. In the second picture (where tablet mode is forced), the UI is a lot nicer. (Obviously full screen mode is still available via the button on the lower right corner.)

Flipboard: Flipboard recently released its tablet version and I'm one of the people who really likes it. It's obviously cool to be able to access it on my phone.

The really cool stuff:

IMDb: Here when tablet mode is forced, well, we almost get a totally different IMDb app. And hell it's a much nicer UI. The phone version is a bit all over the place, while the tablet version is just so much nicer to look at and much easier to understand.

Google Maps: Google somehow favors tablet users in their Maps app. The tablet version just makes so much more sense to have the search bar right at the top and a one-click voice search button.

Google Local: This one is just a beauty. In the phone Local app the map completely disappears. In the tablet version, the search results sit on top of the map and the user can easily see where each search result is, tying Local and Maps together.

To wrap it up, per app DPI unleashes the full potential of Android and it's all because Google allows this kind of high level modification into their operating system (while iusers can continue to live in Apple's obsessively closed system).

If you're interested in trying out per app DPI, check out Paranoid Android if you're using a Nexus device here: http://www.paranoid-rom.com/. If you have the Samsung SGS3 like I do, definitely get f0mey's null rom here: http://forum.xda-developers.com/showthread.php?t=2005845. Both the Paranoid team and f0mey have done some amazing works and for null rom, there're a bunch of devs who deserve as much credits, they're listed on the OP of the null thread. By the way, both of these require root, obviously.

1 comment:

Olivia Wells said...

so interesting

xx Olivia